![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Zorak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 720 Регистрация: 13.11.2007 Репутация: нет Всего: 3 |
Здраствуйте. Вопрос следующего характера. У меня в базе хранится некое значение. И так, когда юзер логинится в систему, происходит считывание данного значения, которое прямо влияет на то какой текст и в каком формате пользователь видит страницу. И так вопрос:
Как сделать так чтобы ета переменная раз считалась и сохранилась, т.е. запихнуть ее кудато глобально и использовать где надо, чтобы не пришлось в каждом скрипте считывать ее опять ? Значение должно хранится исключительно в пределах сессии. З.Ы. $_SESSION не предлагать) Спасибо. -------------------- Знание - сила. А сила есть, ума не надо... Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло. |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Ну в PHP только 3 варианта хранения чего-то независимо от выполнения скриптов: в кеше, в БД, в файле.
Кеш самый быстрый, но не безразмерный. Работа с локальной БД довольная быстрая и эффективная. Для особых потребностей всегда можно выделить отдельную табличку, чтобы СУБД лишних данных не перебирала. Файлы самые универсальные - достаточно средств ОС. Но это медленно и больше нагрузки на диск. В принципе, если это всего несколько байт, то можно в кеш запихнуть на основе id сессии. Пример с APC:
Ну или можно сохранить навечно, он надо будет предусмотреть ее удаление по закрытию сессии. А почему? =) Это сообщение отредактировал(а) Arantir - 8.6.2013, 19:35 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| Zorak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 720 Регистрация: 13.11.2007 Репутация: нет Всего: 3 |
Arantir, ты как всегда мой ангел спаситель
$_SESSION слышком опасно юзать (смысл безопасности). Спасибо Это сообщение отредактировал(а) Zorak - 8.6.2013, 20:42 -------------------- Знание - сила. А сила есть, ума не надо... Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
ну, это зависит от умения пользоваться самый простой, кстати такие значения очень неплохо хранить в записи о пользователе. когда происходит авторизация, традиционно о пользователе извлекаются данные. хотя бы одна запись из БД - его id, имя (чтобы показать "Привет, %username%"), количество свежих сообщений и т.п. в той же записи в БД можно хранить и необходимые данные всё как всегда зависит от контекста |
|||
|
||||
| Zorak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 720 Регистрация: 13.11.2007 Репутация: нет Всего: 3 |
Ну суть такова:
После регистрации и пр первой авторизации юзер заполняет выбранные поля (в зависимости от выбранного значение становится 1 или 0 и сохраняется в базу.. Типа неких настроек).... При последующих авторизациях мне надо считать ети данные и пользоватся ими, но считать надо только один раз, когда он авторизуется и все... -------------------- Знание - сила. А сила есть, ума не надо... Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло. |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Если сессии Вам кажутся не безопасными, то как Вы храните данные авторизации? =)))
Сервер же как-то у Вас узнает, что, например, под с "nlnk7pubhi0pc08av65mj3obm3" сидит юзер Вася. Добавлено @ 21:36 Вообще, в самом PHP сессии не таят никакой опасности. Одна проблема сессий в самом принципе работы современного веба. Все построено на схеме запрос-ответ. И связи меж запросами нет. Юзер может послать что угодно. Как ни пыхти, а с текущим HTTP протоколом сессии останутся иллюзорными, как их не реализовывай. Привязка по IP - не панацея. У многих он по 3 раза в день меняется и они либо выключат привязку либо, если это невозможно, уйдут с такого сайта. А любые заголовки можно подделать. Другая в проблема в их использовании разработчиком. Сессия общая на все вкладки браузера и, нажимая "выйти" на одной, с других уже не должны быть возможны успешные запросы действий, требующих авторизации. И т.п... По сути, эти проблемы ни чем не отличаются от других оплошностей (например, плохой фильтрации данных при записи в БД и подобному) и не являются проблемой самих сессий, как отсутствие фильтрации - не проблема БД. Просто не надо доверять php больше, чем нужно, он императивный и чего не просят сам не сделает =) По-этому для больших возможностей все еще приходится писать десктопные приложения. Вот когда в этом отпадет необходимость ввиду новых возможностей будущих версий веб-протоколов, тогда наступит настоящая эра веба. А сейчас всё на костылях Это сообщение отредактировал(а) Arantir - 8.6.2013, 22:10 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| Zorak |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 720 Регистрация: 13.11.2007 Репутация: нет Всего: 3 |
Ну тут у меня реализовано все через БД, и исключительно через БД..Т.е. Время сесии в бд, последнее посещение в бд (исходя от разницы между последним посещением и временем сессии, которое хранится в бд генерируется новое ID сесии), остальное отдельная табла их двух полей : UID и id_session.. . Т.е. под такимто id_session сидит такойто юзер... В принципе Сессия у меня построена по принципу CMS Drupal, она мне там понравилась, за исключением нескольких моментов.
В принципе это еще ооочень не скоро пройдет, сколько себя помню, то всегда понимал что скомпилинное приложение для определенных задач намного лучше ВЕБ, все таки как ни крути, а данные грузятся в оперу, которая не ограничивается временем жизни, разве что комп вырубить-=).
Тут на все 100% прав. -------------------- Знание - сила. А сила есть, ума не надо... Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло. |
||||||
|
|||||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Ну сессии-то еще когда придумали =) Сейчас и кеш есть, и БД получше и возможностей побольше... да и люди, в общем-то, умнее Я сам для сложных случаев не использую родных сессий вообще. Там, где пользователи серьезно относятся к сохранности своих данных и прав доступа (например, если есть платные доп. услуги), база данных позволяет реализовать адекватное отслеживание и статистику сессий. Как минимум кнопочка "закрыть другие сессии" приносит в душу мир и покой, если запамятовал нажать кнопочку "выход" где-то на не своем компьютере. Через файлы это бы было, как через мягкое место. Уже не говоря о том, что будет 2 несвязных интерфейса управления — первый нативный для текущей сессии и второй для перебора файлов, а не один гармоничный и целостный. Более того, можно вшить обе возможности — кеш и БД — прямо в свою реализацию, чтобы доступ данным сессии и с кеш и с БД осуществлялся по тем же правам доступа без явного разделения. Всего-лишь при записи указывать тип хранения. Ну это я уже замечтался что-то... Вечно уж меня тянет космические корабли строить, когда и легковушки достаточно -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| Zorak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 720 Регистрация: 13.11.2007 Репутация: нет Всего: 3 |
[QUOTE]
Ну это я уже замечтался что-то... Вечно уж меня тянет космические корабли строить, когда и легковушки достаточно [\QUOTE] Зато на корабле можно долететь немного дальше чем доехать на легковушке) -------------------- Знание - сила. А сила есть, ума не надо... Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |