#php #session-timeout #session-cookies
#php #тайм-аут сеанса #сессия-cookies
Вопрос:
Я работал в проекте, где другой разработчик написал код, в то время как пользователь, как обычно, входит в session_start (), а затем проверяет, как показано ниже:
if($a['userName'] == $username amp;amp; $a['password'] == $pwd)
{
$_SESSION['id'] = $a['id']; ?> <script language="javascript"type="text/javascript">window.location="host.php";</script> } else {
$msg= "Invalid Username Password";
}
И когда пользователь хочет использовать форму через пару секунд, она выходит из системы, и пользователь не может отправить данные.
Я попытался увеличить продолжительность жизни сеанса:
$sessionCookieExpireTime=8*60*60;
session_set_cookie_params($sessionCookieExpireTime);
А также пробовали с увеличением срока службы сеанса во время выполнения, как показано ниже:
ini_set('session.gc_maxlifetime', '3600');
И, наконец, попробовал, увеличив время жизни сеанса php.ini .
К сожалению, это не сработало.
Одна вещь, которую я должен упомянуть, что нет session_destroy () для проблем с выходом.
Заранее спасибо.
Ответ №1:
На каком сервере вы работаете?
На общем сервере, на котором запущено несколько сайтов, использующих общий каталог сеансов, время session.gc_maxlifetime фактически является самым коротким временем жизни всех сайтов, обращающихся к этому общему каталогу.
Если проблема на сервере разработки, выясните, где хранятся файлы сеанса, и посмотрите, что с ними происходит.
Также возможно, что каталог, в котором хранятся сеансы, недоступен для записи. В этом случае переменная сеанса никогда не сохраняется в первую очередь.
Во всех трех случаях: попробуйте сохранить файлы сеанса в другом каталоге. В коде вы должны указать каталог сеанса с помощью session_save_path()
перед вызовом session_start()
.
Комментарии:
1. это облачная машина, и там размещено множество других php-проектов, они работают хорошо
Ответ №2:
Тайм-аут возникает, когда пользователь бездействует в течение определенного времени. Невозможно автоматически выйти из системы, если не использовать session_destroy.
Возможно, что ваш код $ a [‘id’];
случайно возвращает null. Кроме того, вам необходимо проверить, на какой странице выполняется выход из системы. Предоставление полного кода может быть простым для определения проблемы.