PHP用户登录:限制每个用户id同时进行一次会话

PHP用户登录:限制每个用户id同时进行一次会话,php,mysql,login,mysqli,Php,Mysql,Login,Mysqli,当一个用户登录时,我如何检查另一个人是否已使用相同的用户名登录并显示错误,如“此用户已登录” LogIn_form.php <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Insert title here</title> <link rel="stylesheet" href="NewFile.css"> </

当一个用户登录时,我如何检查另一个人是否已使用相同的用户名登录并显示错误,如“此用户已登录”

LogIn_form.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Insert title here</title>
    <link rel="stylesheet" href="NewFile.css">
</head>
<body>
<div id=warper>
    <?php include 'Menu.php'; ?>
    <div class="box">
        <form method="POST" id="formReg">
            <div id="account">
                <div id="accountN">Account:</div>
                <div id="accountV"><input type="text" name="account"></div>
            </div>
            <div id="pass">
                <div id="passN">Password:</div>
                <div id="passV"><input type="password" name="password"></div>
            </div>
            <input type="submit" value="submit" name="submit">
            <?php
            if (isset ($_POST ['submit'])) {
                include 'LogIn_database.php';
            }
            ?>
        </form>
    </div>
</div>
</body>
</html>

在此处插入标题
账户:
密码:
LogIn_database.php

<?php
session_start();
$username = htmlspecialchars($_POST ['account'], ENT_QUOTES, 'UTF-8');
$password = htmlspecialchars($_POST ['password'], ENT_QUOTES, 'UTF-8');
$password_sha1 = sha1($password);
if ($username && $password_sha1) {
//-------------------------------------------------------------------------------------------------------------
    include 'MySQL_connect.php';
//------------------------------------------------------------------------------------------------------------------
    $query = mysqli_query($conn, "SELECT * FROM portofoliu_table WHERE account= '$username' ");

    $numrows = mysqli_num_rows($query);
    if ($numrows != 0) {
        while ($row = mysqli_fetch_assoc($query)) {
            $db_account = $row['account'];
            $db_password = $row['password'];
        }
        if ($username == $db_account && $password_sha1 == $db_password) {
            @$_SESSION['account'] = $username;
            $_SESSION["logged"] = true;
            header("location: AboutMe.php");
            exit();

        } else
            echo "<div id='err'>Your password is incorrected</div>";
        $_SESSION["logged"] = false;
        exit();
    } else
        die("<div id='err'>That user don't exists</div>");
} else
    die("<div id='err'>Please enter a username and password</div>");

在您的表中有一个字段,当用户登录时,该字段可以是
1
0
,当用户注销时,将其设置为
1
。当用户尝试登录时,请检查该值是否为
1
如果是,请向@SuperDJ添加一条错误消息:当您将其设置为
1
时,还应保存一个时间戳,以防用户忘记注销,在预定义的超时时间段后,他仍然可以登录。编辑或考虑让第二个人记录下第一个人。
<?php
session_start();

session_destroy();

header("location: AboutMe.php");

?>