Доброго времени суток. Столкнулся с затруднительной ситуацией. Её подробное описание: существует форма отправки на сервер авторизационных данных пользователя. На стороне сервера они обрабатываются функцией, которая делает запрос к базе данных на вывод идентификатора пользователя, идентичного полученному логину и паролю. В случае удачной выборки, идентификатор добавляется в сессионную куку. Затем пользователь перенаправляется на страницу, которая осуществляет AJAX - запрос на сервер для вывода списка доступных модулей. Помимо доступных модулей, сервер присылает установленное в файле .htaccess время сессии, посредством функции ini_get("session.gc_maxlifetime"). Основываясь на присланной информации о времени жизни сессии, на стороне клиента запускается функция, которая с указанным временным интервалом + дополнительные пять секунд, отправляет на сервер AJAX - запрос на проверку присутствия в массиве $_SESSION идентификатора пользователя. В качестве ответных данных сервер шлёт единицу (если идентификатор найден) или ноль (в противном случае). В зависимости от присланных данных, функция запускает сама себя (если в ответе пришла единица), или выводит на экран модальное окно авторизации (в противном случае).
Содержимое файла .htaccess:
CODE ( htmlphp):
скопировать код в буфер обмена
php_value session.gc_maxlifetime 10 php_value session.cookie_lifetime 10 php_value session.gc_probability 100 php_value session.gc_divisor 1
Насколько я знаю, вызов уборщика устаревших сессионных кук осуществляется по формуле - php_value session.gc_probability / php_value session.gc_divisor. Также знаю, что если один сервер обрабатывает запросы с нескольких сайтов, то сессии обновляются. Чтобы решить данную проблему надо сменить директорию для сессий. Но мой случай не подходит, так как запросы осуществляет только один сайт.
Вопрос: что в данной ситуации мне ещё необходимо сделать, чтобы сессия удалялась в назначенное для неё время ?
|