当用户键入名称时,我创建了一个输入表单。 a isset($ _ COOKIE)检查已创建的cookie是否已存在。 如果cookie存在,您将收到一条消息:欢迎回来。 如果没有,你会收到消息:这是你第一次来这里。 但不知怎的,我总是把这条消息欢迎回来。
这是我的代码:
<?php
if(!empty($_POST))
{
header("Location:form_data.php");
setcookie('name',$_POST['name'], time() + (86400 * 30));
}
if(isset($_COOKIE['name']))
{
echo "Welcome back ".$_COOKIE['name'];
}else
{
echo "hello ".$_COOKIE['name']; echo " this is your first time here.";
setcookie('name',$_POST['name'], time() + (86400 * 30));
}
?>
有人可以帮我解决这个问题吗?
答案 0 :(得分:3)
setcookie()。否则会导致标题错误。
在您的代码中:
更改自:
echo "hello ".$_POST['name']; echo " this is your first time here.";
setcookie('name',$_COOKIE['name'], time() + (86400 * 30));
要强>
setcookie('name',$_POST['name'], time() + (86400 * 30));
echo "hello ".$_POST['name']; echo " this is your first time here.";
因此在header()重定向之后不会执行其他代码,你应该将exit()附加到它:
所以也改变:
header("Location:form_data.php");
setcookie('name',$_POST['name'], time() + (86400 * 30));
要强>
setcookie('name',$_POST['name'], time() + (86400 * 30));
header("Location:form_data.php"); exit();
答案 1 :(得分:0)
您的代码似乎是正确的。 (除了卡洛指出的部分)