Створюємо кастомну форму реєстрації користувачів WordPress. Створюємо кастомну форму реєстрації користувачів на WordPress Додавання нових полів у форму реєстрації

Тут є приклад html code для student registration form. У цьому прикладі, ми повинні відтворювати багато текстових повідомлень, radio button, Reset button і Submit Form button. У нас буде використано Reset button що проміщає всі поля до бланк. Ми використовуємо JavaScript validation в student registration form.

Тут є приклад html code для student registration form. У цьому прикладі, ми повинні відтворювати багато текстових повідомлень, radio button, Reset button і Submit Form button. У нас буде використано Reset button що проміщає всі поля до бланк. Ми використовуємо JavaScript validation в student registration form. html code for student registration form

Тут є приклад html code для student registration form. У цьому прикладі, ми повинні відтворювати багато текстових повідомлень, radio button, Reset button і Submit Form button. У нас буде використано Reset button що проміщає всі поля до бланк. Ми використовуємо JavaScript validation в student registration form. Якщо ви не вводите значення в текстове поле, а не помилка повідомлення буде show. У цьому прикладі ми маємо введення в будь-яку сферу мандрівника, щоб забити, що виявляється, якщо один з них не є повноцінним. However, programmer може make adjustit it accordingly.

Коли всі сфери є повноцінно, submit form adds the data. Програміст може використовувати цю мету, як її/ненавмисне, її вони можуть передавати/відповісти на іншу сторінку або зберегти її в database.

Тут є відео літератури з "Як створювати школярство для перегляду форми в HTML?":

У цьому віці video instruction будуть викладені ви, як зробити html page for student registration і validate it with JavaScript. JavaScript використовується для validate HTML page in web applications. Ці дні Ajax і jQuery є також використані для створення dynamickих web applications.

StudentRegistration.html

Student Registration Form
Name
Father Name
Postal Address
Personal Address
Sex Male Female
City select.. NEW DELHI MUMBAI GOA PATNA
Course select.. B.TECH MCA MBA BCA
District select.. NALANDA UP GOA PATNA
State select.. NEW DELHI MUMBAI GOA BIHAR
PinCode
EmailId
DOB
MobileNo

Form Validation

Function validate() ( if(document.StudentRegistration.textnames.value == "") ( alert("Please provide your Name!"); document.StudentRegistration.textnames.focus() ; return false; ) if(document.StudentRegistration .fathername.value == "") ( alert("Please provide your Father Name!"); document.StudentRegistration.fathername.focus() ; return false; ) if(document.StudentRegistration.paddress.value == "") ( alert("Please provide your Postal Address!"); document.StudentRegistration.paddress.focus() ; return false; ) if(document.StudentRegistration.personaladdress.value == "") !"); document.StudentRegistration.personaladdress.focus() ; return false; ) if ((StudentRegistration.sex.checked == false) && (StudentRegistration.sex.checked == false)) ( alert ("Please choose your Gender : Male or Female"); return false; ) if(document.StudentRegistration.City.value == "-1") ( alert("Please provide your City!"); document.StudentRegistration.City.focus() ; return false; ) if(document.StudentRegistration.Course.value == "-1") ( alert("Please provide your Course!"); return false; ) if(document.StudentRegistration.District.value == "-1") ( alert("Please provide your Select District!"); return false; ) if(document.StudentRegistration.State.value == "-1") ( alert("Please provide your Select State!"); (document.StudentRegistration.pincode.value == "" || isNaN(document.StudentRegistration.pincode.value) || document.StudentRegistration.pincode.value.length != 6) ( alert(" ######."); document.StudentRegistration.pincode.focus() ; return false; ) var email = document.StudentRegistration.emailid.value; atpos = email.indexOf("@"); dotpos = email.lastIndexOf("."); if (email == "" || atpos

З цього туторіалу Ви дізнаєтесь, як внести зміни до сторінки реєстрації в Joomla 3.x.

Зміна назв полів реєстраційної форми

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

Щоб змінити поля реєстраційної форми, внесіть зміни до файлу en-GB.com_users.ini , розташованого в папці language/en-GB на вашому сервері. Використовуйте команду CTRL+F, щоб знайти текст, який Ви хочете змінити. Ви можете змінити назви полів у файлі en-GB.com_users.ini :

    Обов'язкові поля

    (Required field)

    Назва

    Ім'я користувача

  • Підтвердження пароля

    (Confirm Password)

    Адреса електронної пошти

    Підтвердження адреси електронної пошти

    (Confirm email Address)

    не обов'язково

Редагуйте файл en-GB.plg_user_profile.ini , розташований у папці administrator/language/en-GB на вашому сервері, щоб змінити наступні заголовки:

    Адреса 1 (Address 1)

    Адреса 2 (Address2)

    Місто (City)

    Регіон (Region)

    Країна

    Поштовий індекс (Postal/ZIP Code)

    Телефон (Phone)

    Сайт (Web site)

    Улюблена книга (Favourite Book)

    Про мене (About Me)

    Введена дата народження повинна мати формат Рік-Місяць-День, наприклад: 0000-00-00

    Дата народження (Date of Birth)

Щоб змінити назви кнопок «Зареєструватися» (Registration) та «Скасувати» (Cancel), редагуйте файл en-GB.ini з папки language/en-GB вашого сервера.

Видалення полів з форми реєстрації

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


Додавання нових полів у форму реєстрації

Щоб додати нові поля у форму реєстрації, необхідно вносити зміни як файли шаблону, і у базу даних. Вам необхідно внести такі зміни до бази даних:


Для того, щоб нове поле відображалося на вашому сайті, внесіть зміни до наступних файлів:

Змініть файл user.php з папки libraries/joomla/user . Знайдіть код поля, після якого має бути додане нове поле:

Public $name = null;

Додайте код для нового поля після цього коду:

Public $field_lable_here=null;

де field_name- Це назва вашого поля.

Також змініть файл users.xml з папки administrator/components/com_users/models/forms .

Знайдіть код поля, після якого буде виводиться поле, що додається:

Додайте код для поля після цього коду:

Замініть field_lable_hereвашою назвою поля. Також змініть Ваш описна необхідний Вам опис.

Внесіть зміни до файлу registration.xml із папки components/com_users/models/forms вашого сервера. Додайте код для поля під код того поля, під яким нове поле має виводитися.

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

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

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

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

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

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

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

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

Усі поля типу “VARCHAR” мають значення за промовчанням NULL.


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

Все, наша таблиця 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 структуру для форми авторизації
  • Обробляємо отримані дані
  • Виводимо вітання користувача до шапки сайту
  • Сподобалася стаття?

    Disclosure: Your support helps keep the site running! Були пізні листи для деяких служб, які recommend на цій сторінці. Learn more

    Sharing is caring!

    Updated on December 17, 2019

    Web forms є використані віртуально всі веб-сайти для wide range of purposes. Users forums and social networks use forms to add content and interact with other users. Веб-сайти, які можуть бути призначені для створення індивідуального досвіду, такі як customizable newsfeeds, використовувати форми для того, щоб дозволити користувачам керувати вмістом, що відображаються на сторінці. І близько всіх веб-сайтів використовують форми для повних веб-сайтів відвідувачів, щоб contact organization or person administering thesite. Web forms є здатними до integration of multiple technologies:

    • HTML для створення form fields і labels and accept user input.
    • CSS до стилю presentation of the form.
    • JavaScript для validate form input and provide Ajax -enabled interactions.
    • Server-side languages ​​such as PHP до процесів form data.

    У цьому положенні, ми збираємося, щоб покрити всі елементи HTML, які використовуються для створення web forms.

    Defining the Structure of a Form

    Параграф вмісту.

    Contact Form

    Name:

    Email:

    Subject:

    Message: Type your message here

    Additional paragraph content

    Коли відновлено в браузері, contact form would be clearly separated from surrounding content.

    Поле Set element je optional but є спільним використанням у групі related elements на довгі і складні форми, або ізолювати форми поля від близьких елементів, коли форма є встановлена ​​впродовж з неформальним вмістом. HTML5 added three attributes which can be applied to fieldset elements:

    • disabled: Використовується для disable all of the forms in a fieldset. Зауважте, що ми використовуємо цей параметр в розділі Form above.
    • form: Використовується для поєднання fieldset with id of one or more form elements. Зауважте, що браузер support for that attribute is very limited.
    • name: Associates a name з fieldset .
    The Input Element

    Depending on the type of form you are creating, it"s entirely possible to have a form that only includes two typs of elements: one form element and one or more input elements. The element is used to create a variety of different types of input полів для form users до interact with.

    Common Values

    Вхідний елемент є вельми flexible element, який appearance і behavior може змінюватися dramaticky спираючись на тип типу applied to element. Найбільші типові типи цінностей включають: text : Звичайні значення для типу = "" attribute. Defines a single line of text 20 characters wide. Зовнішній може бути встановлений з розміром розміру, який ви можете повідомити у вигляді коду в нашому попередньому прикладі. password : password type є basically samým as the text field with exception that characteris entered in password field are masked. radio : Radio buttons може бути використаний для забезпечення множинних варіантів, які тільки один може бути chosen. checkbox : Checkboxes є подібними до radio buttons, але більше ніж один вибір може бути активним при часі. Ці засоби багаторазового значення можуть бути підписані з набором checkboxes при наборі радіокнопок буде лише принаймні одна величина. submit : Submit type value creates a form submission button. Якщо натиснуто, форма буде прийняти дія specified in the attribute attribute associated with the form element. Багато способів можуть бути використані тільки для одного або двох введених типів, і найбільш простих форм є будова, використовуючи тільки типи, розміщені вище. However, є багато інших типів, які ви можете використовувати для того, щоб формувати дані, що це не fit в будь-який час з тими, що розміщені вище.

    Less Common Values

    Ці вхідні типи є незважаючи на те, що ті, що розташовуються над цим, але можуть бути підтримані віртуально всі браузери і можуть бути використані для різних типів форм форми введення. button : Якщо ви хочете, якщо кнопка буде натиснута, кнопка введення типу може бути використана для створення кнопки, яку можна поєднувати з різними діями. hidden : Цей тип типу типів використовується, як правило, одночасно з параметром значення, який буде скористатися в даний момент, щоб отримати додаткову величину для будь-якої форми обміну. Form to submit the name of the page where the contact form was submitted from. reset : Цей тип використовується як reset button що буде відновити всі форми fields до їхнього дефіциту майна. submit files, буде сприяти тому, що здатність. to style the button.

    New Values ​​Added by HTML5

    Серверні додаткові додаткові типи будуть визначені в контексті HTML5. Багато цих типів мають обмежений інструмент підтримки. Якщо ви використовуєте їх, будьте впевнені, що check caniuse.com для браузера support і забезпечує надійні fallback options where appropriate. search : Це являє собою property type для конкретної форми, якщо ви використовуєте функціонування. Unlike most of thether types of inputs added in HTML5, type="search" is supported by all browsers. Just remember that this feature doesn"t actually provide search functionality, it just creates a form input field designed to be used as apart of a search feature. Основні кольори selector інструментів.Виберіть більшу кількість кольорів значення за допомогою параметра значення і hex color code like this: . на рівні прийнятних вхідних областей з max , min , і схемою atributs, але браузерів, що лаку підтримують цей елемент, типово fallback до стандартного тексту введення, що не відображає ці граничні межі. Використовуйте цей параметр, щоб виконати знімок, який може бути використаний для вибору значення в спеціальному діапазоні. Ви повинні потребувати розмір елемента з будь-якою технологією, щоб надати Live Preview of selected value. Thankfully, HTML5 Лікар має прямий спосіб, щоб використовувати цей елемент. Для того, щоб визначити час і терміни часу, для того, щоб змінити час вашого часу, потрібно змінити час на рік, місяць і день. use the time input type.Less specific input types include the month and week options which can be used to select a week or month within year without specifying the day or time. Виконати контроль за допомогою електронної пошти і повідомлень про помилки, якщо ви використовуєте цей тип дзвінка. (URL).

    Common Input Attributes

    У той час, як тип atribut is by far the most-used and most useful input attribute, є several other attributes ви будете потрібні для того, щоб побудувати useful forms. name : The name asigned to an input element will be submitted along with the value integred in the asociated field. В інших словах, якщо значення “Fred” були введені в пункт введення елемента з цим кодом значення підписаного буде “first_name=Fred”. value : Встановлення елемента введення елемента для різних функцій, залежно від типу введення його, applied to. Якщо застосовано до об'єкта, переміщення, або кнопки типу значення є використаним як текст на кнопці. Коли applied to text fields it provides the default value associated with the field. Якщо вони з'єднані з checkbox або radio button, значення здійснюється за значенням, яке буде з'єднане з тим, що поле selected.

    Who referred you to our website?:

    Pink:

    Red:

    readonly : Хто здогадується, що застосовується як atribut an input element the value in the field cannot be changed. JavaScript може бути використаний для отримання належним чином атрибута після іншої дії є такою, такою як click a button or selecting a checkbox. Для прикладу, впевнено можна було б застосувати до об'єкта введення типу і скориставшись, коли checkbox був selected confirming, що користувачі були прийняті на веб-сайті" з терміном служби. натиснути на позначення форми, fieldset, a single field. t want to accept more than certain number of characters in given field, use maxlength to limit to fields to a defined number of characters. checked : Якщо ви будете checkbox або radio button, щоб бути вибраним, коли form loads apply цей atribut to that input element. Ці атрибути мають широку підтримку і є використані спільно з формами вашого облікового запису протягом усього дня.

    New Attributes Added by HTML5

    HTML5 added багато нових атрибутів, які можуть бути з'єднані з елементами введення. Браузер підтримує деякі елементи, які обмежені, тому що вимагають перевірки для підтримки і забезпечені fallback options для користувачів непідтримуваних інструментів. autocomplete : Якщо у вашій формі входять спільні поля, керуючи автокомплуатацією, щоб зробити visitors браузер до suggest entries, що базуються на попередньо встановлених формах. autofocus : Використовуйте цей параметр для визначення форми поля, яка повинна бути в фокусі, коли форму loads. Multiple : Мультиплеєр може бути використаний з електронною поштою і файлом введення типів для всіх форм користувача до введення більше ніж одна величина. Якщо використовується для електронної пошти, більше ніж одна адреса електронної пошти може бути підписана по відношенню до всіх адрес від next with a comma. Якщо він використовувався для файлів вводів, кілька файлів можуть бути вибрані і підписані одночасно. pattern : There may be times when you want specify that the value of input must meet certain criteria. Для прикладу, ви можете вдатися до того, що password field включає в себе один з першихкасових повідомлень, один короткийзаголовок повідомлень, один номер, і означає мінімальний рівень потрібний. Показник може бути використаний для створення зображень на яких вхідні значення є validated. Записуючи ці висловлювання, відносяться до Regular Expressions або RegExp, є за межею цієї сторінки. Ви можете дізнатися про регулярні вирази на Wikipedia і будуть писати і вивчати свої висловлювання для вільного на RegExr . placeholder : Most forms include placeholder текст, який розкриває як один, як ви клацніть в поле або починається типування. Використовуйте цей параметр для того, щоб add and define placeholder text для any inputs that accept text. required : Якщо певні поля в формі вимагаються, використовуйте це, щоб сприйняти передачу в комплексних формах. Форма : Якщо ви не потрібні для місця введення елемента поза формою елемента, ви можете поєднувати елемент, який ви розмістили, використовуючи форму позначки і застосовуючи значення, яке збирається в ідентифікаційному форматі. Modify Form Submit Button Behavior Там є п'ять atributs, які можуть бути використані для обміну та зображення вхідних типів до override the atributs applied to parent form element. Ці атрибути включають:

    • formaction : Define a different URL from the one identified in the parent form"s action atribute to process a form submission.
    • formenctype : Specify an encoding type that should be used for form submissions. Значення використовуваних overrides значення applied to enctype attribute of parent form element.
    • formmethod : Цей атрибут використовується особливим чином для того, щоб отримати або встановлювати метод методу, і буде перевірити, що метод відображається в parent form.
    • formnovalidate : Якщо ви не збираєтеся вводити, щоб бути validated, коли підписаний ви можете використовувати цей atribut.
    • formtarget : Завершити target atribut applied to the parent form element applying this attribute to submit or image input type field.

    Define the Size of type="image" : Якщо ви використовуєте image input type, щоб створити форму виділення кнопки, ви можете керувати розміром зображення за допомогою height and width attributes. З іншого боку, ви можете зробити це саме з CSS. Most developers і designers повинні будуть переглянути ці атрибути і controlling button appearance with CSS . Set Limits and Increments for Numerical Values ​​: Ви можете використовувати min , max , і кроки atributs для розпізнавання мінімальних і максимальних рівнів, як добре, як сприятливі показники, що спливають між цими значеннями для будь-якого введення, що ціни numerical values.

    Drop-Downs, Text Areas, & Buttons

    Inputs aren"t the only elements that can be used to create form fields. Other types of elements can be associated with forms to create drop-down lists or options, free-form text areas, and flexible buttons.

    Pre-Populated Drop-Down Lists

    Для створення стисненого списку з-поміж можливих функцій від яких веб-сайт visitor може вибрати функцію, використовуйте select element для створення філії, і нескінченні множинні елементи для створення різних функцій, які повинні appear in drop-down menu . Для прикладу, для створення drop-down menu of pretentious color options for fictional e-commerce store, following code could be used:

    Windswept Sand Dune Lush Forest Turbulent Waters Deep Night

    Note, що значення is what will actually be submitted with the form while the text between the opening and closing tags is what is presentad to the visitor completing the form. Для прикладу, якщо visitor selects “Lush Forest” є актуальною величиною, що проходить з формою буде бути green . Тут ви можете побачити наш список подій вниз за допомогою браузера:

    Windswept Sand Dune Lush Forest Turbulent Waters Deep Night

    Free Form Text Areas

    Всі текстові заголовки будуть "відповідно про far, such as , тільки accept a single line of text. However, якщо ви збираєтеся створити велику текстову область для тривалого тексту вводу в єдину лінію введення полів isn"t going to work. Textarea element is the correct choice for creating a large text input area capable of accepting text input that won"t render well on a single line. There are three parts to a textarea:

  • Textarea is created by inserting opening and closing tags. Будь-який текст поміщений між tags буде loaded в текстовій частині, коли форма обробки і буде підписана вниз з формою беззастережного візитчика, що підтримує form deletes the text out of the textarea .
  • Якщо ви хочете, щоб визначити рівень тексту, використовуйте рядки, щоб визначити рядок рядків тексту, які повинні бути здатні до того, як можна розмістити без відповідного тексту області.
  • Для налаштування з'явиться width use the cols attribute. Значення застосовано буде число символів, які будуть відображатися на одному рядку перед введенням у другий рядок.
  • Text area elements є resizable. However, ряди і колони atributs буде визначено розмір текстури, коли вона перша повертається до браузера і буде також налаштовувати minimum space the area may be resized to fit.


    Enter Text Here

    Цей код буде виробляти два identically sized text areas, що є три рядки, і може бути прийнято 60 characters per row. Вони будуть відповідні до будь-якого великого числа than the default size. Знайти, як placeholder text був приєднаний до першого placeholder пункту, але необхідний між опозицією та closing tags в останньому докладі. Після того, як можна казати, що ці два bits code є rendered.

    У той час як текстильна частина може бути визначена за допомогою 'rows' і 'cols', вона є практичною практикою для використання CSS для типу і розміру текстових областей. Багато атрибутів, які можуть бути використані для введення елементів, можуть бути використані для елементів тексту. У додаток, який включається в нашому докладі, atributs, які можуть бути використані в текстових областях, включаючи: autofocus , disabled , form , maxlength , name , readonly , required , and wrap .

    Flexible Buttons

    Там є два способи створення кнопок для форм:

    "Ви маєте більшу розмову про вхідний елемент і різні типи, які можуть бути використані для створення кнопок. Які існують ще одна кнопка? Вони мають більшу кількість двох способів, як елементи, які відрізняються від їх введення кузин."

  • Оскільки кнопки можуть бути зроблені з записуванням і closing tag, різні типи вмісту - зазвичай текст і зображення - можуть бути отримані між записами і closing tags і будуть rendered on the button.
  • Buttons do not have to be asocied with a form element. Вони можуть використовуватися як standalone buttons до ініціативних scripts, як вміст anchor element, і для виконання інших дій.
  • Form Elements Added in HTML5

    Три нові форми елементів були внесені в HTML5: datalist : Застосування цього елемента надається в розділі повідомлень про автоматичне введення значення для вкладки елемента. В ордер для використання елемента електронної пошти, перший create an input element with a list attribute. Вони створюють елемент електронної пошти з id id atribut. Значення applied to input list attribute must match the datalist id. Значення, які будуть приєднані до друкарських даних за допомогою параметрів опцій елементів між друком і closing друкарськими повідомленнями. Тут's an example of how this all works:

    When we render that code in the browser and input element буде appear. Якщо ми починаємо типування, autocomplete suggestions буде зроблено на основі функцій, включених в список даних. Уважайте, що всі користувачі можуть змінювати форму, що є обмеженою для вибору від однієї з цих опцій.

    What is your favorite web технології?

    output : Використовуйте цей елемент для відображення результату calculation або user input. Associate it with an input element by using the atribut with value that matches id of the relevant input element, or associate it with form by adding a form atribut using a value that matches id of the relevant form . Відображення елемента може бути зроблене з роздільним елементом до літних форм користувача, щоб дізнатися, як ефект пов'язаний з поточним становищем знімка елемента елемента. За допомогою об'єкта і діапазону елементів в цьому способі є основою цієї літератури, але якщо ви збираєтеся використовувати ці два елементи разом з тобою, щоб дізнатися більше про цю технологію в HTML5 Doctor .

    Next Steps

    Цей літературу має реалізований для перегляду елементів, що використовуються для створення форм для веб. Next step є спроба виконати деякі знання, що ви". Використання інших статей в цьому розділі буде говорити про те, що процеси створюють форму ретельності, стилю і designing forms, і засмучують, що ваші форми можуть використовувати і accessibility.

    Frequently Asked Questions How do you restrict a form field до тільки accept numbers?

    У пастці, віддаленої області до номерів тільки необхідної використання JavaScript. However, with the release of HTML5, it"s now simple to limit a field to numerical input only. Just apply the number value to the type atribut of the applicable input element. For example:

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

    How do you restrict a form field до тільки accept alphanumeric characters?

    У пастці, тільки тільки до граничного поля введення до загальних характеристик було використано jQuery або JavaScript і розробка custom function. However, HTML5 позначається на форматі параметрів для введення елементів, які можуть бути використані для обмеження форми поля для введення альпійського введення тільки. Here"s the code that will do the trick:

    У цьому випадку, шаблон елемента буде прийняти літерикази, загальнікаси, і номери. Second part of value in curly braces stipulates how many total characters mai be entered into the field. Let's see how that looks in the browser.

    way it works is that when you attempt to submit values ​​that don't meet the specified pattern the title attribute is displayed. Browser support for this relatively new attribute is really pretty good. IE 9 і попередні версії IE не підтримують його і Opera Mini також за допомогою лаків.

    How do you make a form submit when the user presses enter?

    Якщо ви збираєтеся натиснути на те, що ви не збираєтеся, коли ви натиснете, то деякі з них є послідовно розроблений для того, щоб зробити це - і вони дійсно повинні бути. Web accessibility specs є clear: design forms to allow implicit submission. What is implicit submission? Submitting a form by pressing enter. Браузери є розроблений для підтримки implicit submission. Here"s how it works. Take this form for instance:

    Name:
    Age:

    Якщо ви були спрямовані на будь-який елемент в тому, що форма і pressed вводу, форма повинна бути підписана. Це implicit submission і всі сучасні браузери підтримують цей behavior. Використовуйте кнопку елемента у вигляді і ви маєте можливість використати значення для типу типу atribut.

    Name:
    Age:
    Submit

    So how do developers break this behavior? Один шлях до того, щоб отримати цей рух, і, щоб бути чітким, ми не можемо переглянути цей шлях, щоб потрапити у вигляді елементів. t know what to submit. Інші способи деяких розробників спричиняють браузер behavior is to use CSS to make buttons rather than proper HTML elements, this.

    .submitButton ( padding: 10px 20px; margin-top: 10px; background-color: #ddd; border-radius: 5px; display: inline-block; ) .submitButton:hover ( background-color: #ccc; ) .submitBut active ( background-color: #ddd; ) Name:
    Age:
    Submit

    Which, коли rendered by the browser, would produce button that looked like a button but did not do anything when enter is pressed.

    SubmitButton(padding: 10px 20px; margin-top: 10px; background-color: #ddd; border-radius: 5px; display: inline-block;).submitButton:hover(background-color: #ccc;). (background-color: #ddd;)

    У WordPress існує реєстраційна форма, за допомогою якої нові користувачі реєструються на сайті. Але що робити, якщо ви хочете створити реєстраційну форму користувача, яка не відповідає параметрам Консолі в WordPress, і додати в неї нові поля?

    | Завантажити готовий плагін форми |

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

    Стандартна реєстраційна форма складається лише з двох полів – імені користувача та e-mail.

    Наявність лише двох полів у реєстраційній формі для заповнення робить процес реєстрації дуже простим. Спочатку ви вводите ім'я користувача та поштову адресу, після чого пароль для входу на сайт автоматично надходить до вас на e-mail. Потім ви входите на сайт, використовуючи надісланий вам пароль, заповнюєте свій профіль і змінюєте пароль на новий, який самі придумаєте та легко зможете запам'ятати.

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

    І сьогодні ми створюватимемо WordPress-плагін для кастомної реєстраційної форми з використанням наступних полів:

    • Ім'я користувача
    • пароль
    • e-mail
    • URL-адреса сайту
    • прізвище
    • нікнейм
    • Особиста інформація

    Користувацька реєстраційна форма може бути інтегрована на WordPress за допомогою шорткоду плагіна та відповідного тега шаблону.

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

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

    Перед тим, як ми приступимо до створення плагіна, варто зазначити, що нам потрібні поля з ім'ям користувача, паролем та e-mail.

    Ми дотримуватимемося цього правила при створенні функції перевірки.

    Створення плагіна

    Враховуючи все сказане вище, давайте приступимо до написання коду плагіна. Спочатку увімкніть заголовок та шапку плагіна.

    Висновок

    У сьогоднішньому пості ми розглянули процес створення плагіна, за допомогою якого додається кастомна форма реєстрації на сайті WordPress. На основі наданої інформації можна розширити кількість полів для заповнення, але тільки переконавшись, що поля форми є дійсними мета-даними для wp_insert_user .