setcookie()不在我的网站上工作,同样适用于phpfiddle& W3Schools的

时间:2015-07-06 15:19:22

标签: php cookies

无法使用php' setcookie'设置Cookie在我的网站上。

它是我从w3schools获得的基本代码。它适用于w3schools(该示例适用于我的浏览器),也适用于phpfiddle,但无论我刷新多少次,我都无法在我的网站上工作。这是确切的代码:

{{1}}

当我把它放在phpfiddle上时,这个完全相同的代码有效。但是我的网站上没有工作..

此外,当我尝试使用JavaScript设置cookie时 - 它工作正常。

2 个答案:

答案 0 :(得分:1)

尝试放置代码

$cookie_name = "user3";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value);

在html内容之上,即

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

答案 1 :(得分:1)

有助于理解在此处设置cookie的基本机制。 Cookie仅在请求的响应标头中设置(在使用javascript cookie设置技术之外)。在fac中的setcookie()调用只是一个便利函数,它使程序员不必手动设置与cookie相关的响应头。

由于只能在发送任何实际HTTP响应内容之前发送标头,因此您必须在发送任何响应正文之前执行任何setcookie()次呼叫(就像任何header()次呼叫一样)

在您的情况下,您在调用setcookie()之前发送了几行HTML,这意味着将永远不会发送包含cookie的标头,因为它在响应周期中已经太晚了。您需要在将任何输出发送到浏览器之前移动此代码。