Php скрипт регистрации и авторизации

Безопасная система авторизации и регистрации является одним из важнейших элементов при создании проекта с нуля. Один из возможных способов — это создание системы регистрации с помощью PHP и MySQL .

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

Эта статья расскажет о том, как создать простую версию системы авторизации и регистрации пользователей с использованием PHP и MySQL для начинающих. Давайте начнем!

Ресурсы, необходимые для работы с этим руководством:

  • Xampp ( PHP версии 5.3 или более поздней и MySQL версии 4.1.3 или более поздней );
  • Базовые знания по PHP , HTML и CSS ;
  • Время и терпение.

Что мы создаем


Скачать ZIP-архив

Настройка сервера

Вы можете использовать любой хостинг с поддержкой PHP и MySQL ( только убедитесь, что он поддерживает PHP версии 5.3 или более поздней и MySQL версии 4.1.3 или более поздней ).

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

Шаг 1 – MySQL

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

Взгляните на приведенный ниже код SQL :

Обратите внимание, что все данные представляют собой varchar , и даже пароль позже будет преобразован в символ md5 , чтобы обеспечить его безопасность.

Кроме того, используйте auto_increment для автоматического назначения идентификаторов или номеров пользователям, которые будут регистрироваться в системе.

Теперь, когда таблица создана, нужно задать разметку и стили CSS , а затем PHP -код.

Шаг 2 — Разметка

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

Сначала создайте файл login.php . Скопируйте в него приведенный ниже код:

С помощью этого кода вы получите результат, который показан на рисунке ниже:


Далее, создаем файл register.php . Скопируйте и вставьте в него приведенный ниже код:

С помощью этого кода вы получите следующий результат:


Далее, создаем файл intropage.php . Он будет служить в качестве страницы приветствия после того, как пользователь успешно авторизовался в системе:

Этот код даст нам следующий результат:

Шаг 3 — CSS

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

К этому времени, вы уже должны получить тот же результат, что и на изображении, приведенном в начале статьи.

Шаг 4 — Многоразово используемые элементы

Теперь, когда у вас готовы разметка и стили CSS , попробуйте задействовать такие многоразово используемые элементы, как раздел заголовка и раздел подвала. В корневой папке создайте новую папку и назовите ее “ includes “.

В ней будут содержаться все включаемые файлы. Затем в папке includes создайте новый файл и назовите его header.php . Скопируйте часть раздела заголовка в каждый из трех PHP -файлов, созданных нами ранее. Таким образом, у вас получится:

Следующее, что вам нужно сделать, это удалить разметку, скопированную из файла header.php во всех трех PHP -файлах и заменить ее следующим PHP -кодом:

Теперь, сделайте то же самое с подвалом. Скопируйте приведенный ниже код и вставьте его в новый файл footer.php . Он будет включать в себя раздел подвала:

Читайте также:  Win pe compact by xemom1

Затем снова удалите эту часть во всех трех файлах PHP и замените ее следующим кодом:

Шаг — 5 Подключение к базе данных

Теперь, когда вы включили файлы разделов заголовка и подвала, пора создать новый включаемый файл. Назовите его constants.php и скопируйте в него следующий код:

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

Далее, в папке includes создайте новый файл и назовите ее connection.php . В нем будут храниться коды подключения к базе данных. Скопируйте и вставьте в него код, приведенный ниже:

Обратите внимание, что вам обязательно требуется файл constants.php . Если при подключении возникнет ошибка, с его помощью будет остановлено выполнение скрипта и выдано сообщение об ошибке.

Включите файл connection.php в файлах login.php и register.php , так как эти два файла необходимы для кода управления подключением. Скопируйте приведенный ниже код и вставьте его перед включением файла header.php :

Шаг — 6 Конфигурация файла register.php

Теперь необходимо преобразовать форму регистрации в полноценную систему регистрации. Чтобы сделать это, нужно добавить включение еще нескольких файлов PHP после включения header.php . Скопируйте и вставьте приведенный ниже код в файл register.php :

В приведенном выше коде, обратите внимание, что перед добавлением данных в базу производится их валидация. Переменная message используется для хранения сообщения об ошибках или об успешном выполнении действия.

Шаг — 6 Конфигурация файла login.php

Теперь, когда пользователи могут регистрироваться на сайте, необходимо создать систему авторизации. С помощью этого очень простого PHP -кода, вы можете включить систему авторизации. Скопируйте код и вставьте его перед разметкой в файл login.php :

В приведенном выше коде, перед перенаправлением пользователя на страницу intropage.php , которую мы добавим чуть позже, вы в первую очередь должны проверить, была ли установлена сессия .

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

Шаг — 7 Конфигурация файла intropage.php

Мы установили все, что нужно для файлов register.php и login.php . Теперь вы просто должны обеспечить, чтобы пользователь оставался в системе при перенаправлении на страницу intropage.php . Скопируйте и вставьте приведенный ниже код в файл intropage.php :

Обратите внимание, что оператор if был создан для проверки, установлена ли сессия, и в зависимости от этого должен ли пользователь перенаправляться на страницу login.php или остаться на странице intropage.php .

Шаг — 8 Конфигурация файла logout.php

Наконец, чтобы пользователь мог выйти из системы, нужно удалить сессию с помощью session_destroy .

Скопируйте данный код в файл logout.php :

Заключение

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

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

Надеюсь, вам понравилась эта статья. Увидимся в следующий раз!

Данная публикация представляет собой перевод статьи « How to Create a Login and Registration System Using PHP and MySQL » , подготовленной дружной командой проекта Интернет-технологии.ру

Сегодня рассмотрим вариант скрипта регистрации и авторизации на вашем сайте. Поскольку систему авторизации мы уже подробно разобрали. А посмотреть и тем более скачать уже готовые рабочие скрипты вы можете на этой странице. То сейчас мы подробно и досконально разберем систему регистрации на вашем сайте.

Для чего нужна регистрация на сайте?

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

Читайте также:  Чем отличается партнер от дилера

Итак, начнем. Рассмотрим прежде всего регистрацию для быстрой и простой регистрации пользователей. А именно пусть пользователь вводит только email, пароль и проверочную капчу. Капча нужна для защиты от ненужных и вездесущих спам-ботов. Помню лет пять назад у меня был сайт с простейшей регистрацией. Пользователи указывали только имя логин и пароль. Капчи не было. В результате, сайт был атакован и заспамлен простейшим скриптом парсером, который за час произвел регистрацию нескольких тысяч спам пользователей. Пришлось установить защиту с капчей.

Скрипт регистрации сделаем по технологии ajax. Пусть это вас не пугает. Зато скрипт работает быстрее и без перезагрузки страницы.

Вот пример формы ввода :

Вверху формы мы указали три файла jQuery расширение файлов: javascript. Также указали графический файл login.gif. При не работающем скрипте (кнопка еще не нажата) gif файл login.gif имеет атрибут display: none. То есть файл не виден на странице. Как только пользователь нажимает кнопку регистрация, файл login.gif меняет свой атрибут на видимый. Данная фишка нужна для того чтобы на момент включения скрипта графический файл уже будет загружен на странице и пользователь сразу увидит после нажатия кнопки, индикатор загрузки.

А теперь расмотрим файл обработчик данных поступающих с формы регистрации:

Вверху обработчика мы сразу включаем сессию при помощи функции session_start(); Эта функция предназначена для передачи переменных капчи которые генерируются случайным образом. Проверочный код настроен на вывод двух или трех знаков. Хотя количество выводимых знаков вы можете менять сами вплоть до 12 знаков. Но чрезмерное увеличение знаков капчи может привести к тому что клиент не захочет проходить регистрацию. Где вы будете их прописывать чуть ниже.

Сам скрипт проверяет наличие переменной $_POST[`action`] который равен значению "save". Наличие этих данных говорит скрипту на запуск работы и пора проверять поступившие данные. Вначале проверяем логин на количество знаков их должно быть не больше двенадцати. Вы можете самостоятельно изменить это количество в строке 39 (Это вы можете увидеть если откроете файл в редакторе PSPaD).

Затем проверяем каким шрифтом указан логин. Если указаны кириллические символы выводим ошибку и останавливаем работу скрипта.

Затем проверяем пароль и повтор пароля. Если пароли не совпадают — останавливаем скрипт и выводим ошибку. Проверяем пароль на количество знаков. В начальном варианте настроено на минимальное количество 4 максимальное 16. Вы самостоятельно можете изменить настройки по количеству знаков в строке сорок семь.

Затем проверяем правильно ли указаны знаки который сгенерирован скриптом капча. Для этого сравниваем переменную $_POST[`keystring`] и переменную $_SESSION[`captcha_keystring`]. Эти два переменных должны быть равны иначе выводим ошибку и останавливаем скрипт. Чтобы при сравнении двух переменных не учиывать регистр знаков (большие или маленькие буквы) мы обрабатываем оба переменных при помощи функции strtolower. Эта функция переводит все значения, указанные рядом в скобках в нижний регистр. Проще говоря переводит все знаки из заглавных в маленькие буквы.

Как и обещал припишем количество выводимых знаков капчи. Это строка 9. Меняем цифры, например 6, 8. Тогда будет указано шесть или восемь знаков. Это выбираете вы сами лично. Кроме того можно задать ширину и высоту поля для отображения капчи. Все это прописываете в файле kcaptcha_config.php

Затем проверяем логин — есть ли такой логин в базе данных или нет. Если есть выводим ошибку и останавливаем скрипт.

Чуть выше стоят функции для проверки e-mail. Первая проверяеет правильно ли написан адрес e-mail. А вторая проверяеет наличие такого же адреса email в базе данных.

Если все указано верно то пишем все данные в базу данных. И выводим сообщение что все сделано верно. В нашем варианте выводим сообщение и ссылку на страницу авторизации.

Читайте также:  Как на телевизоре шарп настроить цифровые каналы

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

А процесс верификации или активации состоит в том что на указанный при регистрации адрес email отправляется письмо со ссылкой внутри письма. Клиент который прошел регистрацию получает данное письмо открывает и проходит по ссылке. Ссылка обычно переводит статус в базе данных на активный. Данную функцию мы подробно рассмотрели и разобрали на этой странице.

P.S. Чуть не забыл, если вам кажется что скрипт содержит слишком много файлов, для многих начинающих программистов это сложновато. Есть вариант сделать ту же регистрацию, но собранную на одном файле register.php. Переходите по ссылке и получите готовый скрипт.

Возможно вас заинтересуют другие статьи

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

Tronkhame 2017.12.01 00:30:32

Проверяйте, что заливаете. Уже второй скрипт регистрации скачиваю, не работают. В коде есть main.js , в файлах его нет и тп.

Administrator: Проверил что залил. Все прекрасно работает. Скорей всего ошибка где-то у вас. Возможно вы перепутали пути к файлам. Если вы поставили скрипт на свой сайт, то пропишите свои пути к файлам.
Например, в файле reg.php строка 6:
$sha=$sh."scripts/pro/";
Переменная $sh это ваш сайт, а /scripts/pro/ это папки где находятся файлы скрипта. Замените их на свои.

Файл main.js это проверочный код от сервиса касперского, о том что сайт не содержит вирусов. Он не играет никакой роли в работе скрипта
Свернуть обратно Проверяйте, что заливаете. Уже второй скрипт регистрации скачиваю, не работают. В коде есть main.js , в файлах его нет и тп.

Administrator: Проверил что Читать дальше.

Доброго времени суток друзья! Давай с Вами рассмотрим регистрацию пользователей на PHP. Для начала давайте определим условия для нашей регистрации пользователей:

  • Пароль шифруем при помощи алгоритма MD5
  • Пароль будем "солить"
  • Проверка на занятость Логина
  • Активация пользователя письмом.
  • Запись и хранение данных в СУБД MySQL

Для написание данного скрипта нам нужно понять, что такое регистрация пользователя. Регистрация пользователя – это получения данных реального пользователя, обработка и хранение данных.

Если объяснять простыми словами то регистрация это всего лишь запись и хранение определенных данных по которым мы можем авторизировать пользователя в нашем случае – это Логин и Пароль.

Авторизация — предоставление определённому лицу или группе лиц прав на выполнение определённых действий, а также процесс проверки данных прав при попытке выполнения этих действий. Проше говоря с помощью авторизации мы можем разграничить доступ к тому или иному контенту на нашем сайте.

Рассмотрим структуру каталогов скриптов для реализации нашей регистрации с авторизацией. Нам нужно разбить скрипты на логические составляющие. Модули регистрации и авторизации мы поместив в отдельный каталог. Так же в отдельные каталоги мы поместим подключение к базе данных MySQL, файл с пользовательскими функциями, файл стилей CSS и наш шаблон HTML. Данная структура позволяет быстро ориентироваться в скриптах. Представьте себе, что у Вас большой сайт с кучей модулями и т.д. и если не будет порядка, то будет очень сложно что-то отыскать в таком бардаке.

Так как мы будем хранить все данные в СУБД MySQL, то давайте создадим не большую таблицу в которой будем хранить данные о регистрации.

Для начала нужно создать таблицу в базе данных. Таблицу назовем bez_reg где bez – это префикс таблицы, а reg название таблицы.