在PHP中测试Cookie
判断某人的浏览器中是否启用了cookies的最佳方法是什么。我试过:在PHP中测试Cookie,php,Php,判断某人的浏览器中是否启用了cookies的最佳方法是什么。我试过: <?php setcookie('cookies','yes',time()+7200); if (!isset($_COOKIE['cookies'])) { echo '<div class="error" style="float:right;">You must enable cookies and Javascript to use this site.&l
<?php
setcookie('cookies','yes',time()+7200);
if (!isset($_COOKIE['cookies'])) {
echo '<div class="error" style="float:right;">You must enable cookies and Javascript to use this site.</div>';
} else {
echo '';
}
?>
但有时,即使启用了Cookie,它也会显示警报。我只希望在未启用Cookie时发出警报。您的代码不起作用的原因是Cookie随请求一起发送。您正在尝试的代码可以工作,但是
setcookie
必须位于与isset
调用不同的请求中。尝试在调用这两个函数之间调用重定向。代码不起作用的原因是cookies随请求一起发送。您正在尝试的代码可以工作,但是setcookie
必须位于与isset
调用不同的请求中。尝试在调用这两个函数之间调用重定向。这是因为cookie是在将请求发送到浏览器的同时设置的。
这意味着,即使在脚本结束之前执行setcookie(),浏览器在收到请求之后也会设置cookie
要以这种方式执行此操作,您需要重定向到带有一个小参数的页面,然后检查cookie
一个更灵活的解决方案是签入javascript。这是因为在将请求发送到浏览器的同时设置cookie。 这意味着,即使在脚本结束之前执行setcookie(),浏览器在收到请求之后也会设置cookie 要以这种方式执行此操作,您需要重定向到带有一个小参数的页面,然后检查cookie
一个更灵活的解决方案是签入javascript。Cookies不是这样工作的。瞧,饼干不是那样的。看,有没有不重定向的方法?也许另一种方法?不。您需要至少发出2个检查请求。@shummel7845:不,必须传输cookies。在这种情况下,唯一的方法可能是JavaScript。是否仍可以在不重定向的情况下执行此操作?也许另一种方法?不。您需要至少发出2个检查请求。@shummel7845:不,必须传输cookies。在这种情况下,唯一的方法可能是JavaScript