Переключать пункты меню



Скрипт авторизации на 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 пользуется большая половина всех сайтов в сети. Так что на бытовом уровне метод достаточно востребованный.
 

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

Андрей    2018.03.07 07:39:28

Спасибо большое! Исправил пути в setcookie, все заработало)

Administrator:
Очень рад что помогло!
Заходи если что. Свернуть обратно
Спасибо большое! Исправил пути в setcookie, все заработало)

Administrator:
Очень рад что помогло!
Заходи если что.


Андрей    2018.03.06 18:30:24

Спасибо за скрипт! Только есть одна проблема, после отправки выводит что Все верно, сейчас будет перенаправление... и опять перекидывает на форму авторизации. В чем может быть проблема?

Administrator:
Обычно так происходит если не прописываются куки в память браузера.
Проверить что куки прописаны можно проверив логины и пароли в настройках браузера.
Или если вы настраиваете скрипт на локальном сервере просто
выведите нужные переменные на экран при помощи функции echo.

Так же, возможно в памяти браузера хранится несколько логинов
и паролей для одного домена(урл адреса). Тогда пароли могут не совпасть.

Проверьте папку в которой хранится скрипт. В данном примере он хранится
в папке /scripts/, для этой папки и прописываются куки. Если название папки
другое - скрипт работать не будет.

Свернуть обратно
Спасибо за скрипт! Только есть одна проблема, после отправки выводит что Все верно, сейчас будет перенаправление... и опять перекидывает на форму авторизации. В чем может Читать дальше...



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