Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос по сессиям
Форумы портала PHP.SU » » HTTP и PHP » Вопрос по сессиям

Страниц (1): [1]
 

1. Костэн - 26 Августа, 2011 - 14:25:16 - перейти к сообщению
Доброго времени суток. Столкнулся с затруднительной ситуацией. Её подробное описание: существует форма отправки на сервер авторизационных данных пользователя. На стороне сервера они обрабатываются функцией, которая делает запрос к базе данных на вывод идентификатора пользователя, идентичного полученному логину и паролю. В случае удачной выборки, идентификатор добавляется в сессионную куку. Затем пользователь перенаправляется на страницу, которая осуществляет AJAX - запрос на сервер для вывода списка доступных модулей. Помимо доступных модулей, сервер присылает установленное в файле .htaccess время сессии, посредством функции ini_get("session.gc_maxlifetime"). Основываясь на присланной информации о времени жизни сессии, на стороне клиента запускается функция, которая с указанным временным интервалом + дополнительные пять секунд, отправляет на сервер AJAX - запрос на проверку присутствия в массиве $_SESSION идентификатора пользователя. В качестве ответных данных сервер шлёт единицу (если идентификатор найден) или ноль (в противном случае). В зависимости от присланных данных, функция запускает сама себя (если в ответе пришла единица), или выводит на экран модальное окно авторизации (в противном случае).
Содержимое файла .htaccess:

CODE (htmlphp):
скопировать код в буфер обмена
  1. php_value session.gc_maxlifetime 10
  2. php_value session.cookie_lifetime 10
  3.  
  4. php_value session.gc_probability 100
  5. php_value session.gc_divisor 1


Насколько я знаю, вызов уборщика устаревших сессионных кук осуществляется по формуле - php_value session.gc_probability / php_value session.gc_divisor. Также знаю, что если один сервер обрабатывает запросы с нескольких сайтов, то сессии обновляются. Чтобы решить данную проблему надо сменить директорию для сессий. Но мой случай не подходит, так как запросы осуществляет только один сайт.

Вопрос: что в данной ситуации мне ещё необходимо сделать, чтобы сессия удалялась в назначенное для неё время ?

 

Powered by ExBB FM 1.0 RC1