2017-03-27 28 views
0

H傢伙,我目前正在開發一個具有登錄和註冊頁面的移動應用程序。我已經設置了登錄和註冊頁面,並且效果很好。PHP:會話,以檢查用戶是否登錄

持有的user credentials該表具有以下字段:
username, fname, lname, password, logged_status

當它應該是用戶的狀態設置爲登錄的用戶「原木」。我怎樣才能做到這一點?

**請注意,我的android應用程序連接到一個web服務器,它運行不同的PHP文件,具體取決於正在執行的函數(例如,如果用戶想要登錄,login.php文件在服務器*

+0

你可以讓'logged_status'爲默認值爲0和1的枚舉數據類型,當用戶登錄更新爲1時,你可以很容易地檢查其狀態是否爲1用戶在線 –

+0

多數民衆贊成在我想要的請問,當用戶登錄時,如何將字段的狀態設置爲1?我只是發送「1」的字段..和「0」當用戶註銷? –

+0

如果用戶名和密碼正確,就在你設置了會話var之後,進行更新語句和更新狀態,當用戶註銷更新回來 –

回答

1

使logged_status狀態enumerated數據類型用於0和1的標誌,0爲默認值。

當用戶成功登錄更新logged_status

<?php 

$stmt = $dbh->prepare("SELECT * FROM users WHERE email = ?"); 
$stmt->execute([$_POST['email']]); 
$row = $stmt->fetch(); 

if ($row && password_verify($_POST['password'], $row['pass'])) 
{ 
    //update logged_status status 
    $update = $dbh->prepare("UPDATE users SET logged_status ='1' where email= ?"); 
    if($update->execute([$_POST['email']])){ 
     // set sessions and redirect 

    } 
} else { 
    echo "invalid"; 
} 
?> 

由於Aniket建議,如果你做到這一點使用的Android比PHP其更好。

1

使用PHP端使用的Android端和存儲登錄使用SharedPreference相反的例子還有很多可用的,這樣,你的用戶將顯示爲登錄每當他,除非他從中註銷進入應用程序。

0

您可以使用布爾值來表示登錄狀態,以便在用戶登錄時,可以將該值設置爲1以便登錄,並在註銷時將其設置爲0以便未登錄。

但是在android端寫一個函數會更好,它會一直在服務器上調用一個php腳本來更新狀態,以便如果用戶長時間處於非活動狀態,他們的狀態將變爲未記錄在你的桌子上。

讓我知道你在想什麼