在jquery代码中无法识别Codeigniter会话

时间:2013-02-21 07:26:20

标签: jquery codeigniter

我有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);

1 个答案:

答案 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'];

这是我们为使其发挥作用而采取的一种技巧。