PHP | Регистрация\вход, session и cookies?

Qest
На сайте с 21.10.2010
Offline
40
4790

Скажем есть сайт из 5 страниц, в зависимости от того залогинен ли пользователь или нет нужно либо скрывать либо показывать определенные блоки на каждой странице. Так вот если пользователь логинится на первой странице то идет проверка логина и пароля которые он ввел и если они есть в базе то пишуться кукис в его браузер, но если пользователь переходит на другую страницу то опять идет проверка на соответсвите логина и пароля уже записанных в кукис? Ибо если просто проверять есть ли кукисы, то пользователь может первый раз залогиниться, а потом взять и вручную изменить кукис, куда скажем еще заноситься id пользователя который используется при заносе данных в базу к примеру. Тоесть если я сначала залогинюсь, а потом вручную изменю id который записался кукис то получиться что я буду на сайте под видом другого пользователя. Можно конечно тот же id заносить в кукис в md5 например чтобы пользователь не смог изменить.

В случае с сессиями, у каждой сессии идентификационный номер, который тоже записывается в кукис, но даже если пользователь изменит этот номер в кукис то вероятность того что тот номер который он введет совпадет с другим номером сессии для другого пользователя мала, поэтому на первой странице при логине можно проверять логин и пароль введенные пользователем на соответствие с базой, а на последующих страницах просто проверять номер сессии из кукис пользователя на соответсвие такой сессии на сервере и если true тогда пользователь залогинен. Но если я не ошибаюсь сессия живет всего около 20 минут и если пользователь находиться больше 20 минут на сайте то ему нужно опять входить.

Объясните пожалуйста в общих чертах как правильно делать вход пользователя? И какой наиболее популярный метод чтобы знать что пользователь залогинен сессии или кукис или чтото еще есть?

IS
На сайте с 06.04.2012
Offline
0
#1
Qest:
Объясните пожалуйста в общих чертах как правильно делать вход пользователя? И какой наиболее популярный метод чтобы знать что пользователь залогинен сессии или кукис или чтото еще есть?

И не лень же было столько писать... Мазохист ?

Какой вариант больше нравится, тот и выбирайте.

R
На сайте с 06.02.2011
Offline
62
#2

Читайте, эксперементируйте

TO
На сайте с 21.09.2007
Offline
170
#3

RControl прав. Используйте сессии, они пишутся не в браузер, а на сервер, куда длинные руки пользователя не доберутся.

http://pyha.ru/articles/php/auth/

Qest
На сайте с 21.10.2010
Offline
40
#4

Тоесть при первом входе введенные логин и пароль проверяются по базе, если true создается сессия и на последующих страницах сначала проверяется есть ли такая сессия, если да то пользователь залогинен, если нет то проверяется опять по базе логин и пароль из кукис (так как может быть пользователь был на сайте больше чем срок сессии и она просто удалилась), если true то создается сессия и пользователь залогинен.?

Mik Foxi
На сайте с 02.03.2011
Offline
1076
#5

Юзер вводил логин и пароль, если авторизация прошла успешно - вешать 2 куки: логин и мд5(логин,пароль,соль,ip) , и дальше уже проверять у юзера из куки с логином мд5 ключ сверяя с базой где хранится база юзеров. и не нужно засорять сервер сессиями )

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ + партнерка, до 40$ с продажи.
Qest
На сайте с 21.10.2010
Offline
40
#6

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

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#7

Представьте, что у пользователя отключены кукисы. Ладно, если Ваш сайт для программистов к примеру... а если нет? Если к примеру он для домохозяек и при входе им вылезет "для авторизации включите COOKIE", какова будет их реакция? В настройке ПХП есть какая-то деректива, сейчас к сожалению не смогу посмотреть, которая позволяет даже при отключенных куках использовать сессии.

Подпись))
LEOnidUKG
На сайте с 25.11.2006
Offline
1727
#8
Милованов Ю.С:
Представьте, что у пользователя отключены кукисы. Ладно, если Ваш сайт для программистов к примеру... а если нет? Если к примеру он для домохозяек и при входе им вылезет "для авторизации включите COOKIE", какова будет их реакция? В настройке ПХП есть какая-то деректива, сейчас к сожалению не смогу посмотреть, которая позволяет даже при отключенных куках использовать сессии.

Количество людей у которых отключены куки/javascript насколько мало, что ими можно пренебречь.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
dkameleon
На сайте с 09.12.2005
Offline
386
#9
Qest:
. Но если я не ошибаюсь сессия живет всего около 20 минут и если пользователь находиться больше 20 минут на сайте то ему нужно опять входить.

20 минут неактивности. хотя, зависит от настроек.

может быть и так: пока открыто окно браузера - сессия жива.

Qest:
Тоесть при первом входе введенные логин и пароль проверяются по базе, если true создается сессия и на последующих страницах сначала проверяется есть ли такая сессия, если да то пользователь залогинен, если нет то проверяется опять по базе логин и пароль из кукис (так как может быть пользователь был на сайте больше чем срок сессии и она просто удалилась), если true то создается сессия и пользователь залогинен.?

не сессию сверяете - а переменную в сессии.

за саму сессию отвечает ПХП.

ваше дело при авторизации кинуть в сессию флажок и на всех страницах этот флажок проверять.

само собой если будет изменение в базе, то в сессии это не отобразится без релогина (например юзеру закрыли блок).

ПС. А ещё есть хттп-аутентификация. Ни куки ни сессии не засираются. держится до рестарта броузера. есть некоторые сложности с ней, но тоже имеет право на жизнь.

Дизайн интерьера (http://balabukha.com/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий