我正在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,但不能在根目录中的任何其他文件中检索..
可能是什么问题?
答案 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。