为什么这段代码只能在本地服务器上正常工作?
问题描述:
我正试图学习如何设置cookie,并且以下代码在本地服务器上正常工作,但由于某种原因,它不在活服务器上。下面是代码为什么这段代码只能在本地服务器上正常工作?
<?php
$test = 'false';
if (isset($_COOKIE['test'])) $test = $_COOKIE['test'];
echo "<p><b>The value of the cookie 'test' is: $test</b></p>";
setcookie('test', 'I love cookies');
?>
我已经做了一些搜索,是谁的人有同样的问题,但他回答他自己声称他想通了,什么是错的。这里是他的回答:
已经完成了。问题在于设置cookie,因为头文件已经在该文件中发送,cookie没有保存。现在完成了。:)
那么,他是什么意思?
答
您是否使用同一浏览器测试了本地主机和活动服务器(启用了Cookie)?
编辑:
按照你的编辑,你应该设置Cookie,然后送样回声,print_r的等任何输出......作为setCookie方法命令发送到与头一个浏览器,所有的标题应该输出之前发送。你的代码应该看起来像:
$test = 'false';
if (isset($_COOKIE['test'])) $test = $_COOKIE['test'];
setcookie('test', 'I love cookies');
echo "<p><b>The value of the cookie 'test' is: $test</b></p>";
如果你真的需要与输出执行一些动作之前设置的cookie,您可以使用输出缓冲溶液:
$test = 'false';
if (isset($_COOKIE['test'])) $test = $_COOKIE['test'];
ob_start();
echo "<p><b>The value of the cookie 'test' is: $test</b></p>";
$buffer = ob_get_contents();
ob_end_clean();
setcookie('test', 'I love cookies');
echo $buffer;
所以在远程计算机,您不能设置曲奇饼? –
是的,当我尝试使用与在线服务器相同的代码时,它不会生成cookies –