PHP会话只适用于第二次


PHP sessions only works second time?

为什么只有在我第二次导航到另一个页面时才能工作?

在页面上:

session_start();
$a_var = $_POST["var"];
if (isset($_POST["var"])) {
$_SESSION['ses_var'] = $a_var;
echo "<script type='text/javascript'>relocate('http://www.mydomain.com/newfile.php');  </script>";
}

第二页:

session_start();
echo $_SESSION['ses_var'];

它是一个更大的登录系统的一部分,但现在我只是简单地尝试将代码简化为这个,但当我第一次尝试导航到newfile.php时,它仍然是空的!如果我回去再试一次,那么它会在newfile.php上获取我的ses_var。

请帮忙!

您可能会遇到会话cookie问题。请确保第一页和第二页的域名完全相同。例如,检查页面1不是www.domain.com,而页面2只是没有www.domain.com

如果是这种情况,您甚至可以设置会话cookie域设置以允许*.domain.com

$sess_life_time = 21600; //in seconds
$sess_path = "/";
$sess_domain = ".you-site-name.com";
$sess_secure = true; // if you have secured session
$sess_httponly = true; // httponly flag
session_set_cookie_params($sess_life_time, $sess_path, $sess_domain, $sess_secure, $sess_httponly);