Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > Как сделать сессию доступной с разных серверов?


Автор: animegirl 3.2.2012, 13:45
Есть много апп серверов, как сделать так, что бы актуальная сессия, имела везде одинаковою информацию?

Автор: ksnk 3.2.2012, 13:50
Хранить сессию в базе данных, которая едина для всех этих серверов.

Автор: animegirl 4.2.2012, 00:43
Да я тоже уже к этому пришла, но по факту использование команд сессий, не имеют дальнейшего смысла я так поняла, поправьте меня если не права.

Автор: ksnk 4.2.2012, 09:41
Цитата(animegirl @  4.2.2012,  00:43 Найти цитируемый пост)
 по факту использование команд сессий, не имеют дальнейшего смысла

А я не понял смысла фразы  smile 

Автор: animegirl 9.2.2012, 03:10
Цитата(ksnk @  4.2.2012,  09:41 Найти цитируемый пост)
А я не понял смысла фразы   

Использование ниже перечисленных функций:
http://de3.php.net/manual/ru/ref.session.php
не имеет смысла. Я написала небольшую функцию, где каждый раз берутся данные из базы и кладутся обновлённые обратно

Автор: ksnk 9.2.2012, 08:20
animegirl, Все равно не понял smile
Сделать так, чтобы сессия хранилась в базе данных довольно несложно. 
http://de3.php.net/manual/ru/function.session-set-save-handler.php - вот тут объясняется подход, и ниже кучка примеров, в том числе и для базы данных.

А те функции, "использование которых не имеет смысла" будут тут работать также, как и работали со стандартной сессией.

Автор: deperoff 12.2.2012, 11:52
Да,в Друпале используется такой же принцип.Храня сессию в БД можно обращаться к ней из любый скриптов.

Автор: animegirl 12.2.2012, 15:27
Ну я сделала, просто так, храню данные сессии, массивом запечатанным через json_encode в ДБ, откуда в начале скриптов забираю, а если в ходе скрипта что-то меняю, то кладу обратно.

Автор: Stark 12.2.2012, 17:11
http://php.net/manual/en/memcached.sessions.php

session.save_handler = memcache 
session.save_path = "tcp://localhost:11211" 

Автор: SamDark 22.2.2012, 23:27
animegirl
Тяжёлый путь выбрали. session.save_handler всё-таки попроще будет.

Stark
А вот это очень не советую. Как пользователей станет много, их начнёт отлогинивать так как memcache не гарантирует сохранность засовываемых в него данных и при переполнении начинает тереть старые.

Автор: Fortop 26.2.2012, 19:55
Цитата(SamDark @  22.2.2012,  23:27 Найти цитируемый пост)
А вот это очень не советую. Как пользователей станет много, их начнёт отлогинивать так как memcache не гарантирует сохранность засовываемых в него данных и при переполнении начинает тереть старые.

Есть один нюанс.

Пользовательская сессия кушает врял ли больше 1кб.

А это значит, что даже 1Гб нам хватит на 1млн пользователей.
Сервер же с такой памятью стоит копейки сейчас.

Так что мемкеш в принципе подходит.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)