2013-08-06 78 views
0

我有一个脚本,所以当用户输入一个不正确的验证码在联系我的形式我有它将用户表单数据保存到一个cookie,以便当用户必须重新输入验证码。但它没有保存cookie,我检查了Chrome调试器,它没有做任何事情。PHP饼干没有设置

下面的代码,我检查了这两个变量成功工作有人问前;)

$name = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
setcookie("name", $name, time()+3600, "/", "http://pattersoncode.ca"); 
setcookie("email", $email, time()+3600, "/", "http://pattersoncode.ca"); 
setcookie("message", $message, time()+3600, "/", "http://pattersoncode.ca"); 

回答

1

的问题是在你的域参数的http://;它指定了一个协议,即HTTP,而不是域的一部分。

如果你想设置有效example.com一个cookie,subdomain.example.com只会在该子网域工作,同时设定.example.com将在所有子域(包括根域)的工作。

总之,尝试用这些:

setcookie("name", $name, time()+3600, "/", ".pattersoncode.ca"); 
setcookie("email", $email, time()+3600, "/", ".pattersoncode.ca"); 
setcookie("message", $message, time()+3600, "/", ".pattersoncode.ca"); 
+0

不,没什么:( – Austen

+0

我忘了提,你**必须**调用'的setcookie()'** **之前打印出任何内容,可以使用'echo'和'printf'等打印功能,或者在''标签之外(仍然算作打印)。您是否检查过? – Nerius

+0

呃,是的。 ,但它需要检查验证码是否正确,因此如果我删除它,它会破坏目的。 – Austen