2013-10-04 1 views
0

Я использую Drupal 6 для программы, которая выполняет некоторую работу по электронному платежу. В связи с тем, что вход в систему означает, что браузер может получить доступ к конфиденциальной финансовой информации пользователей, я хочу убедиться, что он отключится после сеанса после неактивного периода.Сессия Drupal не кажется логической

Я попытался с помощью:

ini_set('session.cookie_lifetime', 600); //expire after 10 minutes of inactivity 

Однако это Регистрирует пользователя через 10 минут независимо от того, были ли они какую-либо деятельность с момента входа в систему.

Есть ли другой параметр для использования или способ изменить этот параметр, чтобы завершить сеанс после бездействия, а не иметь сложную и длительную продолжительность жизни?

ответ

0

Drupal позволяет пользователям оставаться в системе, пока они не выходят из системы. Это может показаться вам нелогичным, но для людей, пишущих большие посты, или желания возобновить запись после паузы, они имеют большой смысл: они могут разочароваться, если после долгой работы они отправляют свое сообщение и получают сообщение об ошибке, потому что их сессия истекла.

Сообщалось, что вы можете рассмотреть модуль Automated logout, который, скорее всего, поможет вам с требованиями вашего приложения.

+0

Я знаю, что мой титул не самый лучший. Я просто подумал, что таймер сеанса drupal будет основываться на бездействии, а не на абсолютном времени (даже если это 23 дня бездействия, чтобы позволить большим сообщениям расходиться со временем). В любом случае, спасибо за эту ссылку, это выглядит очень многообещающе. Я отчитаю, если это сработает для меня. – BlargleMonster

0

Вам необходимо реализовать собственное решение, нет надежного способа сделать это, просто изменив настройки. Если вам нужно больше информации проверить этот ответ How do I expire a PHP session after 30 minutes?

Взятые из топа ответа на этот вопрос:

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) { 
    // last request was more than 30 minutes ago 
    session_unset();  // unset $_SESSION variable for the run-time 
    session_destroy(); // destroy session data in storage 
} 
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp 

Также вы хотели бы установить:

ini_set('session.cookie_lifetime', 0); 

Так что он никогда не истекает его если они не закрывают браузер.

+0

Do 'session_unset();' и 'session_destroy();' эффективно уничтожить сеанс Drupal? – BlargleMonster

+0

Да, он разрушает сеанс php. – Pitchinnate

Смежные вопросы