架構session驗證碼php
public function myses(){
import("ORG.Util.Date");
$Setime=session('time');
$Date=new Date;
if($Setime!=NULL){
$diff=$Date->dateDiff("$Setime","s");
if($diff>=10){//判斷是否到期
$Setime=$Date->dateAdd($number = 10, $interval = "s");//設定到期時間
session('time',$Setime);//將到期時間存在session裡面
session('rand',rand(11111,99999));
echo session('rand');
echo 1111;//session存在,但是時間超過3分鐘,重建驗證碼
}
else{
echo $diff;echo "
";
echo session('time'); echo "
";
echo session('rand'); echo "
";
echo 2222;//3分鐘內再次擷取輸出該標示
}
}
else {
$Setime=$Date->dateAdd($number = 10, $interval = "s");//設定到期時間
session('time',$Setime);//將到期時間存在session裡面
session('rand',rand(11111,99999));
echo session('rand'); echo "
";
echo session('time'); echo "
";
echo 3333;//session值沒有被設定,產生新的驗證碼
}
}
邏輯應該沒有錯誤,不知道是哪個用法不對,由於對session不熟悉,想這樣通過在session中存一個到期時間,如果到期則重建。1、幫忙把以上代碼改通,2、有更好實現該功能的方法也可以