我有CI(PHP)登录表单,在3次登录尝试失败后将用户锁定n分钟并禁用登录表单。检查锁定时间是否结束,我将尝试时间设置为会话(在模型中)并将当前时间与会话进行比较。在某些jquery代码中在登录页面中检查尝试时间。但是在jquery脚本中无法识别会话。
CI模型(PHP)
if($this->lockIP($ip_address)){
$this->session->set_userdata('lockout',time());
return true;
}
CI视图(Jquery)
var now = "<?php echo time();?>";
var attempt = "<?php echo $this->session->userdata('lockout');?>";
alert(now - attempt);
答案 0 :(得分:0)
这是由于config.php中的sess_time_to_update参数。 CI使用它将会话ID更新为新的会话ID。如果在ajax调用中发生更改,则CI会发送一个新cookie以告知浏览器新的会话ID。不幸的是,浏览器似乎忽略了这个cookie并保留旧的会话ID。
这就是为什么我们设置$ config ['sess_time_to_update'] = $ config ['sess_expiration'];
这是我们为使其发挥作用而采取的一种技巧。