php会话传递与setcookie和未设置

时间:2012-08-03 15:25:09

标签: php session session-cookies unset

我有一个奇怪的问题,当我在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但具有不同的值!我认为案例问题和会话变量不会从页面传递到页面。

1 个答案:

答案 0 :(得分:1)

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

相关问题