我从w3schools获取了这个文件,它通过他们的编辑器运行得很好,但当我将它上传到我的托管服务上时,它一直显示为"Cookie'user'未设置"。我检查了我的php.ini文件,似乎打开了cookie,是否有其他设置可能导致此问题?
<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), ""); // 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
非常感谢!
在PHP代码之前有一行HTML。我假设输出缓冲已关闭,所以这一行会导致发送响应标头。将第一行移到PHP代码后面。
您的浏览器上可能没有启用cookie。如果您正在使用chrome,您可以尝试以下步骤:
- 单击浏览器工具栏上的菜单图标
- 选择设置
- 单击"显示高级设置"
- 单击"内容设置"
- 在出现的对话框的"Cookies"部分,确保允许选择要设置的本地数据以允许第一方和第三方cookie
- 单击"关闭"
如果你正在使用另一个浏览器,只需谷歌:"Allow coockies on[browser Name]"