2009-08-23 81 views
0

我在PHP脚本中设置了一个cookie,它也有一些html,第一行是setcookie函数。Cookie值没有被正确地修复

<?php 
setcookie("user", "xyz", time()+3600); 
?> 
<html> 
------ some html tags 
</html> 

在其他尝试访问的PHP脚本中,我得到一个空值。 $ user = $ _ COOKIE [“user”];

谁能告诉我为什么会发生这种情况?

+0

您的cookies已启用,是吗? – Sampson 2009-08-23 01:32:24

回答

1

将敏感信息存储在这样的cookie中并不是一个好习惯。 Cookie可以由用户编辑,因此他可以在这里设置他的“用户”cookie以被识别为他想要的任何用户。更好的做法是使用sessions代替。通过会话,您可以使用$ _SESSION superglobal将任何敏感信息轻松安全地绑定到该特定用户。

+0

我正在使用会话。但我有一些问题(http://stackoverflow.com/questions/1316054/slow-response-to-database-write-from-php) 这就是为什么我现在使用cookie。 – Vidya 2009-08-23 01:41:21

+1

我对这个问题有一个答案,我现在正在写它。 – Havenard 2009-08-23 01:44:54

+0

http://stackoverflow.com/questions/1316054/slow-response-to-database-write-from-php/1317534#1317534 – Havenard 2009-08-23 02:01:11

2

您的浏览器已启用Cookie,是吗? var_dump($ _COOKIE ['user']); var_dump($ _COOKIE ['user']); var_dump($ _COOKIE ['user']); var_dump($ _COOKIE ['user']);准确打印? NULL,false?

+0

是启用Cookie。事实上,该值设置,我可以在Firefox的选项/隐私选项卡中看到它。但价值不可接近。 var_dump($ _COOKIE ['user']);给我NULL。 – Vidya 2009-08-23 01:37:52

+0

你能粘贴更多代码吗?你没有显示整个脚本。这是一个文件,两个文件?在同一台服务器上,不是子网域的权利? – 2009-08-23 01:40:14

+0

好的。我将cookie设置为http://mydomain/home.php ,我试图通过http://mydomain/cl/base/test.php访问它。这可能吗 ? – Vidya 2009-08-23 01:43:55