Несколько разных сессий в одном скрипте.

rafaello

Новичок
Доброго дня.
Прошу подсказать, как поступить для решения следующего вопроса.
Необходимо, что бы на одном скрипте PHP запускалась одна сессия с ограничением времени жизни в 5 минут, а другая как по умолчанию - 24 часа. То есть скрипт периодически проверяет переменные из пятиминутной сессии и в случае их окончания принимает определенные действия, и также проверяет переменные из 24-часовой сессии. Причем, начало обоих сессий могут быть как разными, так и одновременными.
Пробовал устанавливать
PHP:
ini_set('session.gc_maxlifetime', 300);
или
PHP:
session_start(['session.gc_maxlifetime' => 300]);
не помогло.
 

weregod

unserializer
Реализуйте свой сессионный механизм и запускайте, что и как угодно.
 

WMix

герр M:)ller
Партнер клуба
Мне тоже кажется, что ты глупостью занимаешься, я не запускал скрипт на 24 часа, религия не позволяет, чаще делил на маленькие задачи
 

rafaello

Новичок
Реализуйте свой сессионный механизм и запускайте, что и как угодно.
не очень понятно как? Хотя бы дали намек на метод создания....

Непонятна цель подобного упражнения.
Цель такова. Есть две группы переменных. Надо, чтобы срок жизни первой группы был ровно 5 минут, а второй группы сколько угодно (поэтому написал по умолчанию - 24 часа).
Переменные первой группы. Туда заносятся определенные данные, то есть счетчик. И если за пять минут количество определенных данных превысило установленное количество, то предпринять такие то действия, а если нет - то нет.
Переменные второй группы. Обычные сессии. Переменные создаются и потом при выполнении каких то условий удаляются.
Смысл в том, что эти две группы должны работать параллельно в одном скрипте.
 

rafaello

Новичок
Хотя сейчас пришла интересная мысль.
Надо просто создать массив переменных и одному из значений массива присвоить текущее время сервера time(); А потом можно сравнивать, опираясь на маркер времени.
 

rafaello

Новичок
И при чём тут сессии?
интересный вопрос. Как при чем. Ведь мне надо собрать количество (счетчик) за пять минут. Выше написал же понятно, что условие такое, что если за пять минут количество ошибок более установленного, то тогда выполнить то то
 

rafaello

Новичок
ну вобщем то интересно. На мой взгляд это можно сделать
  • через базу данных
  • запись в текстовый файл
  • через сессии
Первые два варианта меня не очень устраивают. Остаются сессии. Или есть еще какие варианты?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Через любое хранилище
 

Фанат

oncle terrible
Команда форума
Зал суда. Идёт бракоразводный процесс. Судья:
— Почему вы хотите развестись со своим мужем?
— А он меня в постели не устраивает!
Женские голоса из зала:
— Всех устраивает,а её не устраивает!
 

ksnk

прохожий
А задача-то какая ставится? Вот зашел юзер на сайт, поставил переменную, которая должна жить 5 минут, потом еще одну, на 24 часа. Потом через 2 дня зашел. Где должен быть командир? Что должно происходить? Через 5 минут сервер что-то умное сделает с 5 минутными переменными? Сам, без участия пользователя ?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
рассказываю для тех, кто не умеет читать документацию:
1. сессии - это передача данных между HTTP-вызовами, которые обрабатываются одним приложением
2. никакого истечения времени жизни переменных в сессии не существует, переменные в скрипте никогда сами не исчезают
3. по дефолту очистка сессий - это удаление файлов с меткой времени чтения больше, чем 30 минут, и выполняется случайно, с вероятностью 1 на 1000 вызовов, если не настроена другая вероятность и время
4. если случайно очистка не запустилась - файлы сессий никуда не исчезнут
5. можно настроить хранилище сессий в редисе или memcached - они будут чистить данные сессий, которые долго не использовались, но с переменными в скрипте это не связано

чтобы сессия запускалась в одном скрипте - это вообще НЕ сессия, и с ограничением времени - это тоже вообще НЕ сессия

да, и с теорией программирования это вообще не связано
 
Сверху