之前我从未使用过cookies,所以我可能很难搞乱。
事情是。我设置了一个cookie然后尝试回应它以进行测试。如果我检查我的浏览器,它会告诉我cookie已经存在,但是获取的cookie总是在最后创建的cookie之前的一个cookie。这就是我正在做的事情:
function set_cookie_test($user_id)
{
$this->load->helper('cookie');
$this->load->module('site_security');
$this->load->module('site_settings');
$now_time = time();
$one_day = 86400;
$one_week = $one_day * 7;
$one_week_ahead = $now_time + $one_week;
$data['cookie_code'] = $this->site_security->generate_random_string(128); // the cookie_code on the table is 128 chars long
$data['user_id'] = $user_id;
$data['expiry_date'] = $one_week_ahead;
$this->_insert($data);
$cookie_name = $this->site_settings->_get_cookie_name();
set_cookie($cookie_name, $value = $data['cookie_code'], $expire = $data['expiry_date'], $domain = '', $path = '/', $prefix = '', $secure = FALSE, $httponly = FALSE);
$cookieVal = get_cookie($cookie_name);
echo $cookieVal; die();
}
这是我登录后(当我调用此函数时)发生的事情
如您所见,浏览器中的cookie值为8XvaQZjWX7 ...这是当前cookie,它与我的数据库匹配。
我的数据库中的前一个cookie值是被回显的值。我需要弄清楚这一点,原因如下:
每当我使用会话登录时,我设置了userdata,这样我就可以检索用户的信息,例如在屏幕上显示他的名字和头像。
当我使用cookies时,我需要能够做同样的事情......
非常感谢任何帮助。