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沒有就什么都不做就,讓權限系統去出路頁面訪問權限
總結
以上是生活随笔為你收集整理的mysql 验证码过期时间_简单的行为控制管理方法,自动登录,session定时验证码过期...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt第三方库QCustomPlot——认
- 下一篇: mysql和sqlite3 ios_iO