mysql 验证码过期时间_简单的行为控制管理方法,自动登录,session定时验证码过期...

public functionindex() {if(IS_POST) {//尝试登陆次数增加

behavior_function(__FUNCTION__, __CLASS__,1);}else{$res = behavior_function(__FUNCTION__, __CLASS__,2);$codes = $res === true ? 1 : NULL;$this->assign("codes", $codes);$this->display();

}

}

//为了微信页面好看,将中文字符小于4的补充空格

function cn_string_to_4($str) {if(mb_strlen($str,'utf8') <4){return $str = $str.str_repeat('    ', (4-mb_strlen($str,'utf8')));

}return $str;

}

通过cookies,做一个简单的。使用session做过期验证码的功能

这有2个版本

/** 设置一个定时有效的session值, tp的session函数貌似没有这个功能

*

* $time 格式是实践戳

*

* $type 1 储存 和 更新session存活时间

* 2 查看获取

* 3 销毁*/

function session_limit_time_save($type=1,$name='', $value = '', $expire = '') {$session_time_name = $name . "_time";$session_expire = $name . 'expire';switch ($type) {case 1:

$_SESSION["$name"] = $value;$_SESSION["$session_time_name"] = time();$_SESSION["$session_expire"] = $expire;break;case 2:

if (time() - $_SESSION["$session_time_name"] > $_SESSION["$session_expire"]) {//访问过期session,就销毁

unset($_SESSION["$name"]);unset($_SESSION["$session_time_name"]);unset($_SESSION["$session_expire"]);return NULL;

}else{return $_SESSION["$name"];

}break;case 3:

unset($_SESSION["$name"]);unset($_SESSION["$session_time_name"]);unset($_SESSION["$session_expire"]);break;default:

echo '数据处理模式错误!';break;

}

}

这个不太好,因为在$_SESSION上可以看到其他的值,其实一般都是借助cookies来实现过期判断

比如

$time = 30 * 30;//半小时过期

setcookie(session_name(), session_id(), time() + $time);

我还尝试过使用,直接访问session的temp文件,去实现过期,但是发现,session存的数据格式是

ss|s:4:"1111";ees|s:4:"1111";e1es|s:2:"55";ee2s|s:2:"22";ee3s|s:6:"155111";

没有存放过期时间,是通过设置的全局过期时间,做创建时间过期,删除和更新的

伪代码:

$session_path = "sess_".session_id();$sessionpath = session_save_path();$file_name_path = $sessionpath.'/'.$session_path;//$a=filemtime($file_name_path);

$a=filectime($file_name_path);//$a=fileatime($file_name_path);

$r = date("Y-m-d H:i:s",$a);var_dump($r);$rr = get_cfg_var('session.gc_maxlifetime');var_dump($rr);

发现效果不是很好,最后决定借用cookies来做定时过期

自动登录

原理很简单就是在你需要控制的需要登录控制的父控制器做一个__construct方法,在登录的去set一个cookies ,可解密的加密算法,

public function __construct() {

//解密

}

当然在登录的时候记得让cookies 过期,不然会出现,退出依然可以登录问题

访问需要权限的时候,去获取cookies,解密获取账号和密码,在去模拟登录,创建session,和登录差不多,cookies没有就什么都不做就,让权限系统去出路页面访问权限

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值