0

我有一个奇怪的问题,当我setcookie在 PHP 中使用会话时,当我的浏览器打开时,一切正常,但是当我关闭它时,我无法$_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 但值不同!我认为案例问题和会话变量不会从页面传递到页面。

4

1 回答 1

1

除了@Matt 提到的问题(您可能需要一些自定义机制来使用 cookie 恢复或重新启动会话),请记住,使用 mod_rewrite 或实际目录会与 cookie 路径混淆!要确保 cookie 在您需要的时间和地点可用,请添加附加参数/PHP setcookie()、 $path 参数)

于 2012-08-03T15:31:40.670 回答