在PHP中测试Cookie

在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

判断某人的浏览器中是否启用了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.</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