Как сделать авторизацию на сайте Вконтакте

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
html lang=»ru»> head> title>Авторизация на PHPtitle> head> $expectedUsername = ‘admin’; $expectedPassword = ‘test’; $username = $_POST[‘username’]; $password = $_POST[‘password’]; $result = »; if (isset($_POST[«submit»])) < if ($username === $expectedUsername $password === $expectedPassword) < $result = «Логин и пароль верные»; > else < $result = «Неаправильные Логин или/и пароль»; > > ?> body> div id=»login-wrapper»> h1>Введите Имя пользователя и парольh1> form action=»» method=»post»> p> label for=»username»>Логин: label> input type=»text» name=»username» id=»username» required=»required» value=»= $username; ?>»/> p> p> label for=»password»>Пароль: label> input type=»text» name=»password» id=»password» required=»required» value=»= $password; ?>»/> p> p>= $result ?>p> input type=»submit» name=»submit» value=»Войти»/> form> div> body> html>

Источник: dropcode.ru

Вебинар: «Авторизация на своем сайте через VK API»

Как сделать регистрацию и авторизацию пользователей на сайте

Как сделать регистрацию и авторизацию пользователей на сайте

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

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

Первым делом, если Вы хотите сделать регистрацию у себя на сайте, то необходимо понимать, где будут храниться данные о пользователях. Можно хранить в обычном текстовом файле, в XML-файле, либо в базе данных. Первые два варианта — очень опасные, поэтому не рекомендую Вам ими пользоваться. А вот третий вариант — хранение информации о пользователях в базе данных — самый популярный, и именно этим способом хранения информации я советую Вам пользоваться.

С местом хранения определились. Теперь перейдём непосредственно к алгоритму авторизации:

  1. Создать форму регистрации на HTML.
  2. Получить данные из формы в скрипте-обработчике.
  3. Проверить полученные данные, и если они некорректны, то сделать редирект обратно на форму регистрации.
  4. Если данные корректны, то записать их в базу данных.

Вот и весь процесс регистрации пользователя на сайте. То есть регистрация — это сохранение информации о пользователе на сайте.

PHP Web авторизация VK API

Дальнейшим пунктом является авторизация пользователя на сайте, однако, прежде чем к нему переходить, расскажу об одном важном моменте в форме регистрации — пароле. Я Вам настоятельно рекомендую не хранить пароли в открытом виде (например так, «123456»). Обязательно их шифруйте, хотя бы с помощью функции md5(). И в базе данных храните именно зашифрованный пароль.

Теперь авторизация. Первое, что Вы должны понять — это то, что информация об авторизации должна где-то храниться. Самый простой вариант — это хранение информации в сессии (или в cookie). А теперь алгоритм:

  1. Создать форму авторизации пользователя на HTML, куда пользователь должен будет ввести свой логин и пароль.
  2. В скрипте-обработчике принять данные от пользователя. Если Вы меня послушались, и храните шифрованные пароли в базе данных, то сначала шифруйте полученный пароль. Если же в базе данных лежат открытые пароли, то шифровать не надо.
  3. Проверить правильность введённых данных, и если логин и пароль совпадают с существующим пользователем в базе данных, то записываете в cookie или сессию информацию с логином и шифрованным паролем (либо открытым паролем, если Вы его не шифровали).
  4. Если логин и/или пароль введены неверно, то делать редирект обратно на форму авторизации.
Еще по теме:  Где найти пиньяту Вконтакте

Теперь у Вас есть необходимая информация об авторизации пользователя, которая хранится в его cookie или на сервере (если сессия). Фактически, теперь Вам нужно эту информацию проверять на каждой странице сайта и сверять её аналогично проверке формы авторизации. То есть считываете из cookie (сессии) логин и пароль, и проверяете его. Если они верные, то показываете одну страницу (для зарегистрированных пользователей), а если неверные, то показываете другую страницу (для гостей).

И последнее. Как делается кнопка «Выход»? Очень просто. При нажатии на эту кнопку, стираются cookie, либо сессия. Таким образом, пользователь автоматически вылетает с сайта.

Как видите, всё элементарно, но при реализации этого алгоритма у Вас обязательно возникнет множество вопросов. Например, что делать при регистрации пользователя, логин которого уже имеется в базе данных. Реализация различных проверок входных данных, реализация проверки существования e-mail и прочее — всё это является достаточно сложным, если Вы делаете это в первый раз. Однако, самый сок я выдал. Если будут вопросы при реализации, то спрашивайте либо на форуме, либо в комментариях.

В данной статье я привёл лишь алгоритм, а чтобы научиться его реализовывать нужно знать PHP и MySQL, которые максимально подробно разобраны в этом обучающем курсе: http://srs.myrusakov.ru/php

Создано 05.05.2011 13:05:46

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

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

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 114 ):

    Adrenalin 15.10.2011 02:21:09

    Респект и Уважуха тебе Михаил! Хочу задать два вопроса: — долго ли Ты обучался всему этому; — как сделать авторизацию пользователей как В Контакте (всмысле каждому пользователю разные страницы)? Твой постоянный читатель с Украины!

    Admin 15.10.2011 13:10:06

    Обучаться созданию авторизации не нужно. Нужно обучаться PHP и MySQL. Для этого мне потребовалось 2-3 месяца, а после пошло уже совершенствование, которое происходит и сейчас.

    Adrenalin 07.11.2011 21:37:30

    А в денвере (Denwer) нельзя создавать скрипты или страницы так, чтобы в одном окне код, а в другом результат? Общем как в html-редакторе.

    Admin 07.11.2011 21:39:55

    Нет, поскольку Denwer — это не редактор, а пакет сервера apache, интерпретатора php, mysql, phpmyadmin и так далее, но никак не html-редактор.

    Еще по теме:  Как перенести треки из Вконтакте в Яндекс музыку

    Adrenalin 07.11.2011 21:54:40

    Видел в нете редакторы php. Это то же самое что и html-редактор? Или они не будут показывать виполнение скриптов?

    Admin 07.11.2011 22:02:04

    Это примерно то же самое, что и HTML-редакторы, только для PHP. Результата выполнения они показывать не будут.

    Серый 21.10.2013 20:53:06

    Здравствуйте, Михаил! А возможно ли сделать регистрацию на сайте без PHP, то есть просто ссылка на какой нибудь сторонний ресурс, где можно хранить базу подписчиков??)

    Admin 21.10.2013 22:20:45

    Да, можно. Только тогда будет не регистрация, а просто авторизация через сторонний сервис. Например, такое позволяют Яндекс, Контакт и многие другие популярные сервисы.

    Серый 22.10.2013 07:23:05

    А, например, смартреспондер, джастклик, или это все не то?

    Admin 22.10.2013 11:53:34

    Это не для регистрации пользователей.

    Источник: myrusakov.ru

    Регистрация и авторизация

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

    Авторизация и дальнейшее пребывание пользователя на сайте происходит по следующей схеме:

    1. Пользователь вводит логин и пароль в форму авторизации и отправляет на сервер.
    2. На сервере проверяется, есть ли в базе данных пользователь с таким логином и паролем.
    3. Если пользователь найден, то информация об этом записывается в сессию или куки.
    4. На страницах сайта происходит проверка — есть ли в сессии данные о том, что пользователь авторизован и в зависимости от этого страница выводится в том или ином виде.

    В сессии можно не просто указать факт авторизации, но и записать какие-то данные пользователя для вывода их на страницу, например имя или ник. Решение о том, использовать сессии или куки принимается для каждого сайта отдельно. Если на сайте содержится важная информация, то лучше применять сессии, потому что узнать чужие регистрационные данные при этом намного сложнее.

    Формы авторизации и регистрации

    Форма авторизации обычно располагается на главной странице, либо она может быть на всех страницах сайта. Для формы регистрации, в основном, создаётся отдельная страница. Мы создадим всего одну страницу, на которой будут обе формы, и на неё же будут выводиться данные пользователя. Пока на ней будет только HTML код, но мы сразу сделаем PHP файл, потому что в дальнейшем это будет скрипт. Назовём его formreg.php. Код страницы будет такой:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Страница

    Авторизация:

    Регистрация:

    Регистрация

    Регистрационные данные пользователей мы будем записывать в таблицу users . Если у Вас ещё нет такой таблицы, то создайте её. В ней должны быть поля id , login и pas . Другие поля мы не будем использовать. Если они есть в таблице, то они будут оставаться пустыми.

    Форма авторизации отправляет данные в файл registration.php. Расположим его в той же папке, где находится страница. Код скрипта будет такой:

    $login=$_POST[‘login’]; $pas=$_POST[‘password’]; $db=mysqli_connect(‘localhost’, ‘root’, », ‘mybase’); $query=»INSERT INTO users (login, pas) VALUES (‘$login’, ‘$pas’)»; $result=mysqli_query($db, $query); if ($result) header(«Location: formreg.php»); mysqli_close($db);

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

    Еще по теме:  Как изменить пароль в ВК если забыл старый пароль на телефоне

    Авторизация

    Форма авторизации запускает на сервере файл authorization.php. Этот скрипт принимает логин и прароль и проверяет, есть ли такой пользователь. Если есть, то логин будет записываться в сессию. Если такой пользователь не найден, то в сессию будет записываться информация об этом. Это нужно для того, чтобы страница, которая будет открыта после выполнения скрипта, получила эту информацию и вывела сообщение, что введён неправильный логин или пароль. Код скрипта такой:

    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    session_start(); $login=$_POST[‘login’]; $pas=$_POST[‘password’]; $db=mysqli_connect(‘localhost’, ‘root’, », ‘mybase’); $query=»SELECT * FROM users WHERE login=’$login’ AND BINARY pas=’$pas'»; $result=mysqli_query($db, $query); if (mysqli_num_rows($result)) $_SESSION[‘login’]=$login; else $_SESSION[‘login’]=’er login’; header(«Location: formreg.php»); mysqli_close($db);

    В строке 7 формируется запрос на выборку строки с логином и паролем, полученными из формы. Перед полем pas написано ключевое слово BINARY.

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

    После получения результата, проверяется, найдена ли указанная запись. Если запись есть, то логин записывается в сессию. Если пользователь не найден, то вместо логина пишется строка «er login». Можно написать другой текст, но нужно быть уверенным, что он не совпадёт с каким-то логином. Затем происходит возврат на страницу с формами.

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

    Открытие сессии должно производиться до вывода каких-либо данных, то есть, до HTML кода. Поэтому эта часть располагается в самом начале страницы. А остальной код находится внутри тэга , потому что он добавляет на страницу контнет. Добавим в начало страницы такую строку:

    Остальной скрипт расположим в теге , в его начале:

    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24

    Введён неправильный логин или пароль

    ‘; $_SESSION[‘login’]=»; > else echo «

    Здравствуйте, $login

    «; > else echo ‘

    Здравствуйте, гость

    ‘; ?>

    Если в сессии есть логин, но в нём содержится строка «er login», то выводится сообщение, что логин или пароль неправильный. После вывода сообщения логин становится пустым. Это сделано для того, чтобы сообщение выводилось только один раз и при переходе на другие страницы не появлялось. Если логин другой, значит пользователь авторизован и страница формируется как для зарегистрированных. Если логина нет, значит авторизации ещё не было и страница выводится для не зарегистрированных пользователей.

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...