php实现不能同时登陆

Posted 袁与张

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php实现不能同时登陆相关的知识,希望对你有一定的参考价值。

思路:

1、每个人登录的时候会生成一个随机码(随机码保存在数据库中);
2、客户端cookies不保存用户名,只保存随机码;
3、账号在任何的地方登录时便会执行第一二部,之前的登录就会失效;
4、功能即可实现;

扩展:
5、可以设置网页最后更新的时间,并且超过一定的时间后就过期;
6、随机码要长一点才不会重复,我现在用的64进制32位,这样几乎不可能重复;
7、另外客户端不保存用户名和密码只存存随机码相对来说安全性也要高些;

解析:

1、使用的是mysql,新增Person_yanzheng字段技术图片

2、随机码生成,百度一下很多,本文列举如下:

    function GetRandStr($length) {
        $str = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789‘;
        $len = strlen($str) - 1;
        $randstr = ‘‘;
        for ($i = 0; $i < $length; $i++) {
            $num = mt_rand(0, $len);
            $randstr .= $str[$num];
        }
        return $randstr;
    }
    $number = GetRandStr(6);
    echo $number;

文中因为使用的是thinkphp,把代码放到了CommonAction控制器中,IndexAction控制器login方法引用即可。

技术图片

3、action中登陆模块代码,本文以thinkphp为例(登陆模块继承上级CommonAction):

技术图片

4、CommonAction中代码(yanzheng这个方法是为了验证是否登陆对所有方法都起效果,所有嵌入到这个方法最佳。):

技术图片

5、这样就可以了。

技术图片

文章部分来源:百度百科

原文>>更多内容请访问《翼的家园

以上是关于php实现不能同时登陆的主要内容,如果未能解决你的问题,请参考以下文章

html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。

PHP必用代码片段

我的php代码中登陆界面加一个验证码,如何实现

php实现模拟登陆

Mysql+Apache+PHP实现整合及网页登陆注册功能

thinkphp——PHP异位或加密实现自动登陆