php 不允许同时登录,php实现不能同时登陆

思路:

1、每个人登录的时候会生成一个随机码(随机码保存在数据库中);

2、客户端cookies不保存用户名,只保存随机码;

3、账号在任何的地方登录时便会执行第一二部,之前的登录就会失效;

4、功能即可实现;

扩展:

5、可以设置网页最后更新的时间,并且超过一定的时间后就过期;

6、随机码要长一点才不会重复,我现在用的64进制32位,这样几乎不可能重复;

7、另外客户端不保存用户名和密码只存存随机码相对来说安全性也要高些;

解析:

1、使用的是mysql,新增Person_yanzheng字段

0f79769e2d7226aec15a403e2a2534e6.png

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方法引用即可。

2a291a55136986c85bb4464314c8a6f0.png

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

55213eb7034da9cf6b5cac27c6689c90.png

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

d420a8850a4ae0f0006567d1199f1594.png

5、这样就可以了。

87b6089dbc937e1a29d102a882fedf25.png

文章部分来源:百度百科

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

标签:CommonAction,随机码,实现,保存,登陆,str,php,randstr

来源: https://www.cnblogs.com/ytyzhn/p/12658413.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值