Скрипт авторизации на php

Для того, чтобы все пользователи могли получить доступ к закрытым разделам вашего сайта, а это может все что угодно, например, бесплатные скрипты, различные видео-уроки, готовые шаблоны для фотошопа в формате PSD, фотографии высокого разрешения Full HD и многое другое. Все зависит от тематики вашего сайта и вашей фантазии.

На многих ресурсах, например, на хостингах авторизацию делают при помощи сессий. То есть все переменные помещают в суперглобальный массив $_SESSION. Есть много плюсов у данного способа авторизации, например, простота и достаточно высокий уровень безопасности. Но у данного способа есть и свои недостатки. Например, если закрыть браузер, то приходится вводить логин и пароль по новой. И к тому же многих хостингах существует ограничение по времени бездействия. Если в течении двадцати минут не производить никаких действий, то приходится заново делать авторизацию.
 

Не слишком удобно. Поэтому на большинстве сайтов авторизация производится методом записи данных пользователя в файлы cookie. По сути это простые текстовые файлы куда пишем реквизиты пользователя. Например, логин и пароль. Все данные хранятся в браузере пользователя.

Итак, рассмотрим простейший пример скрипта авторизации на php. Первый пример, это когда форма авторизации находится в любом месте вашего сайта. Посмотреть как все работает можно здесь. Для простоты вместо логина будем использовать email пользователя. Вот полный код файла:
 

В этом примере система авторизации помещена в одном файле. И при нажатии кнопки «Отправить», файл обращается к самому себе. А можно и разделить на два файла, тогда надо изменить имя файла в форме для тега action=””, а все что помещено между тегами <?php…?> поместить в другой файл.  

И очень важное замечание для новичков ни в коем случае не вздумайте выводить функцию setcookie где-нибудь в середине файла, после html тегов. Иначе выйдет ошибка и авторизация работать не будет. Сам постоянно допускал подобные ошибки. При этом теряется масса времени. Когда начнете писать скрипты авторизации вы все поймете 

 

 

 

Пользователь указывает логин и пароль и нажимает кнопку Отправить. При этом на сервере образуются несколько переменных. Чтобы скрипт понял, что это запускается скрипт авторизации, мы отправляем ему переменнную $_POST[`action`] со значением getlogin в начале файла скрипта. Затем проверяем значения всех полей, а именно: 

• Указан ли логин, если нет выводим ошибку;
• Правильно ли указан логин и есть ли такой логин в базе данных. Если такой логин есть идем дальше;
• Проверяем указан ли пароль, если нет выводим ошибку;
• Если указан пароль, преобразуем пароль в хеш код при помощи функции md5
• Затем по логину из базы данных берем hash пользователя и сравниваем hash указанный в форме авторизации. Если хеши не совпадают выводим ошибку и прекращаем работу скрипта;
• Сравняли хеши и они совпали. Прекрасно! Значит это свой человек и пишем в cookie логин и пароль. Это делается при помощи функции setcookie. Имя для логина mail, а значение берем из переменной $login.Для пароля имя pass, а значение переменной получаем из $user_password или $password это уже на ваше усмотрение, потому что оба пароля верные;
 

Хотя, при рассмотрении всех нюансов работы скрипта прошло более нескольких минут, на самом деле это происходит на сервере в течении нескольких микросекунд.

Теперь рассмотрим другой пример. Когда форма ввода логина и пароля выплывает поверх всего сайта. Пример вы можете посмотреть здесь.

 

Важное замечание!

На будущее, для соблюдения безопасности рекомендуется пользоваться другими способами шифрования пароля. Например, в системах безопасности платежной системы cуществуют более изощренные способы шифрования чем md5. Позже мы их рассмотрим. А здесь рассмотрен простейший пример для начинающих программистов. Хотя надо заметить методом шифрования md5 пользуется большая половина всех сайтов в сети. Так что на бытовом уровне метод достаточно востребованный.
 

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


( ! ) Ф.И.О.
( ! ) Текст сообщения: (Не больше 5000 знаков)

( ! )Введите текст с картинки :
Обновить код
Положительный отзыв Положительный отзыв
Отрицательный отзыв Отрицательный отзыв



Коллекция скриптов и модулей   © 2017