{问题描述}:同一个用户在无法检测到的情况下多次登录是危险的。因为您无法知道是否有其他用户登录到您的帐户中。您如何禁止同一用户多次登录

{解}

(1)每个登录,在认证成功,一session_id转载。




session_regenerate_id();
session_register(用户名);



(2)一个SessionID的领域是在用户打开数据库,和现场后,session_id转载更新。




美元session_id SessionID =();
$ db =新PDO('sqlite:softtoken。DB);
为SQL =更新用户信息设置的SessionID = ' $ sessionid'where用户名=用户名和密码=美元美元的口令;;
查询= $ >准备;
$查询>执行();



(3)构建会话保存用户名




_session美元{用户名= $用户名;



(4)使用URL重写和转移session_id




$ URL =主。phpsid =session_id();
unset($分贝);
登录成功,正在跳跃!;
标题(位置:$ );



(5)在需要跳转的页面中,添加页面的开头。

main.php




< PHP
头('content-type:文本/ HTML;字符集= UTF-8);
美元美元_get SID SessionID = { };
session_id($ SessionID);
session_start();
用户名_session美元美元{ =用户名};
$ db =新PDO('sqlite:softtoken。DB);
为SQL =SELECT * FROM用户信息,用户名为$ username'and SessionID = $ SessionID;;
查询= $ >准备;
$查询>执行();
为用户查询->取= $(PDO::fetch_obj);

如果($用户>用户名{)
session_destroy();
;
回声window.location.href = 'index .html;;
;
出口();
}
>



......




上面的解决方案是PHP有效地防止同一帐户同时登录。它希望能帮助您同时解决同一帐号帐号登录问题。