Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Создание профиля пользователя
Форумы портала PHP.SU » » Вопросы новичков » Создание профиля пользователя

Страниц (3): [1] 2 3 »
 

1. etoYA - 27 Октября, 2011 - 09:32:11 - перейти к сообщению
В общем вопрос, как делается профиль пользователя? Я сейчас попробую написать как бы я это делал, а вы поправьте или исправьте.

При авторизации айд заносится в сессию, потом к примеру profile.php проводится выборка данных чете типо этой

PHP:
скопировать код в буфер обмена
  1. SELECT * FROM users WHERE id='{$_SESSION['id']}' LIMIT 1


Будет ли эта страница уникальна для каждого пользователя?
2. EuGen - 27 Октября, 2011 - 09:40:50 - перейти к сообщению
etoYA пишет:
Будет ли эта страница уникальна для каждого пользователя?

Будет.

Для страницы профиля как правило выбирают данные о пользователе из БД (не обязательно одной таблицы, так как некоторые данные могут быть и в других)
3. etoYA - 27 Октября, 2011 - 09:41:29 - перейти к сообщению
Ну это естественно. Спасибо.
4. salim - 27 Октября, 2011 - 12:13:12 - перейти к сообщению
etoYA, НЕ очень удачный метод определения пользователя...
я бы сказал, вобще не удачный
5. tuareg - 27 Октября, 2011 - 12:30:02 - перейти к сообщению
salim
А удачный это как?
6. salim - 27 Октября, 2011 - 13:46:46 - перейти к сообщению
Цитата:
как делается профиль пользователя?

Вы пользователей создаете по средствам SID ?
в данный момент мой SID = xxxxxxxxxxxxxxx
ОК. Делаем выбор
PHP:
скопировать код в буфер обмена
  1. $r = mysql_query("SELECT user_name, user_pwd FROM users WHERE sid='$SID' ");
  2. {
  3. // ну и тд...
  4. }


Закрываем браузер, снова открываем, и здесь уже мой SID = yyyyyyyyyyyyyyyy
Что вернет запрос, догадываетесь ?
PHP:
скопировать код в буфер обмена
  1. $r = mysql_query("SELECT user_name, user_pwd FROM users WHERE sid='$SID' ");
7. Мелкий - 27 Октября, 2011 - 13:51:24 - перейти к сообщению
salim пишет:
Что вернет запрос, догадываетесь ?

Пустой результат (0 строк). А PHP - E_NOTICE за обращение к неинициализированной переменной.

Но только если перед этим не было проверки на существование $_SESSION['id'].
8. salim - 27 Октября, 2011 - 14:20:15 - перейти к сообщению
Мелкий, совершенно верно.
Я просто пытаюсь донести до ТС, что создавать / проверять пользователей нужно по стандартным параметрам, пара логин / пароль...
только конечно если это не интернет магазин без регистрации
9. Мелкий - 27 Октября, 2011 - 14:35:18 - перейти к сообщению
salim, а я до вас пытаюсь довести, что $_SESSION['id'] не имеет абсолютно никакого отношения к ID сессии.
10. salim - 27 Октября, 2011 - 14:38:04 - перейти к сообщению
Мелкий, поясните (не ерничаю)
11. EuGen - 27 Октября, 2011 - 14:39:02 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. //init:
  2. $_SESSION['id']=$user_id;
12. Itan - 27 Октября, 2011 - 17:22:38 - перейти к сообщению
salim, в идентификатор сессии идет строка, которую можно подделать. Это называется SID. Он создается автоматически. Но можно задать свои значение для сессии, которые невозможно подделать без взлома сервера. Такие значения могут носить произвольные названия - id, control, abra_kadabrа и т.д. Поправьте, если ошибся.
13. etoYA - 27 Октября, 2011 - 19:26:19 - перейти к сообщению
Ну ведь вывод идется по айди пользователя в базе и поэтому не вижу смысла каждый раз проверять логин и пароль..... Или я не прав?
14. salim - 27 Октября, 2011 - 19:28:16 - перейти к сообщению
etoYA, если чесно я вобще запутался и в ваших требованиях, и в том что мне пояснили, идентификатор я себе представляю как user_id, но никак ни $_SESSION['id']
15. Itan - 27 Октября, 2011 - 19:29:37 - перейти к сообщению
Да все нормально. Юзер авторизуется - записывается его id в сессию, что позволяет ему перемещаться между скриптами "залогиненым". Потом, когда закрывается браузер, сессия на сервере автоматически удаляется. Именно поэтому при авторизации спрашивается "Запомнить меня" или нет. Если галочка есть, то к сессии добавляют куки. Если нету галочки, то работает просто одна сессия, без кук.

 

Powered by ExBB FM 1.0 RC1