Cookie不会设置

时间:2012-08-28 15:57:23

标签: php cookies

  

可能重复:
  “Header Already Sent” error in PHP

我有我的代码,以便用户指定他们的IGN(游戏名称),然后将其存储在cookie中。它不会起作用。

<form action="index.php" method="GET">
    Minecraft IGN:
    <input type="text" name="ign">
    <input type="submit" value="Submit">
</form>

<?PHP
error_reporting(0);
$player = $_GET["ign"];
$exp = time()+86400;
setcookie("ign", $player, $exp, "/", "", "");

if (isset($player)) {
    echo "Your Minecraft Ingame Name Was Set To $player!";
}
?>

<br>

<?PHP
if (isset($player)) {
    echo '<p>Click <a href="http://gophobia.com/phpsend/">Here</a> To Redeem Ur Prizes    :3</p>';
}
echo '<br />';
print_r($_COOKIE);
?>

2 个答案:

答案 0 :(得分:2)

这是一个非常常见的错误,但很容易解决。

这直接来自手册,但表示它比我更好:

  

setcookie()定义了一个与其余部分一起发送的cookie   HTTP标头。与其他标头一样,Cookie必须先发送   脚本输出(这是协议限制)。这个   要求您在输出之前调用此函数,   包括<html><head>标记以及任何空格。

http://php.net/manual/en/function.setcookie.php

关键是必须在任何输出之前调用它。

答案 1 :(得分:1)

您的代码可能运行良好。该脚本在页面加载时设置cookie。但是你必须再次页面加载以检索值,因为设置cookie和检索它的值都不能在单个实例中工作。

相关问题