在setcookie()
(http://php.net/manual/en/function.setcookie.php)的PHP手册中,我们了解到Cookie与其他HTTP标头一起发送。这意味着它必须在脚本的任何输出之前发送,包括html和head标签。
令我惊讶的是,代码工作正常:
<!doctype html>
<html lang="en">
<head>
<title>Cookie test</title>
</head>
<body>
<p>Proin ornare sapien in justo laoreet imperdiet. Duis bibendum iaculis dui id consequat. Interdum et malesuada fames ac ante ipsum primis in faucibus.</p>
<?php
setcookie('test_cookie', uniqid(), time()+3600);
?>
</body>
</html>
如您所见,在body标签内调用了setcookie()
函数。我使用Chrome开发工具查看当前Cookie,并列出了test_cookie
。
为什么上面的代码不会触发PHP的任何错误消息?
我正在使用XAMPP 3.2.2,PHP版本7.0.9,Chrome 62.0.3202.94