【发布时间】:2012-08-01 16:13:19
【问题描述】:
我有一个奇怪的问题,当我在 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 但具有不同的值!我认为案例问题和会话变量不会在页面之间传递。
【问题讨论】:
-
当您关闭浏览器时,您会发现
$_SESSION丢失了,对吧? -
当我关闭浏览器会话丢失并且 cookie 不起作用!但我无法再次登录,因为我无法将 $_SESSION 从检查页面传递给管理员。注意:当我删除cookie时,登录工作!
-
这是我的登出页面!我必须销毁它然后重定向!
标签: php session session-cookies unset