Цитата |
Вы пытаетесь на базе stateless протоколов сделать stateful приложение? Это как правило не очень хорошо кончается. Как минимум проблемы с несколькими открытыми окнами. |
Значит с остальными участками программы проблем нет, а несколько открытых окон уже проблема? Удивляете
у меня состояния тоже хранятся в базе, это как пример технических данных в сессии, может и не совсем удачный. Я к тому, что сессия не используется для кэширования моделей, в основном там только какие–то временные статические данные или временные данные, сохраняемые между запросами. Так вот почему бы ради этого не использовать сессию? Лишняя сущность? По мне так наоборот удобно обособить некоторую группу данных. А иначе как, сохраняем в кэш многомерный массив первым ключом которого будет токен?
Цитата |
ну, например, положили в сессию товар с ценой, в цена изменилась и т.п |
и как пить дать продадите по цене на момент помещения товара в корзину, иначе такой судебный иск впаяют со ссылкой на защиту прав потребителя
Цитата |
И получается у нас, что мы сессией дублируем информацию в базе. |
это не совсем так, в основном вычисленные промежуточные значения или выбранные по сложному условию, хранение в сессии позволяет избавится от повторного вычисления или "тяжелой" выборки.
_____________
Стимулятор ~yoomoney - 41001303250491
Цитата (MiksIr @ 4.08.2013 - 01:10) |
К слову, замечаю последнее время авторизацию без сессий во фреймворках. Взять тот же Yii. |
Цитата (MiksIr @ 4.08.2013 - 03:55) |
Цитата (Guest @ 4.08.2013 - 02:11) | Значит с остальными участками программы проблем нет, а несколько открытых окон уже проблема? Удивляете |
Извините, я не понимаю что вы сказали.
|
Тогда расскажите поподробнее, что за мифическая проблема с несколькими открытыми окнами.
Это
Цитата |
Речь шла о хранении в сессии какого-то состояния. Например, вы храните в сессии набор фильтров и сортировок и используете их при выводе данных. Тогда, если человек откроет два окна с этой формой, он не сможет отобразить их в разных сортировках/фильтрах и "полистать" их - сервер не может различить эти окна и будет "перебивать" установленные фильтры. |
и это
Цитата |
Вы пытаетесь на базе stateless протоколов сделать stateful приложение? Это как правило не очень хорошо кончается. Как минимум проблемы с несколькими открытыми окнами. |
идентично и я сразу понял о чем идет речь. Потому и переспросил. Удивительно что вы выставляете это недостатком сессионного механизма, а не алгоритма ее реализации. И по сложней задачи решаются, например такие, как авторизация в нескольких учетных записях, при чем не только в пределах одного браузера, а даже в пределах одной вкладки. А отследить фильтры в нескольких окнах по сравнению с этим просто детская забава. На то и дали нам session_set_save_handler, чтобы мы могли строить на основе $_SESSION все что нам ни вздумается. Неумение использовать $_SESSION не повод закидывать ее камнями.
Это еще почему? Вам значит можно фантазировать, а мне нельзя? Если это все решается без проблем, то зачем вообще приводить это в пример как проблему?
Цитата |
И что, такая выборка случается только для конкретного человека и никогда не может случится для другого? Что-то сомневаюсь. |
Для человека мыслящего объектами достаточно опрометчивое замечание, я уже не говорю о смысловой нагрузке. Даже если результаты выборки будут похожи как две капли воды, это разные сущности.
_____________
Стимулятор ~yoomoney - 41001303250491
Цитата |
Можете тыкнуть в свой проект и рассказать, почему там сессия обязательна оказалась |
я пишу браузерную онлайн игру, в сессию я пишу информацию которую я не могу доверить криптованным кукам, чтобы даже исключить саму возможность подделки данных влияющих на результат игры.
_____________
Стимулятор ~yoomoney - 41001303250491
MiksIr, на самом деле не так много, идентификатор пользователя, идентификатор текущего персонажа, ну и еще пару тройку значений которые не меняются в течение сессии. Логику самой игры стараюсь не выпускать за рамки MySQL, а РНР в основном для вывода результата.
_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.