Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Не удаляются файлы сессий

Сообщения:  [1-10] 

 
 автор: pengo   (16.04.2008 в 16:06)   письмо автору
 
   для: sim5   (16.04.2008 в 15:06)
 

о, спасибо! Вот теперь усё ясно.

   
 
 автор: sim5   (16.04.2008 в 15:06)   письмо автору
 
   для: pengo   (16.04.2008 в 14:06)
 

Если Вы используете поддиректорию для хранения файлов сессий (см. выше директиву session.save_path), тогда сессии не будут удаляться автоматически. Вы должны будете сделать собственный сборщик мусор для сесиий, например через сценарий, используя cron, или другой метод.

   
 
 автор: pengo   (16.04.2008 в 14:06)   письмо автору
 
   для: 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

Кто может прокомментировать первое предложение? Не могу понять его смысл, у меня плохо с английским :(

   
 
 автор: sim5   (11.04.2008 в 12:33)   письмо автору
 
   для: pengo   (11.04.2008 в 10:33)
 

session.gc_maxlifetime = 1440 - установленное время жизни сессии по умолчанию в php.ini (в сек). Данный параметр можно изменить посредством сценария РНР - ini_set (string varname, string newvalue)

   
 
 автор: vitali   (11.04.2008 в 11:42)   письмо автору
 
   для: 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 - в случае неудачи.

   
 
 автор: pengo   (11.04.2008 в 10:33)   письмо автору
 
   для: sim5   (10.04.2008 в 16:31)
 

да, но только пока я удаляю их ручками. Как зовётся этот параметр, может там стоит через несколько месяцев чистить файлы сессий???

   
 
 автор: sim5   (10.04.2008 в 16:31)   письмо автору
 
   для: pengo   (10.04.2008 в 16:29)
 

Они будут удалены через время указанное в настройках php.ini, не беспокойтесь, не забьется диск.

   
 
 автор: pengo   (10.04.2008 в 16:29)   письмо автору
 
   для: mechanic   (10.04.2008 в 16:19)
 

ладно, с этим всё понятно. Почему файлы сессий не убиваются во временной папке на сервере? Ведь везде пишут, что при закрытии браузера файлы сессий удаляются автоматом. Проблема в том, что сколько же будет этих временных файлов, если они не будут удалятся. В один прекрасный момент может весь диск забиться, особенно если посещаемость сайта большая.

   
 
 автор: mechanic   (10.04.2008 в 16:19)   письмо автору
 
   для: pengo   (10.04.2008 в 16:15)
 

сессии в любом случае создаются на сервере,а в куках хранится только идентификатор сессии, который при каждом запросе страницы отсылается серверу, сервер берет нужный файл сессии и достает оттуда все сохраненные переменные юзера

   
 
 автор: pengo   (10.04.2008 в 16:15)   письмо автору
 
 

Столкнулся с тем, что не удаляются файлы сессий из временной папки на сервере при закрытии браузера. И ещё, сессии создаю так:

ini_set('session.use_cookie',1);
ini_set('session.use_only_cookies',1);
session_start();

но они всё расно создаются на сервере, а в куках нет.

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования