Безбожний auth registration php

05.10.2015 Ромчик

Доброго вам дня. У цій статті ми з прикладу розберемо реєстрацію користувача в . Потім активацію користувача шляхом підтвердження його email адреси. Ну і насамкінець, авторизацію користувача в . Але авторизація має відбуватися лише активних користувачів.

Перше, що ми зробимо, це створимо контролер і вид для реєстрації.

Створення форми реєстрації

Переходимо в директорію з шаблонами resources і створюємо піддиректорію auth. Тепер у папці auth створимо файл register.blade.php з наступним кодом:

Реєстрація

((--Помилки--)) @if ($errors->has()) ×
    @foreach($errors->all() as $error)
  • ((($ error)))
  • @endforeach
@endif (!! csrf_field()! Email Пароль Повторите пароль Отправить !}

Я не пояснюватиму код вище, тут і так все зрозуміло.

App/Http/Controllers/Auth/AuthController.php

Ми будемо лише перевизначати методи контролера AuthController.php. Так, для відображення форми реєстрації існує метод getRegister. Цей метод ми не чіпаємо.

Тепер перейдемо до роутів. Відкриваємо файл:

І визначимо роут до нашого методу:

Route::get("auth/register", "Auth\AuthController@getRegister");

Тепер відкриємо у браузері нашу програму. Добре, бачимо форму для реєстрації.

Реєстрація користувача в

Давайте одразу визначимо роут для реєстрації користувача. Перейдемо у файл:

App/Http/Controllers/routes.php

І додамо наступний роут:

Route::post("auth/register", "Auth\AuthController@postRegister");

Тепер створимо таблицю для зберігання користувачів. Міграція для цієї таблиці є, але вона нам не підходить. Змінимо її. Переходимо у файл:

Database/migrations/2014_10_12_create_users_table.php

І змінимо код:

У моєму випадку це виглядає так:

Зберігаємо bd.php.
Чудово! Ми маємо таблицю в базі, з'єднання до неї. Тепер можна приступати до створення сторінки, на якій користувачі залишатимуть свої дані.

3. Створюємо файл reg.php із змістом (усі коментарі всередині):



Реєстрація


Реєстрація


Ваш логін:




Ваш пароль:








4. Створюємо файл, який заноситиме дані в базу і зберігатиме користувача. save_user.php (коментарі всередині):

5. Тепер наші користувачі можуть реєструватися! Далі необхідно зробити "двері" для входу на сайт вже зареєстрованим користувачам. index.php (коментарі всередині):




Головна сторінка


Головна сторінка


Ваш логін:


Ваш пароль:






Зареєструватись



Ну от і все! Може урок і нудний, але дуже корисний. Тут показано лише ідею реєстрації, далі Ви можете вдосконалити її: додати захист, оформлення, поля з даними, завантаження аватарів, вихід з акаунту (для цього просто знищити змінні з сесії функцією unset) і так далі. Успіхів!

Все перевірив, чи працює справно!

У цій статті ви дізнаєтесь, як створити форму реєстрації та авторизації, використовуючи HTML, JavaScript, PHP та MySql. Такі форми використовуються майже на кожному сайті незалежно від його типу. Вони створюються і для форуму, і для інтернету магазину і для соціальних мереж (такі як Facebook, Twiter, Odnoklassniki) і для багатьох інших типів сайтів.

Якщо у Вас сайт на локальному комп'ютері, то я сподіваюся, що у Вас вже встановлено та запущено локальний сервер. Без нього нічого не працюватиме.

Створення таблиці в базі даних

Для того, щоб реалізувати реєстрацію користувачів, в першу чергу нам потрібна База даних. Якщо вона вже є, то чудово, інакше, Вам потрібно її створювати. У статті я докладно пояснюю, як зробити це.

І так, у нас є База Даних (скорочено БД), тепер нам потрібно створити таблицю usersв якій додаватимемо наших зареєстрованих користувачів.

Як створювати таблицю у БД, я також пояснив у статті . Перед тим як створити таблицю, нам необхідно визначити, які поля вона міститиме. Ці поля відповідатимуть полям із форми реєстрації.

Значить, подумали, представили, які поля будуть у нашої форми і створюємо таблицю usersз такими полями:

  • id- Ідентифікатор. Поле idмає бути у кожної таблиці з БД.
  • first_name- Для збереження імені.
  • last_name- Для збереження прізвища.
  • email- Для збереження поштової адреси. E-mail ми будемо використовувати як логін, тому це поле має бути унікальним, тобто мати індекс UNIQUE.
  • email_status- Поле для вказівки, чи підтверджено пошту чи ні. Якщо пошта підтверджена, воно матиме значення 1, інакше значення 0.
  • password- Для збереження пароля.


Якщо Ви хочете, щоб Ваша форма реєстрації мала ще якісь поля, Ви можете їх тут також додати.

Все, наша таблиця usersготова. Переходимо до наступного етапу.

Підключення до бази даних

Базу даних ми створили, тепер потрібно до неї підключитися. Підключення будемо здійснювати за допомогою PHP розширення MySQLi.

У папці нашого сайту створюємо файл з ім'ям dbconnect.php, і в ньому пишемо наступний скрипт:

Цей файл dbconnect.phpнеобхідно буде підключити до обробників форм.

Зверніть увагу на змінну $address_site, тут я вказав назву мого тестового сайту, над яким працюватиму. Ви відповідно вкажіть назву Вашого сайту.

Структура сайту

Тепер розберемося з HTML структурою нашого сайту.

Шапку та підвал сайту винесемо в окремі файли, header.phpі footer.php. Їх будемо підключати на всіх сторінках. А саме на головній (файл index.php), на сторінку з формою реєстрації (файл form_register.php) та на сторінку з формою авторизації (файл form_auth.php).

Блок із нашими посиланнями, реєстраціяі авторизація, додамо до шапки сайту, щоб вони відображалися на всіх сторінках. Одне посилання буде ввести на сторінку з формою реєстрації (файл form_register.php) а інша на сторінку з формою авторизації (файл form_auth.php).

Вміст файлу header.php:

Назва нашого сайту

Зрештою, головна сторінка, у нас виглядає так:


Звичайно, у Вас на сайті може бути зовсім інша структура, але це зараз для нас не важливо. Головне, щоб були посилання (кнопки) реєстрації та авторизації.

Тепер перейдемо до форми реєстрації. Як Ви вже зрозуміли, вона у нас знаходиться у файлі form_register.php.

Ідемо до Бази Даних (у phpMyAdmin), відкриваємо структуру таблиці usersі дивимось які поля нам потрібні. Отже, нам потрібні поля для введення імені та прізвища, поле для введення поштової адреси (Email) та поле для введення пароля. І ще з метою безпеки додамо поле для введення капчі.

На сервері, в результаті обробки форми реєстрації можуть виникнути різні помилки, через які користувач не зможе зареєструватися. Тому для того, щоб користувач розумів чому не проходить реєстрація, необхідно вивести йому повідомлення про ці помилки.

Перед виведенням форми додаємо блок для виведення повідомлень про помилки із сесії.

І ще момент, якщо користувач вже авторизований, і він заради інтересу заходить на сторінку реєстрації безпосередньо, написавши в адресний рядок браузера адреса сайту/form_register.php, то ми в цьому випадку замість форми реєстрації виведемо йому заголовок про те, що він вже зареєстрований.

Загалом код файлу form_register.phpу нас вийшов таким:

Ви вже зареєстровані

У браузері сторінка з формою реєстрації виглядає так:


За допомогою атрибуту required ми зробили всі поля обов'язковими до заповнення.

Зверніть увагу на код форми реєстрації де виводиться капча:


Ми маємо значення атрибута src для зображення, вказали шлях до файлу captcha.php, що генерує дану капчу.

Подивимося на код файлу captcha.php:

Код добре закоментований, тому я зупинюся лише на одному моменті.

Усередині функції imageTtfText(), вказано шлях до шрифту verdana.ttf. Так ось для коректної роботи капчі, ми маємо створити папку fonts, і помістити туди файл шрифту verdana.ttf. Його Ви можете знайти та скачати з інтернету, або взяти з архіву з матеріалами цієї статті.

З HTML структурою ми закінчили, настав час рухатися далі.

Перевірка email на валідність за допомогою jQuery

Будь-яка форма потребує перевірки на валідність введених даних як на стороні клієнта (за допомогою JavaScript, jQuery), так і на стороні сервера.

Особливу увагу ми повинні приділити полю Email. Дуже важливо, щоб введена поштова адреса була валідною.

Для даного поля input ми задали тип email (type="email"), це нас трошки застерігає від неправильних форматів. Але цього недостатньо, тому що через інспектор коду, якого надає нам браузер, можна легко змінити значення атрибуту typeз emailна text, і все, наша перевірка буде вже недійсною.


І в такому разі, ми маємо зробити більш надійну перевірку. Для цього скористаємося бібліотекою jQuery від JavaScript.

Для підключення бібліотеки jQuery у файлі header.phpміж тегами , перед закриває тега , додаємо цей рядок:

Відразу після цього рядка додамо код перевірки валідації email. Тут додамо код перевірки довжини введеного пароля. Його довжина має бути не менше 6 символів.

За допомогою цього скрипту ми перевіряємо введену поштову адресу на валідність. Якщо користувач ввів неправильний Email, ми виводимо йому помилку про це і дезактивуємо кнопку відправки форми. Якщо все добре, то ми прибираємо помилку та активуємо кнопку відправлення форми.

І так, із перевіркою форми на клієнтській частині ми закінчили. Тепер ми можемо відправити її на сервер, де також зробимо пару перевірок та додамо дані до БД.

Реєстрація користувача

Форму ми надсилаємо на обробку файлу register.phpчерез метод POST. Назва файлу обробника, вказано в значення атрибута action. А метод відправлення вказано у значення атрибуту метод.

Відкриваємо цей файл register.phpі перше, що нам потрібно зробити, це написати функцію запуску сесії та підключити створений нами раніше файл dbconnect.php(У цьому файлі ми зробили підключення до БД). І ще, відразу оголосимо осередки error_messagesі success_messagesу глобальному масиві сесії. У error_mesagesбудемо записувати всі повідомлення про помилки, що виникають при обробці форми, а в succes_messages, будемо записувати радісні повідомлення.

Перед тим, як продовжити, ми повинні перевірити, чи взагалі була відправлена ​​форма . Зловмисник може подивитися на значення атрибуту actionз форми, і дізнатися який файл займається обробкою цієї форми. І йому може спасти на думку перейти безпосередньо в цей файл, набираючи в адресному рядку браузера таку адресу: http://арес_сайту/register.php

Тому нам потрібно перевірити наявність осередку у глобальному масиві POST, ім'я якого відповідає імені нашої кнопки "Зареєструватися" з форми. Таким чином ми перевіряємо чи була натиснута кнопка "Зареєструватися" чи ні.

Якщо зловмисник спробує перейти безпосередньо до цього файлу, він отримує повідомлення про помилку. Нагадую, що змінна $address_site містить назву сайту і вона була оголошена у файлі dbconnect.php.

Значення капчі в сесії було додано під час її генерації, у файлі captcha.php. Для нагадування ще раз покажу цей шматок коду з файлу captcha.php, де додається значення капчі в сесію:

Тепер приступимо до самої перевірки. У файлі register.php, всередині блоку if, де перевіряємо, чи була натиснута кнопка "Зареєструватися", а точніше де вказано коментар " // (1) Місце для наступного шматка кодупишемо:

//Перевіряємо отриману капчу //Обрізаємо прогалини з початку та з кінця рядка $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha))( // Порівнюємо отримане значення зі значенням із сесії. if(($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // Якщо капча не вірна, то повертаємо користувача на сторінку реєстрації, і там виведемо йому повідомлення про помилку, що він ввів неправильну капчу. $error_message = "

Помилка! Ви ввели неправильну капчу

// Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] = $error_message; //Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); ."/form_register.php"); //Зупиняємо скрипт exit(); ) // (2) Місце для наступного шматка коду )else( //Якщо капча не передана або воно є порожнім exit("

Помилка! Відсутній код перевірки, тобто код капчі. Ви можете перейти на головну сторінку.

"); }

Далі нам потрібно обробляти отримані дані з масиву POST. Насамперед, нам потрібно перевірити вміст глобального масиву POST, тобто чи є там осередки, імена яких відповідають іменам полів input з нашої форми.

Якщо осередок існує, то обрізаємо прогалини з початку і з кінця рядка з цього осередку, інакше перенаправляємо користувача назад на сторінку з формою реєстрації.

Далі, після того як обрізали пробіли, додаємо рядок у змінну та перевіряємо цю змінну на порожнечу, якщо вона не є порожньою, то йдемо далі, інакше перенаправляємо користувача назад на сторінку з формою реєстрації.

Цей код вставляємо у вказане місце " // (2) Місце для наступного шматка коду".

/* Перевіряємо якщо в глобальному масиві $_POST існують дані відправлені з форми і укладаємо передані дані в звичайні змінні. = trim($_POST["first_name"]); // Перевіряємо змінну на порожнечу if(!empty($first_name))( // Для безпеки, перетворюємо спеціальні символи в HTML-сутності $first_name = htmlspecialchars($first_name, ENT_QUOTES) ; )else( // Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] .= "

Вкажіть Ваше ім'я

Немає поля з ім'ям

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Зупиняємо скрипт exit(); ) if( isset($_POST["last_name"]))( // Обрізаємо прогалини з початку і з кінця рядка $last_name = trim($_POST["last_name"]); if(!empty($last_name))( // Для безпеки , перетворимо спеціальні символи в HTML-сутності $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] .= "

Вкажіть Ваше прізвище

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Зупиняємо скрипт exit(); ) )else ( // Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] .= "

Немає поля з прізвищем

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Зупиняємо скрипт exit(); ) if( isset($_POST["email"]))( //Обрізаємо прогалини з початку і з кінця рядка $email = trim($_POST["email"]); if(!empty($email))( $email = htmlspecialchars ($email, ENT_QUOTES);// (3) Місце коду для перевірки формату поштової адреси та його унікальності )else( // Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] .= "

Вкажіть Ваш email

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Зупиняємо скрипт exit(); ) )else ( // Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] .= "

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Зупиняємо скрипт exit(); ) if( isset($_POST["password"]))( //Обрізаємо прогалини з початку і з кінця рядка $password = trim($_POST["password"]); if(!empty($password))( $password = htmlspecialchars ($password, ENT_QUOTES); //Шифруємо папроль $password = md5($password."top_secret"); )else( // Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] .= "

Вкажіть Ваш пароль

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Зупиняємо скрипт exit(); ) )else ( // Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] .= "

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Зупиняємо скрипт exit(); ) // (4) Місце для коду додавання користувача до БД

Особливу важливість має поле email. Ми повинні перевірити формат отриманої поштової адреси та її унікальність у БД. Тобто чи не зареєстрований вже якийсь користувач із такою самою поштовою адресою.

У вказаному місці // (3) Місце коду для перевірки формату поштової адреси та її унікальності" додаємо наступний код:

//Перевіряємо формат отриманої поштової адреси за допомогою регулярного вираження $reg_email = "/^**@(+(*+)*\.)++/i"; //Якщо формат отриманої поштової адреси не відповідає регулярному виразу if(!preg_match($reg_email, $email))( // Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] .= "

Ви ввели неправильний email

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Зупиняємо скрипт exit(); ) // Перевіряємо, чи немає вже такої адреси в БД $result_query = $mysqli->query("SELECT `email` FROM `users` WHERE `email`="".$email."""); //Якщо отриманих рядків рівно одиниці, значить користувач з такою поштовою адресою вже зареєстрований if($result_query->num_rows == 1)( //Якщо отриманий результат не дорівнює false if(($row = $result_query->fetch_assoc()) != false) ( // Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] .= "

Користувач із такою поштовою адресою вже зареєстрований

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); )else( // Зберігаємо в сесію повідомлення про помилку $_SESSION["error_messages"] .= "

Помилка у запиті до БД

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); ) /* закриття вибірки */ $result_query-> close(); //Зупиняємо скрипт exit(); ) /* закриття вибірки */ $result_query->close();

І так, ми закінчили з усіма перевірками, настав час додати користувача в БД. У вказаному місці // (4) Місце для коду додавання користувача до БД" додаємо наступний код:

//Запит на додавання користувача до БД $result_query_insert = $mysqli->query("INSERT INTO `users` (first_name, last_name, email, password) VALUES ("".$first_name."", "".$last_name." ", "".$email."", "".$password."")"); if(!$result_query_insert)( // Зберігаємо в сесію повідомлення про помилку. $_SESSION["error_messages"] .= "

Помилка запиту на додавання користувача до БД

// Повертаємо користувача на сторінку реєстрації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Зупиняємо скрипт exit(); )else( $_SESSION["success_messages"] = "

Реєстрація пройшла успішно!!!
Тепер Ви можете авторизуватися використовуючи Ваш логін та пароль.

// Відправляємо користувача на сторінку авторизації header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_auth.php"); ) /* Завершення запиту */ $result_query_insert-> close();// Закриваємо підключення до БД $mysqli->close();

Якщо у запиті на додавання користувача до БД виникла помилка, ми додаємо повідомлення про цю помилку в сесію та повертаємо користувача на сторінку реєстрації.

Інакше, якщо все пройшло добре, в сесію ми також додаємо повідомлення, але вже приємніша, а саме кажемо користувачеві, що реєстрація пройшла успішно. І перенаправляємо його вже на сторінку із формою авторизації.

Скрипт для перевірки формату поштової адреси та довжини пароля знаходиться у файлі header.phpТому він буде діяти і на поля з цієї форми.

Запуск сесії також відбувається у файлі header.phpтому у файлі form_auth.phpсесію запускати не потрібно, бо отримаємо помилку.


Як я вже сказав, скрипт перевірки формату поштової адреси та довжини пароля тут також діє. Тому якщо користувач введе неправильну поштову адресу або короткий пароль, він відразу ж отримає повідомлення про помилку. А кнопка Увійтистане не активною.

Після усунення помилок кнопка Увійтистає активною, і користувач зможе відправити форму на сервер, де вона оброблятиметься.

Авторизація користувача

У значення атрибуту actionу фори авторизації зазначений файл auth.phpЦе означає, що форма буде оброблятися саме в цьому файлі.

І так, відкриваємо файл auth.phpта пишемо код для обробки форми авторизації. Перше, що потрібно зробити це запустити сесію і підключити файл dbconnect.phpдля з'єднання з БД.

При натисканні на посилання виходу з сайту ми потрапляємо у файл logout.php, де просто знищуємо осередки з поштовою адресою та паролем із сесії. Після цього повертаємо користувача назад на ту сторінку, на якій було натиснуто посилання вихід.

Код файлу logout.php:

На цьому все. Тепер Ви знаєте як реалізувати та обробляти форми реєстрації та авторизації користувача на своєму сайті. Ці форми зустрічаються майже кожному сайті, тому кожен програміст повинен знати, як їх створювати.

Ще ми навчилися перевіряти дані, що вводяться, як на стороні клієнта (в браузері, за допомогою JavaScript, jQuery) так і на стороні сервера (за допомогою мови PHP). Також ми навчилися реалізувати процедуру виходу із сайту.

Усі скрипти перевірені та робітники. Архів з файлами цього маленького сайту Ви можете завантажити за цим посиланням.

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

При виникненні питань звертайтеся також, якщо ви помітили, якусь помилку в статті прошу вас, повідомте мені про це.

План уроку (Частина 5):

  • Створюємо HTML структуру для форми авторизації
  • Обробляємо отримані дані
  • Виводимо вітання користувача до шапки сайту
  • Сподобалася стаття?

    Вчимося робити просту аутентифікацію користувачів на сайті. На сайті можуть бути сторінки лише для авторизованих користувачів і вони будуть повноцінно функціонувати, якщо додати до них блок аутентифікації. Щоб створити його, потрібна база даних MySQL. Вона може мати 5 колонок (мінімум), а може і більше, якщо ви хочете додати інформацію про користувачів. Назвемо базу даних "Userauth".

    Створимо в ній такі поля: ID для підрахунку числа користувачів, UID для унікального ідентифікаційного номера користувача, Username для імені користувача, Email для адреси його електронної пошти та Password для пароля. Ви можете використовувати для авторизації користувача і вже наявну базу даних, тільки, як і у випадку з новою базою даних, створіть в ній наступну таблицю.

    Код MySQL

    CREATE TABLE `users` (`ID` int (11) NOT NULL AUTO_INCREMENT, `UID` int (11) NOT NULL, `Username` text NOT NULL, `Email` text NOT NULL, `Password` text NOT NULL, PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

    Тепер створимо файл "sql.php". Він відповідає за підключення до бази даних. Цей код, по-перше, створює змінні для сервера та користувача, коли він підключається до сервера. По-друге, він вибере базу даних, у разі "USERAUTH". Цей файл потрібно підключити до "log.php" і "reg.php" для доступу до бази даних.

    Код PHP

    Далі сторінка входу, хай вона називається "login.php". По-перше, вона перевіряє введені дані про наявність помилок. Сторінка має поля для імені користувача, пароля, кнопку надсилання та посилання для реєстрації. Коли користувач натисне кнопку «Вхід», форма буде оброблена кодом із файлу "log.php", а потім відбудеться вхід до системи.

    Код PHP

    форма входу

    Ім'я користувача
    Пароль
    Реєстрація

    Потім пишемо скрипт для входу до системи. Назвемо його "log.php". Він має функцію для очищення вхідних даних від ін'єкцій SQL, які можуть зіпсувати ваш скрипт. По-друге, він отримує дані форми та перевіряє їх на правильність. Якщо вхідні дані правильні, скрипт надсилає користувача на сторінку авторизованих користувачів, якщо ні – встановлює помилки та надсилає користувача на сторінку входу.

    Код PHP

    Зробимо сторінку реєстрації, назвемо її "register.php". Вона схожа на сторінку входу, тільки має на кілька полів більше, а замість посилання на реєстрацію – посилання на login.php на випадок, якщо користувач вже має обліковий запис.

    Код PHP

    Форма регістрації

    Ім'я користувача
    E-mail
    Пароль
    Повтор пароля
    У мене є обліковий запис

    Тепер зробимо скрипт реєстрації у файлі "reg.php". У нього буде включено "sql.php" для підключення до бази даних. Використовується та сама функція, що й у скрипті входу для очищення поля введення. Встановлюються змінні для помилок. Далі – функція створення унікального ідентифікатора, який ніколи раніше не надавалися. Потім витягуються дані з форми реєстрації та перевіряються. Відбувається перевірка, що адреса електронної пошти вказана у потрібному форматі, а також, чи правильно вказано пароль. Потім скрипт перевіряє, чи немає у базі даних користувача з таким самим ім'ям, і, якщо є, повідомляє про помилку. І, нарешті, код додає користувача до бази даних.

    Код PHP

    Ще потрібно зробити скрипт для виходу користувача із системи. Він припиняє сесію для користувача з цим унікальним ідентифікатором та ім'ям, а потім перенаправляє користувача на сторінку входу до системи.

    Код PHP

    І, нарешті, можна використовувати скрипт "auth.php", щоб зробити сторінки доступними тільки для авторизованих користувачів. Він перевіряє дані входу та, якщо вони вірні, дозволяє користувачеві переглядати сторінки, а якщо ні, просить авторизуватися. Крім того, якщо хтось спробує зламати сайт створивши одну із сесій, її буде перервано, як у загальному випадку.

    Код PHP

    Одна з умов у коді вище є предметом питання у .

    Наступний код потрібно вставити на сторінку для авторизованих користувачів, вона називається, наприклад, "member.php", а у Вас може називатися як завгодно.

    Код PHP

    Вам дозволено доступ до цієї сторінки. Вийти ( )

    Аутентифікація користувачів готова!

    Last modified on April 5th, 2018 by Vincy.

    User login and registration is a basic requirement для any CMS applications. Це є початкова робота при здійсненні проекту. Application with user login authentication provides security by preventing anonymous access. Вони є різними способами, щоб сприяти authentication в нашому застосуванні, щоб надавати OAuth login або здійснювати Single Sign-on (SSO) і подібні інші способи. У попередній літературі, ми маємо лише те, як реалізувати і навіть про .

    У ньому включаються як Login і registration functionalities. І ми використовуємо MySQL Database до Store registered members. User registration буде містити вхід до get the details from the user. На підставі цього формату, форма формату даних буде поставлена ​​в PHP і збережена в системі. User password will be encrypted before storing into database. before posting to the PHP code. When the user logged in with valid credentials, then the user and he will be allowed to proceed further.

    User Registration Form

    Цей code is to show the signup form to the user. Коли користувач застосовує форму з його details, JavaScript функції буде викликано validate user input. Після успішної validation, PHP code буде read posted form data to execute database insert.