PHP中的Cookie检测问题
下面是我正在使用的简单函数:PHP中的Cookie检测问题,php,cookies,Php,Cookies,下面是我正在使用的简单函数: public function control() { $string = 'lolcheck'; setcookie($string, $string, time() + 120, $this->path, $this->domain); if (isset($_COOKIE[ $string ])) return true; else return false; } 问题是,它只在我打开页面两次时才起作用,因为它
public function control() {
$string = 'lolcheck';
setcookie($string, $string, time() + 120, $this->path, $this->domain);
if (isset($_COOKIE[ $string ])) return true;
else return false;
}
问题是,它只在我打开页面两次时才起作用,因为它得到了之前设置的cookie
显然,每个人都建议使用这种做法,但它不适合我
我错过什么了吗?每:
在下一次加载cookie应该可见的页面之前,cookie将不可见。要测试cookie是否成功设置,请在cookie过期之前在下一个加载页面上检查cookie。Expire time通过Expire参数设置。调试COOKIE存在的一个好方法是简单地调用print_r($_COOKIE)
如果您需要在同一页面上访问它,请改用会话,或者在调用setcookie
后重定向到同一URL。Per:
在下一次加载cookie应该可见的页面之前,cookie将不可见。要测试cookie是否成功设置,请在cookie过期之前在下一个加载页面上检查cookie。Expire time通过Expire参数设置。调试COOKIE存在的一个好方法是简单地调用print_r($_COOKIE)
如果您需要在同一页面上访问它,请改用会话,或者在调用
setcookie
后重定向到同一URL。cookie不能以这种方式工作。当设置cookie时,它在下一个请求之前不可用(即相应的$\u cookie
键存在)
实际情况是:
- 客户端发送一个请求
- 服务器发送包含设置Cookie响应头字段的响应
- 客户端发送包含相应Cookie请求头字段的请求
- 服务器注册
密钥$\u COOKIE
$\u cookie
键存在)
实际情况是:
- 客户端发送一个请求
- 服务器发送包含设置Cookie响应头字段的响应
- 客户端发送包含相应Cookie请求头字段的请求
- 服务器注册
密钥$\u COOKIE
使用一个好的Firefox扩展,例如,可以帮助您发现何时发送了哪些内容。Cookies是作为http头交换的一部分设置/接收的,因此,在通常情况下,客户端(浏览器)发送/接收的第一件事就是Cookies。对于您的问题,客户端只知道在第二次请求时它有一个cookie要发送
使用一个好的Firefox扩展,例如,可以帮助您发现何时发送了哪些内容。除非您使用
setcookie
,否则您应该使用$\u SESSION
,让PHP为您处理cookie。@meagar我应该创建一个会话来检查cookie吗?不,你可能根本不应该做饼干检查。只需使用$\u SESSION
并完成它。假设您的用户启用了cookie是安全的。除非您有使用setcookie
的特定原因,否则您应该使用$\u SESSION
,让PHP为您处理cookie。@meagar我应该只为cookie检查而创建会话吗?不,您可能根本不应该进行cookie检查。只需使用$\u SESSION
并完成它。假设你的用户启用了cookies是安全的。该死,我完全错过了这一部分!我怎么能检查Cookie是否启用?该死,我完全错过了那部分!我如何检查Cookie是否已启用?