Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ООП. Помогите начинающему
 
 автор: neokortex   (30.10.2010 в 00:54)   письмо автору
 
 

Есть такая идея.

При входе на сайт, проверяется логин и пароль. Потом надо на каждой странице показывать данные пользователя (имя, фамилию, логин).

Нормально ли такое решение:
При входе пользователя мы соединяемся с базой, чтобы проверить. Если пользователь найден - пускаем его на сайт. При соединении с базой мы получили всю информацию о пользователе. Эта информация передается в класс в котором она и должна сохраниться (наверное через константы?). А потом при каждой генерации странцы нам не нужно уже соединяться с базой чтобы найти и нформацию о пользователе. Мы только подключаем класс и берем информацию из него.

Таким образом можно и настройки сайта хранить, вроде. Где-то я это уже видел. Но не могу вспомнить где.

Это нормальная логика? Как это реализовать. Я в ООП еще не очень разбираюсь.
Приведите пожалуйста примеры.

  Ответить  
 
 автор: Trianon   (30.10.2010 в 01:25)   письмо автору
 
   для: neokortex   (30.10.2010 в 00:54)
 

а кто будет хранить состояние объекта класса между запросами?

  Ответить  
 
 автор: neokortex   (30.10.2010 в 02:15)   письмо автору
 
   для: Trianon   (30.10.2010 в 01:25)
 

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

а по поводу настроек?

  Ответить  
 
 автор: zuldd   (31.10.2010 в 20:53)   письмо автору
 
   для: neokortex   (30.10.2010 в 02:15)
 

Вам пытаются сказать что классы не могут хранить в себе данные по определению. Для хранения данных авторизации обычно используются сессии

  Ответить  
 
 автор: deimand   (01.11.2010 в 00:01)   письмо автору
 
   для: zuldd   (31.10.2010 в 20:53)
 

хотя может я и не прав...

  Ответить  
 
 автор: sl1p   (31.10.2010 в 23:40)   письмо автору
 
   для: neokortex   (30.10.2010 в 02:15)
 

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

  Ответить  
 
 автор: psychomc   (01.11.2010 в 00:52)   письмо автору
 
   для: sl1p   (31.10.2010 в 23:40)
 

при каждом обновлении страницы искать пользователя в базе, чтобы проверить залогинится он или нет? странноватый способ...

  Ответить  
 
 автор: sl1p   (01.11.2010 в 02:50)   письмо автору
 
   для: psychomc   (01.11.2010 в 00:52)
 

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

  Ответить  
 
 автор: Гость   (01.11.2010 в 05:21)   письмо автору
 
   для: sl1p   (01.11.2010 в 02:50)
 

Пишем в сессию все необходимые данные о имени, логине, и прочем. В крайнем случае туда пихаем сериализованный объект.

  Ответить  
 
 автор: psychomc   (01.11.2010 в 10:42)   письмо автору
 
   для: sl1p   (01.11.2010 в 02:50)
 

а одной сессии разве недостаточно?

  Ответить  
 
 автор: Trianon   (01.11.2010 в 08:02)   письмо автору
 
   для: psychomc   (01.11.2010 в 00:52)
 

По Вашему, лучше на каждом обновлении страницы в файл лазать?

  Ответить  
 
 автор: psychomc   (01.11.2010 в 10:42)   письмо автору
 
   для: Trianon   (01.11.2010 в 08:02)
 

тут мы лазим и в файл и в базу. неужели файла недостаточно?

  Ответить  
 
 автор: Trianon   (01.11.2010 в 19:39)   письмо автору
 
   для: psychomc   (01.11.2010 в 10:42)
 

не буду говорить, почему в БД обращаться нужно так или иначе.
про аутентификацию, и должные credentials этого процесса писал тут не один раз.

  Ответить  
 
 автор: psychomc   (01.11.2010 в 20:33)   письмо автору
 
   для: Trianon   (01.11.2010 в 19:39)
 

дайте плиз ссылку на тему, в которой вы обосновываете правильность подхода, использующего для аутентификации sid, хранящийся в бд

  Ответить  
 
 автор: Trianon   (01.11.2010 в 21:04)   письмо автору
 
   для: psychomc   (01.11.2010 в 20:33)
 

чтоб я где-то предлагал sid применять для аутентификации?!
Свят свят.
В том и дело, что при сессионной организации аутентификации в роли оного применяется именно sid.

  Ответить  
 
 автор: psychomc   (01.11.2010 в 21:54)   письмо автору
 
   для: Trianon   (01.11.2010 в 21:04)
 

меня интересует в данном вопросе какбэ то, от чего спасает база данных...
а точнее, почему не достаточно от перехвата сессии сформировать для пользователя какой-нибудь уникальный ключ в сессии, например ip + браузер, и потом уже сверять тот ли это пользователь с помощью этого ключа в сессии и того что выдает $_SERVER..

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования