我有一个奇怪的问题,当我在PHP中使用setcookie
会话时,我的浏览器打开,一切正常,但当我关闭它时,我无法通过$_SESSION
页面到另一页!
在登录页面我有:
$_SESSION['name'] = $_POST['name'];
$_SESSION['pass'] = $_POST['pass'];
$life=2592000;//1 month
setcookie(session_name(),session_id(),time()+$life);
header("location:administrator/");
die();
我在其中的每个页面中使用session_start();
,我也使用此代码进行注销:
session_start();
unset($_SESSION['name']);
unset($_SESSION['pass']);
session_destroy();
header("location:../");
一个重要的注意事项是当我检查浏览器cookie时,在关闭浏览器之前有两个cookie并且它们的内容值完全相同,一个在会话结束时到期但另一个在一个月后到期,我喜欢,但后来我关闭浏览器并返回,有两个cookie但具有不同的值!我认为案例问题和会话变量不会从页面传递到页面。
答案 0 :(得分:1)
除了@Matt提到的问题(您可能需要一些自定义机制来使用cookie恢复或重新恢复会话),请记住使用mod_rewrite或实际目录混淆cookie路径!要确保Cookie随时随地可用,请添加其他参数/
(PHP setcookie(),$ path参数)