0

サインアップ/ログインシステムを備えた PHP Web サイトがあります。セキュリティ上の理由から、ユーザーが一度に 1 台の PC からのみサインインできるようにしたいと考えています。ユーザーがその ID/パスワードで既にログインしているときに、同じ ID/パスワードが別の PC からサインインしようとすると、エラー メッセージが生成されるはずです。

それが可能な方法と、それを行うための最良の方法を教えてください。

私はクッキーのみを使用しています...

<?php function sec_session_start() {
        $session_name = 'sec_session_id'; // Set a custom session name
        $secure = false; // Set to true if using https.
        $httponly = true; // This stops javascript being able to access the session id. 

        ini_set('session.use_only_cookies', 1); // Forces sessions to only use cookies. 
        $cookieParams = session_get_cookie_params(); // Gets current cookies params.
        session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly); 
        session_name($session_name); // Sets the session name to the one set above.
        session_start(); // Start the php session
        session_regenerate_id(true); // regenerated the session, delete the old one. 
}

コードは次のとおりです。

if(login($name, $password, $mysqli) == true) {
            // Login success
            if($name == 'admin'){
                if($signin == 'zero'){
                    $stmt = $mysqli->prepare("UPDATE users SET signin = 'one' WHERE name = 'admin'");
                    $stmt->execute();   
            ?>
            <span class="TextFont"><br /><br />Welcome Admin! <a href="admin.php">Click here to access your Admin Panel</a>! <br /><br /> <a href="logout.php">Logout</a></span>
            <?php }
                else{
                    echo"You are already logged in from some other system! $signin";
                }}
            else{
 // some PHP code
}
else{
 // some PHP code
}
4

2 に答える 2