本文实例讲述了php实现会员账号单唯一登录的方法。分享给大家供大家参考,具体如下:
情景再现
同一会员账号限制在同一台设备(电脑、手机、ipad等)上单点登录,重复登录后,原登录访问页面时则直接跳转到登录页面且需要重新登录才能正常访问。
原理分析
a账号在a电脑上登录后,a账号此时又用b电脑再次登录,则a电脑请求页面时,提示“重新登录”的信息,并跳转到登录页面
思路解析:
a账号在a电脑上登录后,把session id写入txt文件,每次访问页面时,都做一次校验(比较txt文件的值是否和当前登录的session_id的值相同)
实例
1、入口与校验(index.php)
<?php
session_start();
$uid = 10;
if(is_login($uid)){
header('location:loginsuccess.php');
}else{
$getlogsessionid = file_get_contents('session_log/'.$uid.'.txt');
if($getlogsessionid){
echo 已在其他地方登录,请重新登录;
echo <br>;
echo 5秒后跳转到登录页面!;
header(refresh:5;url=login.php);
}else{
echo '第一次登录...';
echo <br>;
echo 3秒钟后跳转到登录页面!;
header(refresh:3;url=login.php);
}
}
/
* 通过登录时写入文件session_id和当前登录设备后生成的session_id进行比较,相同则是同一台设备登录,不同则在别的地方登录
*/
function is_login($uid){
$getlogsessionid = file_get_contents('session_log/'.$uid.'.txt');
if($getlogsessionid == session_id()){
return true;
}else{
return false;
}
}2、登录(login.php)
<?php
session_start();
echo 登录中....;
echo '<br>';
$uid = 10;
file_put_contents('session_log/'.$uid.'.txt',session_id());
echo 登录完成;3、登录成功(loginsuccess.php)
<?php
echo 我登录成功了!;4、保存sessionid文件夹(session_log),测试代码,需要手动建一个或者赋予自动生成文件的权限
玩客云网站服务器如何建网站对访客更友好如何让传统行业在危机中轻松打造私域流量随写:对尼采的一点点感受宝塔面板打不开!-云服务器问题阿里云服务器网站备案临汾市弹性云服务器租用外贸公司邮箱怎么做