php中的setcookie函数和phpinfo不工作但在localhost工作

时间:2018-05-28 17:51:35

标签: php cookies setcookie

我尝试编写一个设置cookie的代码并检查{cookie}是否isset按下“cookie create”,否则显示“cookie not create”但是它无法在localhost中正常工作。

<html>
<head>
<?php setcookie("a","abcdef",time()+3600); ?>
</head>
<body>
<?php 
phpinfo(); 

if(isset($_COOKIE['a']))
{
echo $_COOKIE["a"];
}
else
{
echo "no cookie";
}
?>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

正如Stack Overflow上的另一个问题PHP - setcookie(); not working所回答的那样,您的PHP应用程序在尝试设置cookie之前会发出HTML输出:

<html>  <------- oh no!
...
<?php setcookie("a","abcdef",time()+3600); ?>

此时,PHP已经完成发送 HTTP标头(不要与HTML <head>标签混淆)并且无法设置cookie(必须将其作为一部分完成) HTTP标头)。

首先设置cookie,你应该没问题:

<?php setcookie("a","abcdef",time()+3600); ?>
<html>
...

确保在任何其他(非HTTP标头)输出之前调用setcookie()