2016-03-10 177 views
0

我正在使用AWS与Ubuntu LAMP堆栈。我通常只是在我的Mac上使用MAMP来测试东西并使用托管托管服务,如GoDaddy,所以这是我第一次使用AWS。我的老开发人员为我设置了AWS,所以我从那时起就接管了。在页面重新加载/刷新时重置会话?

我的代码在MAMP上完美工作,虽然无法在AWS上工作。

当用户尝试登录时,我调用我用PHP编写的RESTful API来验证登录,并在成功时设置会话变量。然后我刷新页面并检查会话是否已设置,如果已设置,则加载另一个php文件。

这是我整个index.php文件:

session_start(); 
if ($_SESSION['user_login_status'] == 1) { 
    include("app.php"); 
} else { 
    include("login.php"); 
} 

在刷新,它好像我的会话变量被摧毁/复位。我已尝试在if声明之前的会话值echo,尽管它始终为空。

事情我已经确定的:

  • 我在我的PHP文件的最顶端设置session_start(),所以 不能成为问题。
  • 我通过SSH连接到接入到php.ini文件,并检查了
    session.gc_maxlifetime1440

只是似乎很奇怪,它适用于甲基苯丙胺,而不是我的AWS服务器上。

回答

1

我或多或少都有同样的问题。 这是安装在服务器上的PHP版本,它会造成错误。 为了解决这个问题,只是不喜欢这样

session_start(); 
if ($_SESSION['user_login_status'] !== 1) { 
    include("login.php"); 
} else { 
    include("app.php"); 
} 

OR

session_start(); 
if ($_SESSION['user_login_status'] != 1) { 
    include("login.php); 
} else { 
    include("app.php"); 
} 

OR

session_start(); 
if ($_SESSION['user_login_status'] === 1) { 
    include("app.php"); 
} else { 
    include("login.php); 
} 
相关问题