我正在使用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");
}
在刷新期间,似乎我的会话变量被销毁/重置。我在echo
语句之前尝试if
会话值,尽管它总是空白的。
我确定的事情:
session_start()
,所以
这不可能是问题。php.ini
文件并检查了
session.gc_maxlifetime
是1440
奇怪的是,它适用于MAMP,而不适用于我的AWS服务器。
答案 0 :(得分:1)
我或多或少有同样的问题。 它是安装在服务器中的PHP版本的bug。 要解决它,就像这样做
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);
}