|
|
|
| Есть такая идея.
При входе на сайт, проверяется логин и пароль. Потом надо на каждой странице показывать данные пользователя (имя, фамилию, логин).
Нормально ли такое решение:
При входе пользователя мы соединяемся с базой, чтобы проверить. Если пользователь найден - пускаем его на сайт. При соединении с базой мы получили всю информацию о пользователе. Эта информация передается в класс в котором она и должна сохраниться (наверное через константы?). А потом при каждой генерации странцы нам не нужно уже соединяться с базой чтобы найти и нформацию о пользователе. Мы только подключаем класс и берем информацию из него.
Таким образом можно и настройки сайта хранить, вроде. Где-то я это уже видел. Но не могу вспомнить где.
Это нормальная логика? Как это реализовать. Я в ООП еще не очень разбираюсь.
Приведите пожалуйста примеры. | |
|
|
|
|
|
|
|
для: neokortex
(30.10.2010 в 00:54)
| | а кто будет хранить состояние объекта класса между запросами? | |
|
|
|
|
|
|
|
для: Trianon
(30.10.2010 в 01:25)
| | да наверное я не прав. надо каждый раз соединяться с базой в случае с пользователем.
а по поводу настроек? | |
|
|
|
|
|
|
|
для: neokortex
(30.10.2010 в 02:15)
| | Вам пытаются сказать что классы не могут хранить в себе данные по определению. Для хранения данных авторизации обычно используются сессии | |
|
|
|
|
|
|
|
для: zuldd
(31.10.2010 в 20:53)
| | хотя может я и не прав... | |
|
|
|
|
|
|
|
для: neokortex
(30.10.2010 в 02:15)
| | ну по идее когда пользователь "логинится" вы пишете ему в сессию какойто "sid" и такой же в базу... каждый раз, при загрузке страницы, всё равно сверяете с базой, если "sid" из базы равный "sid" из сессии, значит пользователь залогинен, тогда пускаем его на сайт, и получаем о нём информацию, иначе выводим форму входа.. | |
|
|
|
|
|
|
|
для: sl1p
(31.10.2010 в 23:40)
| | при каждом обновлении страницы искать пользователя в базе, чтобы проверить залогинится он или нет? странноватый способ... | |
|
|
|
|
|
|
|
для: psychomc
(01.11.2010 в 00:52)
| | а как ёпт?..
пользователь логинится, мы добавляем в таблицу, айди юзера и его сид и тотже сид пишем в сессию, а дальше проверяем. А как иначе тогда? | |
|
|
|
|
|
|
|
для: sl1p
(01.11.2010 в 02:50)
| | Пишем в сессию все необходимые данные о имени, логине, и прочем. В крайнем случае туда пихаем сериализованный объект. | |
|
|
|
|
|
|
|
для: sl1p
(01.11.2010 в 02:50)
| | а одной сессии разве недостаточно? | |
|
|
|
|
|
|
|
для: psychomc
(01.11.2010 в 00:52)
| | По Вашему, лучше на каждом обновлении страницы в файл лазать? | |
|
|
|
|
|
|
|
для: Trianon
(01.11.2010 в 08:02)
| | тут мы лазим и в файл и в базу. неужели файла недостаточно? | |
|
|
|
|
|
|
|
для: psychomc
(01.11.2010 в 10:42)
| | не буду говорить, почему в БД обращаться нужно так или иначе.
про аутентификацию, и должные credentials этого процесса писал тут не один раз. | |
|
|
|
|
|
|
|
для: Trianon
(01.11.2010 в 19:39)
| | дайте плиз ссылку на тему, в которой вы обосновываете правильность подхода, использующего для аутентификации sid, хранящийся в бд | |
|
|
|
|
|
|
|
для: psychomc
(01.11.2010 в 20:33)
| | чтоб я где-то предлагал sid применять для аутентификации?!
Свят свят.
В том и дело, что при сессионной организации аутентификации в роли оного применяется именно sid. | |
|
|
|
|
|
|
|
для: Trianon
(01.11.2010 в 21:04)
| | меня интересует в данном вопросе какбэ то, от чего спасает база данных...
а точнее, почему не достаточно от перехвата сессии сформировать для пользователя какой-нибудь уникальный ключ в сессии, например ip + браузер, и потом уже сверять тот ли это пользователь с помощью этого ключа в сессии и того что выдает $_SERVER.. | |
|
|
|