Как мне обрабатывать несколько сессий PHP с одним пользователем на одном сервере? - PullRequest
3 голосов
/ 19 августа 2011

У меня есть несколько приложений Facebook, размещенных в одном домене на моем сервере.Возможно, что один и тот же пользователь может получить доступ к двум или более моим приложениям за один сеанс.Как сделать так, чтобы некоторые данные из одного приложения не попадали в другое приложение?Поскольку пользователь может просто выйти из приложения, выход из него не вариант.

Ответы [ 4 ]

8 голосов
/ 19 августа 2011

Если вы используете разные session_name() для каждого приложения, сеансы эффективно инертны друг от друга.

0 голосов
/ 19 августа 2011

Вы можете создать что-то вроде секций сеанса, используя разные ключи для каждого приложения.Вам просто нужно убедиться, что ключи уникальны.Каждый раз, когда вы сохраняете некоторые данные в сеансе, сохраняйте их в соответствующем разделе, например:

//save the ids into db or configuration file after it's generated
$app1id = uniqid('fbApp');
$app2id = uniqid('fbApp');

//Save data for application 1
$_SESSION[$app1id] = array('app' => 'data');

//Save data for application 2
$_SESSION[$app2id] = array('app' => 'data');
0 голосов
/ 19 августа 2011

Просто мысль: может быть, вы захотите настроить поддомен для каждого из ваших приложений.Таким образом, файлы cookie и сеансы полностью разделяются автоматически, а не полагаются на функцию (которая может быть медленной, как указал один человек в session_name() комментариях к руководству.)

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

0 голосов
/ 19 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...