请教学长学姐们帮帮忙啊,用户不能重复登录问题
我做个网站想要判断用户不能重复登录,同一个账号如果已经登录,在第一个用户没退出的条件下,其他人登录会提示用户已经登录。
表名admin 字段userid username password private(判断重复登录用的 属性int 1或者0)默认为0
框架用的是TP3.2.3
我的方法是在登录的时候
//判断账户是否已经登录
$m=M("admin");
$row=$m->where("userid=$_SESSION[userid]")->find();
if($row["private"]==1){
$this->error("用户已经登录");
}else{
$m->private=1;
$m->password = md5($_POST["password"]);
$m->create();
$m->where("userid = $row[userid]")->save();
}
$_SESSION["username"]=$row["username"];
$_SESSION["userid"] = $row["userid"];
$_SESSION["purview"] = $row["purview"]; //管理员权限
$_SESSION["private"] =1;
$this->success("登陆成功",U("Index/index"));
//退出登录按钮也给了
$m=M("admin");
//判断SESSION是否存在和有效
if($_SESSION["userid"]){
$m->private=0;
$m->where("userid=$_SESSION[userid]")->save();
session(null);
$this->success("退出成功",U("Index/index"));
}
这样的方法数据库的字段值可以变换 ,功能也能实现。
关键是如果用户不点退出,直接点击浏览器的X按钮关闭,数据库的private字段就不会改变,还是1,用户在点击登录的话就会一直提示用户已经登录。这个问题哪位会啊,最好是源代码,具体点 我是PHP小新手一枚,太难的看不太懂。
- 上一篇:没有了
- 下一篇:没有了
