-4
<?php
if (!isset($_COOKIE['firsttime']))
{
setcookie("firsttime", "no", time()+1500); 
 ?>

 <div class="row-fluid">
        <div class="span4 center">
        </div>
            <div class="span4 center">
            <div style="">
                    <div class="alert alert-info">
                            <button type="button"     href="<?php setcookie("firsttime", "no", time()+1500); ?>" class="close" data-   dismiss="alert">&times;</button>
                            <strong>Welkom</strong> <br   />Dit is je eerste bezoek op wijktoernooi.nl ! <br /> Wil je je direct registreren? Klik hier!
                    </div>
                    </div>
            </div>
            <div class="span4 center">
        </div>

    </div>
<?php
}
 else
{
// do or show nada !
}
?>

根据上面的代码,如果没有设置 cookie,它应该首先设置 cookie 并显示警报框

但它没有....当我重新加载页面时,我仍然看到警告框,我在哪里犯了错误?

4

1 回答 1

2

在设置 cookie 之前,您不能发送输出。您需要了解HTTP。所以做这个测试:var_dump(headers_sent());在你尝试设置一个cookie之前。如果发送了标头,则说明您做错了。

href="<?php setcookie(...); ?>"是迄今为止最有创意的PHP用途。PHP 打印东西。它不对HTML/DOM/JS事件做出反应。它接受输入并产生输出。这就是它所做的一切。

我不能给你任何在这里工作的代码,因为你没有理解它的头部或尾部所需的理解。所以弄清楚(客户端/浏览器和服务器/php通信),只有这样你才能解决这个问题并在未来做正确的事情。HTTP cookies

于 2013-07-04T12:23:45.423 回答