2017-03-27 30 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脚本来更新状态,以便如果用户长时间处于非活动状态,他们的状态将变为未记录在你的桌子上。

让我知道你在想什么