|
|
|
|
|
для: sim5
(16.04.2008 в 15:06)
| | о, спасибо! Вот теперь усё ясно. | |
|
|
|
|
|
|
|
для: pengo
(16.04.2008 в 14:06)
| | Если Вы используете поддиректорию для хранения файлов сессий (см. выше директиву session.save_path), тогда сессии не будут удаляться автоматически. Вы должны будете сделать собственный сборщик мусор для сесиий, например через сценарий, используя cron, или другой метод. | |
|
|
|
|
|
|
|
для: sim5
(11.04.2008 в 12:33)
| | да, такой параметр установлен, но сессии-то не удаляются сами. В комментарии к параметру в файле php.ini написано:
; NOTE: If you are using the subdirectory option for storing session files
; (see session.save_path above), then garbage collection does *not*
; happen automatically. You will need to do your own garbage
; collection through a shell script, cron entry, or some other method.
; For example, the following script would is the equivalent of
; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
; cd /path/to/sessions; find -cmin +24 | xargs rm
|
Кто может прокомментировать первое предложение? Не могу понять его смысл, у меня плохо с английским :( | |
|
|
|
|
|
|
|
для: pengo
(11.04.2008 в 10:33)
| | session.gc_maxlifetime = 1440 - установленное время жизни сессии по умолчанию в php.ini (в сек). Данный параметр можно изменить посредством сценария РНР - ini_set (string varname, string newvalue) | |
|
|
|
|
|
|
|
для: pengo
(11.04.2008 в 10:33)
| | Посмотрите поточнее по дукументации. Может это как раз Ваш случай.
Регистрации обработчиков (написанных Вами)
session_set_save_handler() -- устанавливает пользовательские функции хранения сессии
Т.е.ф-ция регистрирует процедуры, имена которых ей переданы в параметрах, как обработчики
текущей сессии.
Описание:
bool session_set_save_handler ( callback open, callback close, callback read, callback write, callback destroy, callback gc )
Описание: устанавливает пользовательский-уровень функций на сеанс, которые будут использоваться
для хранения и поиска данных связанных с данным сеансом.
Это - наиболее полезное использование дополнительных методов кроме тех, что обеспечиваютя
сеансами PHP. То есть, Хранить/(Загружать) сеансовые данные в локальную базу данных.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Внимание!!! ф-цию session_set_save_handler() можно вызываеть только до инициализации сессии т.е
(до session_start()).
Значения параметров:
open - содержит имя ф-ции, которая будет вызвана при инициализации сессии
close - содержит имя ф-ции, которая будет вызвана при закрытии сессии
read - содержит имя обработчика для чтения из временного хранилища
Замечание: Read-функция должна всегда возвращать строковое значение, чтобы заставлять
сохранять работу обрабочика - как ожидаемое.
Возвращает пустую строку, если нет данных, для чтения.
write - содержит имя обработчика для чтения записи во временное хранилищщ
Замечание: Обработчик "write" не выполняется даже после закрытия выходного потока. Таким
образом, выход из отладочных утверждений(операторов) обработчика "write" никогда не будет
увиден в окне браузера. При отладочном выходе необходимо, напоминаю, чтобы отладочный выход
был записан в обменный файл.
destroy - содержит имя ф-ции, которая будет вызвана при уничтожении сессии
Внимание!!! Вызов Обработчиков Записи(Write) и Закрытие(Close) после того, как destructing возразит
с PHP 5.0.5.????
Таким образом (destructors)разрушители могут использовать сеансы, но сеансовый
обработчик не может использовать объекты. В предшествующих версиях, они использовали
противоположный порядок. Возможно должны зываться session_write_close() из destructor
(разрушителя), чтобы решать эту проблему "курицы и яйца".
Write and Close handlers are called after destructing objects since PHP 5.0.5. Thus
destructors can use sessions but session handler can't use objects. In prior versions,
they were called in the opposite order. It is possible to call session_write_close()
from the destructor to solve this chicken and egg problem.
gc - содержит имя ф-ции, которая будет вызвана для "чистки мусора"
Возвратные значения из других обработчиков преобразуются в логические выражения. TRUE для успеха, FALSE - в случае неудачи. | |
|
|
|
|
|
|
|
для: sim5
(10.04.2008 в 16:31)
| | да, но только пока я удаляю их ручками. Как зовётся этот параметр, может там стоит через несколько месяцев чистить файлы сессий??? | |
|
|
|
|
|
|
|
для: pengo
(10.04.2008 в 16:29)
| | Они будут удалены через время указанное в настройках php.ini, не беспокойтесь, не забьется диск. | |
|
|
|
|
|
|
|
для: mechanic
(10.04.2008 в 16:19)
| | ладно, с этим всё понятно. Почему файлы сессий не убиваются во временной папке на сервере? Ведь везде пишут, что при закрытии браузера файлы сессий удаляются автоматом. Проблема в том, что сколько же будет этих временных файлов, если они не будут удалятся. В один прекрасный момент может весь диск забиться, особенно если посещаемость сайта большая. | |
|
|
|
|
|
|
|
для: pengo
(10.04.2008 в 16:15)
| | сессии в любом случае создаются на сервере,а в куках хранится только идентификатор сессии, который при каждом запросе страницы отсылается серверу, сервер берет нужный файл сессии и достает оттуда все сохраненные переменные юзера | |
|
|
|
|
|
|
| Столкнулся с тем, что не удаляются файлы сессий из временной папки на сервере при закрытии браузера. И ещё, сессии создаю так:
ini_set('session.use_cookie',1);
ini_set('session.use_only_cookies',1);
session_start();
|
но они всё расно создаются на сервере, а в куках нет. | |
|
|
|
|