2016-03-10 226 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); 
} 
相關問題