PHP设置cookie不保存有效数据

时间:2014-07-07 20:42:53

标签: php cookies

我遇到的问题是表单会根据用户的第一次,第二次或第三次访问提供不同的选项。我第一次测试时,cookie数据全部有效(尽管在单词和“%20”之间加上“+”符号代替电子邮件地址中的@符号)。但是,当我第二次访问该页面时,setcookie仅在cookie中保存; ?>。生成的电子邮件返回相同的“;?>”现场数据应该是的数据。我不明白为什么它会像那样改变cookie ...?

if (isset($_POST["firstname"])) {
$firstname = $_POST["firstname"];
} 
else {
if (isset($_COOKIE["modvisitor_fn"])) {
    $firstname = $_COOKIE["modvisitor_fn"];
}
}
if (isset($_POST["lastname"])) {
$lastname = $_POST["lastname"];
} 
else {
if (isset($_COOKIE["modvisitor_ln"])) {
    $lastname = $_COOKIE["modvisitor_ln"];
}
}
if (isset($_POST["email"])) {
$email = $_POST["email"];
} 
else {
if (isset($_COOKIE["modvisitor_e"])) {
$email = $_COOKIE["modvisitor_e"];
}
}

// Set a cookie with visitor information
$date_of_expiry = time()+60*60*24*30;
setcookie( "modvisitor_fn", $firstname, $date_of_expiry );
setcookie( "modvisitor_ln", $lastname, $date_of_expiry );
setcookie( "modvisitor_e", $email, $date_of_expiry );

仅供参考我设置cookie的原因是因为他们第二次访问时他们不必在我们的表单中填写相同的信息,他们只被要求提供他们的头衔和公司。

1 个答案:

答案 0 :(得分:0)

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

设置Cookie时,必须与其他标题一起发送,之前任何内容(例如html,甚至是空格)。

请务必将setcookie()放在可能会向您的网页输出内容的任何其他代码之前。

哦和rtm:)