Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有setcookie和unset的php会话传递_Php_Session_Session Cookies_Unset - Fatal编程技术网

带有setcookie和unset的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);

我有一个奇怪的问题,当我在PHP中将
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记录的指针)重新实例化会话