Intereting Posts
foreach с тремя переменными add Как я могу исправить ошибку MediaWiki? Wiki использует файлы cookie для входа в систему. У вас отключены файлы cookie. Пожалуйста, включите их и повторите попытку. "? stripe.js magenetic card reader php Laravel 5 выполняет агрегирование с помощью mongodb на where clause Вычислить наивысшие повторяющиеся целые числа из двух ассоциативных массивов Как подключить Jms из PHP? Как предотвратить добавление doctype в HTML? формат JSON с помощью функции php и результата печати внутри идентификатора div # Неизвестная ошибка модификатора '/' в PHP PHP preg_match необходимо для обеспечения только одного символа пробела между словами Возврат переменной из функции в php (возврат не работает) Проверка пустой строки Нужно ли задавать динамически $ config в кодеигнитре? получить электронную почту с помощью PHP и pop3 – какова ваша техника? Использовать веб-службу .Net с помощью PHP

Несколько сеансов в одном экземпляре с использованием PHP?

У меня есть проект, в котором я хотел бы создать два сеансовых файла cookie в одном браузере. Первый сеанс состоял бы в том, чтобы однозначно идентифицировать человека, второй – обмениваться событиями в сеансе между пользователями. Я использовал базу данных для этого, но хотел бы, чтобы данные исчезали, когда сессия умирает. В системе нет логинов.

Есть ли способ сделать это, кроме создания системы cookie для репликации функциональности?

Например, у нас есть два сеансовых файла cookie:

name=someRandomUUID и session=valueSharedBetweenUsers.

Я не хочу делиться сеансом name с несколькими пользователями, но session сессии будет. Мысли?

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

Хотя то, о чем вы просите, технически возможно, я бы настоятельно рекомендовал против этого.

РЕДАКТИРОВАТЬ

Предполагая, что я правильно понял ваше требование, вот как бы я это сделал:

  1. Используйте сеанс только для хранения данных сеанса, связанных с этим пользователем. Он может включать в себя что-то вроде:

     $_SESSION['name'] = 'test name'; $_SESSION['groupid'] = 2; 
  2. БД MySQL и таблица с полями groupid , XXXXX (данные, которые вы хотите сохранить), timestamp

Всякий раз, когда кто-либо обновляет информацию для определенного идентификатора группы, вы обновляете метку времени.

Затем запустите простой cronjob, чтобы проверить, есть ли current time - timestamp > 3600 (один час), и вы можете считать это устаревшим и удалить эти записи.

Я * думаю * у вас может быть только один «текущий» сеанс, но функциональность, о которой вы говорите, – имя_сайта:

http://www.php.net/manual/en/function.session-name.php

Функциональность файла cookie очень проста. Вместо этого я предлагаю изучить это.

Где происходит «valueSharedBetweenUsers»? Это постоянная запись или запись в базу данных?

В любом случае, было бы бессмысленно создавать один сеанс для каждой группы. Вместо этого вы должны предоставлять каждому пользователю уникальный сеанс для каждого пользователя; с вашим «общим» атрибутом в качестве атрибута сеанса для каждого человека.

Итак, начните уникальную сессию, а затем просто <? $_SESSION['session'] = 'mySharedValue'; ?> <? $_SESSION['session'] = 'mySharedValue'; ?>

Теперь у всех есть сеанс с уникальным sessionID и общим значением «session».

(Очевидно, что если вам нужно изменить этот атрибут позже, вам придется делать это отдельно для каждого отдельного человека)

Это не так хорошо, как люди делают facebook и твиттер, по крайней мере, 10 различных сеансов, создаваемых, когда пользователь вошел в систему.