PHP会话只能第二次运行?

时间:2013-11-28 08:33:13

标签: php

为什么这只能在第二次导航到另一个页面时起作用?

在页面上:

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。

请帮忙!

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

$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);