NiceSEO’s VKontakte Crossposter

Бесплатный плагин для Wordpress для автоматического кросспостинга в паблик ВКонтакте

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

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

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

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

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

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

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

———————————————————————————————

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

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

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

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

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

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

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

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

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

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

———————————————————————————————

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

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

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

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

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

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

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

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

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

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

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

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

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

———————————————————————————————

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

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

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

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

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

——————————————————————————————

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

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

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

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

Статью подготовил linur, Специально для NiceSEO.ru, 21 января 2012 года. При копировании не забывайте о ссылке на источник.
Я также состою в:
Лучшая веб-студия!
Яндекс.Метрика
© 2011-2018 NiceSeo.ru