我试图查看我使用CodeIgniter进行设置的Cookie的内容。我可以在服务器端正确地转储cookie数组的内容,但无法在浏览器的检查器中查看它们(所以客户端)。
我正在使用CodeIgniter版本3,如果这有帮助的话。 这是我设置cookie的代码:
if ($email === $admin_email && $password = $password) {
echo 'credential match';
$this->load->helper('cookie');
if ($remember_me == '1') {
$email = $this->input->post('email');
$password = $this->input->post('password');
$remember = $this->input->post('remember_me');
$cookie1 = array(
'name' => 'email',
'value' => $email,
'expire' => '86400',
'domain' => base_url(),
'path' => '/admin/',
'prefix' => 'myprefix_',
'secure' => TRUE
);
$this->input->set_cookie($cookie1);
echo "<pre>";
var_dump($cookie1);
echo"</pre>";
echo 'Checked';
}
}
return TRUE; // if credential matches
} else {
return False;
}
这是一张图片来澄清我的意思:
答案 0 :(得分:1)
您正在设置的Cookie可能存储在服务器端。在客户端(在浏览器中),您可以看到浏览器发送到服务器的引用,因此它知道您是谁(会话)。然后,服务器使用它来查找会话的cookie,以便您可以在代码中访问它。值本身存储在服务器上:不在浏览器中。
因此,获取cookie值的唯一方法是通过PHP(在服务器上处理)从服务器打印它们。
如果您使用Javascript / Jquery存储cookie,那么它通常会存储在客户端,因此会显示在您的检查器中。
编辑:更好地查看最新图片,似乎您在Cookie中设置了一条路径。尝试删除该行,然后查看它是否有效。如果设置路径,则cookie将仅显示在具有该路径的页面上(因此在本例中为localhost / admin / *)。我不完全确定CI如何处理cookie,但由于“SECURE”条目,它可能也不会将其存储在客户端,因此您也可以尝试禁用它。
答案 1 :(得分:1)
解决,标记&#39;安全&#39; =&GT; FALSE
// set cookie
$cookie = array(
'name' => 'email',
'value' => $email,
'expire' => '86500',
'domain' => '.xyzsoftsolutions.com',
'path' => '/admin',
'prefix' => 'admin_',
'secure' => FALSE
);
$this->input->set_cookie($cookie);