【问题标题】:PHP sessions only works second time?PHP会话只能第二次工作?
【发布时间】:2013-11-28 08:33:13
【问题描述】:

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

在页面上:

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。

请帮忙!

【问题讨论】:

标签: php


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:
    $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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      相关资源
      最近更新 更多