2016-03-10 2 views
0

Я использую AWS с стеком LAMP Ubuntu. Я обычно использовал MAMP на своем Mac, чтобы проверить вещи и использовать управляемый хостинг, такой как GoDaddy, так что это мой первый раз с использованием AWS. Моя старая установка для разработчиков AWS для меня, так что с тех пор я перешел.Сессии, сброшенные на странице reload/refresh?

Мой код отлично работает на MAMP, хотя и не работает на AWS.

Когда пользователь пытается войти в систему, я вызываю свой RESTful API, написанный на PHP, для проверки входа и установки переменной сеанса в случае успеха. Затем я обновляю страницу и проверяю, установлен ли сеанс, и если он установлен, я загружаю другой php-файл.

Это вся моя index.php файл:

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

Во время обновления, кажется, что мои переменные сеанса уничтожаются/сброса. Я пробовал echo, используя значение сеанса перед оператором if, хотя оно всегда пустое.

вещи я сделал уверен:

  • Я устанавливаю session_start() на самом верху моего файла PHP, так , что не может быть проблемой.
  • я подключен через SSH для доступа к php.ini файл и проверить, что
    session.gc_maxlifetime является 1440

Просто кажется странным, что он работает на MAMP, а не на моем сервере AWS.

ответ

1

У меня была более-менее та же проблема. Это версия PHP, установленная на сервере, которая делает ошибку. Чтобы решить эту проблему, просто это нравится этот

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

ИЛИ

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

ИЛИ

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