Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> время жизни сессий 
:(
    Опции темы
tregub
Дата 2.5.2007, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



положим мне надо задать посетителю некий вопрос.(тест Тьюринга). время на выполнение этого теста должно быть ограничено. а после этого теста юзера надо запомнить на длительное время.
Вопрос: можно ли указывать время жизни сессии для отдельного юзера? 
Я нашел некий совет:
Цитата

Будьте осторожны, используя ini_set, чтобы изменить session.gc_maxlifetime  значение  в локально для вашего скрипта:
Вы будете рушить сессии других людей, когда сборка мусора происходит (и они будут рушить ваши сессии) независимо от их (вашей) намеченной session.gc_maxlifetime , потому что session_name не принимается во внимание в течение сборки мусора.

Создайте собственную директорию и установите session.save_path на нее , так, чтобы ваши файлы сессии ни с кем не стали смешивались.

т.е. я так понимаю используя ini_set, мы переконфигурируем весь файл php.ini? и он действует на все сессии?

А если так, то как указать, что из 1 директории можно удалять сессионные файлы через такое-то время, а из 2- через другое?
возможно есть нормальное решение?
PM MAIL   Вверх
SelenIT
Дата 2.5.2007, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



А причём здесь время жизни сессии вообще? Засекайте время начала теста, храните где угодно (хоть в штатной сессии, хоть в базе), а при очередном запросе сверяйте - кто в таймаут не уложился, тот опоздал...

А session.gc_maxlifetime, AFAIK, как точному таймауту вообще доверять нельзя.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
tregub
Дата 2.5.2007, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



как бы если я засекаю время начала теста для кого-то, то я должен помнить для кого. а это-сессия(впрочем она необходима в любом случае) а т.к. у сессии есть время жизни, то я и хотел узнать нельзя ли его использовать. а то, что можно создать отдельную запись в БД с временем начала теста это понятно.
PM MAIL   Вверх
SelenIT
Дата 2.5.2007, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(tregub @  2.5.2007,  01:55 Найти цитируемый пост)
т.к. у сессии есть время жизни, то я и хотел узнать нельзя ли его использовать

Можно, но очень неудобно, ненадежно, да и незачем). А если нужный таймаут короче дефолтного срока жизни сессии - можно метку времени прямо в сессии и хранить, а не в БД.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
tregub
Дата 2.5.2007, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Цитата

можно метку времени прямо в сессии и хранить

это как?
PM MAIL   Вверх
SelenIT
Дата 2.5.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Как обычную переменную сессии smile.

При первом заходе:
Код

$_SESSION['test_started'] = time();

При проверке:
Код

if (time() - $_SESSION['test_started'] > 180) { // таймаут на 3 минуты
    die ('Это был либо бот, либо тормоз:))');
}



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
tregub
Дата 2.5.2007, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Цитата

Как обычную переменную сессии
 smile 
это совсем не то.
а возможно ли создать 2 папки для tmp файлов, и установить в них разное время жизни сессий с помощью .htaccess?

прошу прощения, если выражаюсь безграмотно, но надеюсь вы меня поняли.

Это сообщение отредактировал(а) tregub - 2.5.2007, 16:19
PM MAIL   Вверх
SelenIT
Дата 2.5.2007, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(tregub @  2.5.2007,  16:18 Найти цитируемый пост)
это совсем не то.

Аргументируйте.

Цитата(tregub @  2.5.2007,  16:18 Найти цитируемый пост)
 возможно ли создать 2 папки для tmp файлов, и установить в них разное время жизни сессий с помощью .htaccess?

См. мою подпись;). Но зачем???


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
tregub
Дата 2.5.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Цитата

Аргументируйте.

ну как если делать согласно вашему предложению, то получается, что сессия для людей, которые проходят регистрацию будет жить не дольше всех остальных, но и не меньше времени, которое потребуется удаленному пользователю для того, чтобы пройти тест. а я спрашивал как указать 2 периода жизни для сессий.(т.е короткоживущие для регистрирующихся и стандартные для залогинившихся)
Понятное дело, что ваш пример работоспособен, просто у меня вопрос другой.(причем он скорей из любопытства: можно или нет)
PM MAIL   Вверх
SelenIT
Дата 2.5.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(tregub @  2.5.2007,  17:32 Найти цитируемый пост)
т.е короткоживущие для регистрирующихся

Ну так убивайте их руками (с помощью session_destroy) при просрочке таймаута - вот они и станут короткоживущими, безо всяких противоестественных истязательств сервера... smile


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
tregub
Дата 2.5.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Цитата

Ну так убивайте их руками

значит это не я плохо искал, а родной функции нет.
ну тогда спасибо за терпение.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.