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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: по какому принципу производится очистка данных сессии?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
ugin_root
Отправлено: 20 Мая, 2011 - 22:20:22
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Май 2011  
Откуда: Киргизия


Помог: 5 раз(а)




интересует по какому именно принципу удаляются устаревшие файлы сессий в папке /tmp/.
при удаление файлов сессий учитывается последний доступ к этим файлам или дата их создания?
 
 Top
OrmaJever Модератор
Отправлено: 20 Мая, 2011 - 22:27:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




24 минуты с последнего момента изменения файла


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
ugin_root
Отправлено: 20 Мая, 2011 - 23:43:25
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Май 2011  
Откуда: Киргизия


Помог: 5 раз(а)




OrmaJever
спасибо!

тогда возникает другой вопрос...
скрипт полностью ареентирован на "дозагрузку" всего контента, раз в 10 секунд отправляются запросы на обновление некоторых частей этого контента (избавиться от этих запросов не получится, полученые даные из запросов важны для сотрудников в "реальном времени"), но через некоторое время выскакивает предупреждение со следующим содержанием:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: session_start() [function.session-start]: open(/home/%user_name%/tmp/sess_238b5d2a79c7db83bd7665a78051127a, O_RDWR) failed: Permission denied (13) in /home/%user_name%/public_html/index.php on line 2
  2.  
  3. Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/%user_name%/public_html/index.php:2) in /home/%user_name%/public_html/index.php on line 2

и сессия не "стартует", параметры доступа к папке с временными файлами "777" и все скрипты и includ-ы в кодировке "UTF-8 без BOM" как это можно исправить или с чем это может быть связано?

так выглядит начало вызываемого скрипта:
PHP:
скопировать код в буфер обмена
  1. <?
  2. header("Content-type:text/html;charset=utf-8");
  3. header('Cache-Control: no-store, no-cache');

(Добавление)
по сути параметры которые храняться в текущей сесии не меняюстся при долгом "простое" странички.
меняется-ли дата последнего изменения файла(!) с переменными сессии если сами данные остались неизменными, или этот файл изменяется только если была задана новая переменная или изменена старая?

(Отредактировано автором: 20 Мая, 2011 - 23:57:57)

 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Мая, 2011 - 01:15:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




ugin_root блин, это много объяснять..
Именно такой проблемы не было.
Однако решение есть.
Чтобы не зависить от сессий, нужно проверять сперва наличие кук и делать аутенфикацию по ним, и жить они могут дольше, и от настроек сервера не будешь зависеть.
А вот если куки от юзера не пришли - работаем с сессиями, но только один раз, и тут же ставим куки..
 
 Top
ugin_root
Отправлено: 21 Мая, 2011 - 01:34:05
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Май 2011  
Откуда: Киргизия


Помог: 5 раз(а)




DeepVarvar
востанавливать все данные сессии по полученым кукам - это вариант, но для этого мне прийдётся править и дописывать много кода.
мне-бы узнать что происходит с данными сессии после того как выполнится скрипт, а точнее посмотреть при каких условиях php "обновляет" файл сессии, если файл с куками удаляется через "24 минуты с последнего момента изменения файла", то добавление переменной с рендомным значением в нужном месте полностью решит эту проблему.
 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Мая, 2011 - 01:41:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




ugin_root пишет:
через некоторое время выскакивает предупреждение

Временные промежутки одинаковы или всегда разные?
ugin_root пишет:
добавление переменной с рендомным значением в нужном месте полностью решит эту проблему

Но добавит другую (если я пральна понял что меняться динамически будет содержимое сессии):
Если юзер был залогинен и активен на одном компе,
то придя на другой (который хранит старое значение сессии) - будет разлогинен...
 
 Top
ugin_root
Отправлено: 21 Мая, 2011 - 01:53:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Май 2011  
Откуда: Киргизия


Помог: 5 раз(а)




DeepVarvar
временные промежутки равны 10000 милисикунд, но это не суть важго, главное то что если от клиента в течение 60000 милисекенд не прийдёт ни одного ответа то производится session_unset(); и сейчас всё рвботает отлично, но если от клиента стабильно приходят ответы то через энное количество минут вылезает этот варнинг, а сессия из папки /tmp/ удаляется.

динамически меняться будит только одна переменная (строго для того что-бы менялся атрибут последнего изменения в файле с сессией)

клиент через 60 секунд неответа будит разлогинен в любом случае, даже если он просто закроет вкладку со страничкой (ответы перестали приходить->клиент разлогинен), просто это не совсем для общего пользования, пользуются только "сотрудники"

(Отредактировано автором: 21 Мая, 2011 - 01:56:34)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB