带有setcookie和unset的php会话传递
我有一个奇怪的问题,当我在PHP中将带有setcookie和unset的php会话传递,php,session,session-cookies,unset,Php,Session,Session Cookies,Unset,我有一个奇怪的问题,当我在PHP中将setcookie与session一起使用时,当我的浏览器打开时,一切正常,但当我关闭它时,我无法将$\u session从一页传递到另一页! 在登录页面中,我有: $_SESSION['name'] = $_POST['name']; $_SESSION['pass'] = $_POST['pass']; $life=2592000;//1 month setcookie(session_name(),session_id(),time()+$life);
setcookie
与session一起使用时,当我的浏览器打开时,一切正常,但当我关闭它时,我无法将$\u 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,但值不同!我认为案例问题和会话变量不会在页面之间传递。除了@Matt提到的问题(您可能需要一些自定义机制来使用cookies恢复或重新设置会话),请记住,使用mod_rewrite或实际目录会弄乱cookies路径!为确保cookie在您需要的时间和地点可用,请添加额外的参数
/
(,$path参数)您意识到在关闭浏览器时会丢失$\u会话,对吗?当我关闭浏览器时,会话丢失,cookie不工作!但我无法再次登录,因为我无法将$\会话从检查页传递给管理员。注意:当我删除cookie,登录工作!这是我的注销页面!我必须摧毁它然后重新定向!很高兴听到这个消息。但请注意,会话文件通常存储在temp dir中,并在几个小时后删除(取决于服务器配置)。因此,接受@Matt advice并使用存储在cookie中的值(可能是指向db记录的指针)重新实例化会话