【发布时间】:2016-04-10 12:51:58
【问题描述】:
我有这样的代码:
<!DOCTYPE html>
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$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>
据我所知,它应该返回警告
Cannot modify header information - headers already sent by
正如这个问题How to fix "Headers already sent" error in PHP 但我没有收到任何警告,并且设置了 cookie。这是为什么? php是否添加了某种缓存,现在您可以在发送文本后发送标头?我正在使用 php 5.6.11。
【问题讨论】:
标签: php cookies http-headers