无法在浏览器中查看 cookie(codeigniter)
Unable to view cookie in the browser (codeigniter)
我正在尝试检查我使用 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;
}
这是一张图片来阐明我的意思:
您设置的 cookie 可能存储在服务器端。在客户端(在您的浏览器中),您可以看到浏览器发送到服务器的引用,因此它知道您是谁(会话)。然后服务器使用它来查找会话的 cookie,以便您可以在代码中访问它。这些值本身存储在服务器上:而不是在浏览器中。
因此,获取 cookie 值的唯一方法是在 PHP(在服务器上处理)中从服务器打印它们。
如果您使用 Javascript/Jquery 存储 cookie,那么它通常会存储在客户端,从而显示在您的检查器中。
编辑:仔细查看您的最新图片,您似乎在 cookie 中设置了路径。尝试删除该行,然后查看它是否有效。如果您设置路径,则 cookie 将仅显示在具有该路径的页面上(因此在本例中为 localhost/admin/*)。我不完全确定 CI 如何处理 cookie,但由于 'SECURE' 条目,它也可能不会将其存储在客户端,因此您也可以尝试禁用它。
已解决,标记为 'secure' => 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);
我正在尝试检查我使用 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;
}
这是一张图片来阐明我的意思:
您设置的 cookie 可能存储在服务器端。在客户端(在您的浏览器中),您可以看到浏览器发送到服务器的引用,因此它知道您是谁(会话)。然后服务器使用它来查找会话的 cookie,以便您可以在代码中访问它。这些值本身存储在服务器上:而不是在浏览器中。
因此,获取 cookie 值的唯一方法是在 PHP(在服务器上处理)中从服务器打印它们。
如果您使用 Javascript/Jquery 存储 cookie,那么它通常会存储在客户端,从而显示在您的检查器中。
编辑:仔细查看您的最新图片,您似乎在 cookie 中设置了路径。尝试删除该行,然后查看它是否有效。如果您设置路径,则 cookie 将仅显示在具有该路径的页面上(因此在本例中为 localhost/admin/*)。我不完全确定 CI 如何处理 cookie,但由于 'SECURE' 条目,它也可能不会将其存储在客户端,因此您也可以尝试禁用它。
已解决,标记为 'secure' => 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);