无法在php中读取cookie

时间:2013-01-12 10:12:13

标签: php cookies

我正在loginform.php这样的文件中创建Cookie:

$time = time();
setcookie('myusername', $myusername, $time +60*60*24*200); // Sets the cookie username
setcookie('myuserid', $rows['userid'], $time +60*60*24*200); // Sets the cookie password
setcookie('myname', $rows['name'], $time +60*60*24*200);

此文件位于名为login的文件夹中,该文件夹位于我网站的根目录中。

我可以在loginform.php中检索cookie,但不能在根目录中的任何其他文件中检索..

可能是什么问题?

2 个答案:

答案 0 :(得分:3)

创建cookie时,其根路径设置为创建的脚本的路径,在本例中为/ login - 下面的所有内容都无法访问cookie,在setcookie中添加“/”作为另一个parmeter

$time = time();
setcookie('myusername', $myusername, $time +60*60*24*200, '/'); // Sets the cookie username
setcookie('myuserid', $rows['userid'], $time +60*60*24*200, '/'); // Sets the cookie password
setcookie('myname', $rows['name'], $time +60*60*24*200, '/');

答案 1 :(得分:2)

来自manual

  

可在其上使用cookie的服务器上的路径。如果设置为“/”,则cookie将在整个域中可用。如果设置为'/ foo /',则cookie只能在/ foo /目录和所有子目录中使用,例如/ foo / bar / of domain。默认值是设置cookie的当前目录。

您需要将Cookie路径设置为/以便从任何位置访问它。所以它会像,

setcookie('myusername', $myusername, $time +60*60*24*200, '/'); 

在Cookie中设置用户名或用户ID等敏感信息并不是一个好主意。任何人都可以改变价值并成为其他人。

最好使用Session。即使会话ID也会保存在cookie中,但很难猜到另一个会话ID。