2013-11-28 49 views
0

为什么这仅在第二次导航到另一页时才起作用?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。

请帮忙!

+0

[How Session Works?]的可能重复(http://stackoverflow.com/questions/2954879/how-session-works) – Peon

回答

1

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

如果是这样的话,你甚至可以设置会话cookie的域设置为允许*.domain.com

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