如何设置通知 如果用户已登录系统


How to set notify If user already logged in the systems

我有这样的代码:

include ("config.php");
$username = $_POST['username'];
$password = $_POST['password'];
$do = $_GET['do'];
if($do=="login")
{
    $cek = mysql_query("SELECT password, user_level FROM t_users WHERE username='$username' AND password='$password'");
    if(mysql_num_rows($cek)==1)
    {
        $c = mysql_fetch_array($cek);
        $_SESSION['username'] = $c['username'];
        $_SESSION['user_level'] = $c['user_level'];
        if($c['user_level']=="supervisor")
        {
            header("location:supervisor.php");
        }
        else if($c['user_level']=="user")
        {
            header("location:home.php");
        }
        else if($c['user_level']=="root")
        {
            header("location:administrator.php");
        }
        else if($c['user_level']=="manager")
        {
            header("location:manager.php");
        }
        else if($c['user_level']=="admin")
        {
            header("location:admin.php");
        }
        else if($c['user_level']=="director")
        {
            header("location:director.php");
        }
    }
    else
    {
        header('Location: index.html');
    }
}
else if($do=="logout")
{
    date_default_timezone_set("Asia/Jakarta");
    $last_logged_out = date("j-F-Y, G:i ");
    $ip_address=$_SERVER['REMOTE_ADDR'];
    mysql_query("update t_users set last_logged_out='$last_logged_out', ip_address='$ip_address' WHERE username='$_SESSION[username]'");
    unset($_SESSION['username']);
    unset($_SESSION['user_level']);
    header("location:index.html");
}

如果有人登录并且某人使用相同的用户名登录的时间或不同时间,我该如何给出功能代码,然后我希望系统将通知该用户已经登录,因此具有相同用户名的用户无法登录,直到用户在注销之前。

有人可以帮助我吗?谢谢。

尝试在会话中添加状态。例如,如果用户已登录,则状态= 1,反之亦然,因此每次用户尝试登录时,如果发生这种情况,您可以自由地执行任何您想要的操作。干杯。

当用户登录时,在数据库中设置一列,例如 loggedin 1 并在后续登录时检查该列是否设置为 1,如果是,则不允许登录,直到使用该用户名登录的人注销,则需要将该列设置为 0 以允许后续登录。

您可能需要某种超时,以便没有人可以登录并永远以该用户身份登录。

1) 读取 http://php.net/manual/en/function.mysql-real-escape-string.php

2)您必须将有关登录用户的信息存储在一个地方,您可以在其中为任何用户获取信息(即不是_SESSION美元)。例如,您可以将其存储在数据库中。

但是您的问题是,如何知道该用户登录了oout。如果用户不注销(仅关闭网络浏览器),则用户登录将被挂坠"预告"。您可以考虑一些超时 - 如果用户在 Web 上执行任何操作的时间超过 1 小时,则当任何其他用户尝试登录时,您将他注销。(每次用户在您的 Web 上执行任何操作时,都应更改超时)。

相关文章: