Авторизация на сайтах на PHP. Про cookie простым языком.

Привет, друзья.

Как и было обещано в последнем «О насущном», представляю вам статью про авторизацию на сайтах методом куков (cookie), разумеется обо всём на PHP, не на питоне же мы сайты делаем :D

И сразу скажу, ежели вам нужно прям ооочень досконально изучить тему — вперёд в интернет, статей полно, niceseo же отличается тем, что вещает только самое важное и простым языком.

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

Затем, вы переходите на другую страницу сайта. Браузер сверяет, есть ли куки для данного сайта, и отправляет их в заголовке запроса. Ну и там уже сервер их обрабатывает, делает вывод, что вы залогинены и строит страницу исходя из этого.

Как выглядят значения cookie можно посмотреть легко в браузере, например в Опере это «Настройки -> Общие настройки -> Расширенные -> Cookies -> Управление Cookies»


Теперь чуть поподробней. Авторизация.

Мы заполняем форму с логином и паролем, ну вводим их, нажимаем «Войти». Форма у нас простая, вот такая:

Браузер начинает переходить на другую страницу. А в это время передаёт введённые значения логина (niceseousername) и пароля (niceseopassword) странице login.php.

login.php принимает эти значения, сверяет их с базой и, ежели всё верно, отправляет браузеру куки. Вот код простейшего login.php (пока без сверки с базой, просто установка куков):

В первой строке мы устанавливаем в браузер кук id, равный значению, введённому в форму в поле «Имя:».

Во второй также устанавливаем кук ps, равный md5-хэшу введённого в форму пароля.

В третьей мы редиректим страницу обратно, откуда пришли. То есть автоматически уходим с login.php на предыдущую страницу, ведь куки мы оставили.

Ура, мы авторизовались, и в нашем браузере появились следующие куки (скрин из Оперы):


Теперь, опознание.

В предыдущем шаге мы установили куки и перешли обратно на страницу с контентом.

Подкорректируем теперь нашу форму, чтобы не всегда показывалось так:

А, если куки верны, то так:

Код следующий:

 

О боже, сколько кода! :D

Тсс, всё тут просто, ща обьясню.

В первой строке сервер узнает, есть ли ваще куки. И если нет, то выводит обычную форму (строка 2).

А если куки имеются, то:

  1. Обращается к базе users, с полями id и passmd5, с целью узнать, есть ли такая запись.
  2. Если нету, ты выводит «Логин и пароль неверны!»
  3. А если есть, то выводим заветные «Привет, niceseo! [Выход]».

Всё. Проверка куки и подстановка нужного html-кода сделана!


Осталось разобрать нам один последний пунктик. Logout (кнопка [Выход]).

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

Поэтому всё вообще тоже самое, только страница logout.php выглядит следующим образом:

3 простые строчки — удаляем кук id, удаляем кук ps, переходим на предыдущую страницу.

Ура, мы вышли с сайта :)


Да, это всё! Разобравшись в данном материале, вы без проблем создадите у себя на сайте авторизацию.

И да, несмотря на то, что всё было упрощено до минимала, статья всё равно получилась какая-то большая, так что если что непонятно — пишите в каменты, не стесняйтесь.

А тема данной статьи взята вообще не с потолка, а предложил её Cerga, в чём очень рад ему помочь, надеюсь разберется))

Ну и вы уже, думаю, поняли, что ежели что в сео/пхп/джумле и прочем сопутствующем непонятно, мы с радостью напишем для вас статью, только попросите ;)

Cookie — это ведь так удобно
ДействительноСложно

Оцените статью!

5 (100%) всего голосов: 1

Понравилась статья? Поделиться с друзьями:
Комментариев: 5
  1. Ivanov Sergey

    Спасибо :) Промучался тогда, но все таки сделал. Оказалось не столь сложно, правда шифрование пароля у меня немного другим способом :) новичкам хочу подсказать, чтобы не забывали делать проверки на данные, которые вводятся в форму ;)

  2. ЮРЕЦ

    слишком примитивно. никакой защиты. не делайте так никто

    1. linur

      да, задача была именно как можно проще показать, как это работает. Дописать защиту — уже следующий этап, выходящий за рамки данной статьи.

  3. Кирилл Грипич

    Не совсем все понимаю,нам надо,по идее еще и БД,получается,создать?
    А вот этим пхп кодом с условием if надо заменить полностью все форму,да?

    1. Константин Ширенков

      А как совместит куки и сессию на одной странице?

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Для отправки сообщения выберите лишнее изображение