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没有就什么都不做就,让权限系统去出路页面访问权限

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

  1. redis查看key的过期时间_面试官:你在Redis中设置过带过期时间的Key吗?

    点击上方小伟后端笔记关注公众号 每天阅读Java干货文章 熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过 ...

  2. redis查看key的过期时间_面试官:Redis过期后key是怎么样清理的?

    前言 笔者一个同事面试某大厂时问到的一个问题,这里拿来讲讲:Redis过期后key是怎么样清理的? 在Redis中,对于过期key的清理主要有惰性清除,定时清理,内存不够时清理三种方法,下面我们就来具 ...

  3. redis list设置过期时间_面试官:你在Redis中设置过带过期时间的Key吗?

    点击上方小伟后端笔记关注公众号 每天阅读Java干货文章 熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过 ...

  4. 设置过期时间_在Redis中设置了过期时间的Key,需要注意哪些问题?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:千山qianshan juejin.im/post/5d6b ...

  5. springboot 集成jwt设置过期时间_传说中的jwt,我们来征服一下

    原创:猿逻辑,欢迎分享,转载请保留出处. 本文的完整示例代码,见github仓库.小q只在文中介绍最关键的代码块. https://github.com/yuanluoji/purestart-spr ...

  6. mysql启动日志指令_简单整理MySQL的日志操作命令

    1.首先确认你日志是否启用了 ?1MySQL>show variables like'log_bin'; 如果启用了,即ON那日志文件就在MySQL的安装目录的data目录下 2.怎样知道当前的 ...

  7. nodejs redis 过期时间_别在为Redis面试而烦恼了?看完暴答【面试管】

    Redis面试官喜欢问的,小伙伴们看完暴答面试官!!!  Redis 是什么?都有哪些使用场景?Redis 是一个使用 C 语言开发的高性能键值对(key-value)的内存数据库,性能优秀,数据在内 ...

  8. redistemplate hash 过期时间_完美!谈谈Java中时间控制的几种解决方案

    前言 需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失效.后台有定时任务在获取,但是偶尔会出现token失效,这是因为在获取的时候,定时任务正在跑,可 ...

  9. java控制订单过期时间_订单自动过期实现方案

    需求分析:24小时内未支付的订单过期失效. 解决方案被动设置:在查询订单的时候检查是否过期并设置过期状态. 定时调度:定时器定时查询并过期需要过期的订单. 延时队列:将未支付的订单放入一个延时队列中, ...

最新文章

  1. jsp mysql 图片路径,请教JSP中怎么向MySql中存入和取出图片
  2. Codeforces Beta Round #96 (Div. 1) D. Constants in the language of Shakespeare 贪心
  3. java输出gc_GC输出澄清
  4. Android studio/sdk/appium/jdk遇到的坑坑洼洼
  5. 8、Power Query-合并查询详解
  6. 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
  7. mysql中约束_【MySQL】:MySQL中四大约束
  8. 指针变量的定义与引用
  9. nssl1335-蛋糕切割【数论,GCD】
  10. Redis详解(三)
  11. SpringBoot集成Actuator监控管理
  12. (干货!最全)Tomcat入门
  13. 03-neo4j的命令
  14. C++异常处理的开销
  15. PyQt环境的搭建:安装python+pyqt+eric
  16. vue项目的docker部署
  17. Facebook三方登陆流程
  18. TestCenter测试管理工具功能详解十二(Q)
  19. 9部最值得一看的黑客电影
  20. ubuntu 安装方法 wubi

热门文章

  1. FreeEIM 来点新知识iOS UIScrollView详解
  2. 作为程序员我是如何对事物进行分析的
  3. 超级玛丽游戏 C++简单实现
  4. VC在windows下编写用于串行通讯的程序
  5. HR怼程序员频繁跳槽,程序员竟这么回怼
  6. 老板想okr,员工想kpi
  7. 百度AI智能小程序正式开放申请
  8. 3串锂电池电量检测ic bq2060pdf及应用原理图_接受电源IC需求挑战,轻松实现精确调节的电源电压!...
  9. 你的数据也可以-三篇NAR的数据库
  10. Tipard Video Converter Ultimate如何旋转视频?