Инструменты пользователя

Инструменты сайта


software:development:demo:adaptive_registration_form_sample

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
software:development:demo:adaptive_registration_form_sample [2026/01/26 23:30] – [style.css] VladPolskiysoftware:development:demo:adaptive_registration_form_sample [2026/02/01 19:39] (текущий) – [Дополнения и Файлы] VladPolskiy
Строка 2: Строка 2:
 Данная форма написана на PHP и CSS. Адаптивность ей придает медиа-запрос ''@media screen and (max-width: 480px)'' Это правило адаптивного дизайна, которое применяет определенные стили, когда ширина окна браузера составляет 480 пикселей или меньше , а устройство — экран (например, настольный компьютер, смартфон или планшет).  Данная форма написана на PHP и CSS. Адаптивность ей придает медиа-запрос ''@media screen and (max-width: 480px)'' Это правило адаптивного дизайна, которое применяет определенные стили, когда ширина окна браузера составляет 480 пикселей или меньше , а устройство — экран (например, настольный компьютер, смартфон или планшет). 
 \\   \\  
-{{:software:development:demo:adaptiv_form-activ_sample_php_css_1.png? |}}+  *  <fc #22b14c>Windows 10 Pro</fc> 
 +  *  [[https://www.apachefriends.org/download.html|XAMPP]] <fc #22b14c>- полностью бесплатный и простой в установке дистрибутив Apache, содержащий MariaDB, PHP и Perl. Работая в среде MS Windows, его использование регулируется</fc> [[https://ru.wikipedia.org/wiki/GNU_General_Public_License|GNU General Public License]]. 
 +  *  <fc #22b14c>Google Chrome — браузер, разрабатываемый на основе свободного браузера Chromium и движка Blink.</fc>  
 +  *  [[https://notepad-plus-plus.org/|Notepad++]] <fc #22b14c>- бесплатный текстовой редактор исходного кода. Работая в среде MS Windows, его использование регулируется</fc> [[https://ru.wikipedia.org/wiki/GNU_General_Public_License|GNU General Public License]]. 
 + 
 +\\   
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_1.png?|}}
 \\   \\  
 +  * Главная страница (auth)
   * Форма авторизации (Login Form)   * Форма авторизации (Login Form)
   * Форма регистрации (Registration Form)   * Форма регистрации (Registration Form)
Строка 169: Строка 176:
 \\   \\  
 ==== Заголовки, ссылки, параграфы и формы ==== ==== Заголовки, ссылки, параграфы и формы ====
 +Вставим в наш ''container'' код формы с элементами заголовка, ввода, параграфа и кнопки
 +<code html html>
 +<form method="post" action="#">
 + <h2>Форма входа</h2>
 + <input type="email" id="email" required placeholder="Введите свой адрес электронной почты">
 + <input type="password" id="password" required placeholder="Введите свой пароль">
 + <p>Забыли пароль? <a href="index.php?page=reset">Восстановить?</a></p>
 + <button type="submit">Авторизоваться</button>
 + <p>Нет аккаунта? <a href="index.php?page=register">Зарегистрируйтесь.</a></p>
 +</form>
 +</code>
 +  * %%method="post"%% - отправка данных формы на сервер.
 +  * %%action="#"%% - значение параметра означает, что данные формы отправляются на ту же страницу 
 +Приведенный выше код - это просто заглушка, которая показывает нам пример приведения стиля заголовка, параграфа и ссылки (отсутствие подчеркивания). Позже мы поменяем адреса этой заглушки
 +\\  
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_13.png? |}}
 +\\  
 +==== Формы и кнопки ====
 +Создадим правила для стилей кнопки и форм ввода. для этого пропишем в файле стилей ''style.css'' следующий код
 +<code css style.css>
 +/*Стиль поля ввода*/
 +input {
 +    width: 93%;
 +    padding: 10px;
 +    margin: 5px 0 0 0; /*Отступ только сверху*/
 +    border: 1px solid #6665ee;
 +    border-radius: 5px;
 +}
  
 +/*Стиль кнопки*/
 +button {
 +    width: 100%;
 +    padding: 10px;
 +    background-color: #6665ee;
 +    color: white;
 +    border: none;
 +    border-radius: 5px;
 +    cursor: pointer;
 +}
 +
 +button:hover {
 +    background-color: #5757d1;/*Изменение цвета кнопки при наведении курсора*/
 +
 +</code>
 +Снова обновим страницу браузера
 +\\  
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_14.png?|}}
 +\\  
 +И последнее, что мы пропишем в файле ''style.css'', это медиа-запрос, используемый для адаптивного веб-дизайна.
 +<code css style.css>
 +@media screen and (max-width: 480px) {
 +  /* Стили для планшетов и телефонов */
 +  .container { width: 90%; padding: 5px; }
 +}
 +</code>
 +Так как форма у нас имеет ширину всего 300px, то нет смысла писать медиа запрос для планшетов, остановимся только на размере экрана телефона.
 +\\  
 +{{:software:development:demo:photo_2026-01-27_00-16-519.jpg? |}}
 +\\  
 +===== Динамическое подключение страниц =====
 +Итак, пришло время создание динамически подключаемых страниц.
 +  * auth.php - Главная страница (auth)
 +  * login.php - Форма авторизации (Login Form)
 +  * register.php - Форма регистрации (Registration Form)
 +  * confirm.php - Форма подтверждения электронной почты (Email Confirmation Form)
 +  * reset.php - Форма сброса пароля (Password Reset Form)
 +  * 2fa.php - Форма 2х уровневой авторизации (2-Level Authorization Form)
 +  * logout.php - Выход из системы (logout)
 +==== login.php ====
 +Переименуем, находящийся в корне директории наш шаблон ''sample.php'' в ''auth.php'', а так же создадим файл ''login.php'' в директории ''pages''.\\  
 +Из файла ''auth.php'' удалим весь код из %%<div class="container">%% и запишем это в файл ''login.php'', при этом изменив адреса ссылок на ''auth.php'' 
 +\\  
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_16.png?|}}
 +\\  
 +Мы вынесли форму авторизации во внешний файл, подключим его. Для этого в файле ''auth.php'' пропишем код 
 +<code php auth.php>
 +// Определяем список разрешенных страниц 
 +$allowed_pages = array('login', 'register', 'confirm', 'reset', '2fa');
 +$page = $_GET['page'] ?? 'login'; // По умолчанию 'login'
 +</code>
 +\\  
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_17.png?|}}
 +\\  
 +В наш блок контейнера вставляем следующий код 
 +<code php auth.php>
 +<?php
 +// Получаем значение из URL: auth.php?page=login
 +// Проверьте, находится ли запрошенная страница в списке разрешенных.
 +if (in_array($page, $allowed_pages)) {
 +    // Безопасно подключить внешний файл
 +    include('pages/' . $page . '.php');
 +} else {
 +    // Обработать некорректный запрос страницы (страница не найдена).
 +    echo 'Page not found.';
 +}
 +?>
 +</code>
 +\\  
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_18.png?|}}
 +\\  
 +==== reset.php ====
 +Cоздадим файл ''reset.php'' в директории ''pages'' и запишем в него следующий код
 +<code php reset.php>
 +<form method="post" action="#">
 +    <h2>Форма сброса пароля</h2>
 +    <input type="email" id="email" required placeholder="Введите свой адрес электронной почты">
 +    <p>Отменить? <a href="auth.php?page=login">Войдите здесь.</a></p>
 +    <button type="submit">Сбросить пароль</button>
 +</form>
 +</code>
 +Обновим страница браузера и нажмем на ссылку "Восстановить?"
 +\\  
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_19.png?|}}
 +\\  
 +Ссылка "Отменить? Войдите здесь." вернет на форму "login"
 +
 +==== register.php ====
 +Cоздадим файл формы регистрации ''register.php'' в директории ''pages'' и запишем в него следующий код
 +<code php register.php>
 +<form method="post" action="#">
 +    <h2>Форма регистрации</h2>
 +    <input type="text" id="user_login" name="user_login" required placeholder="Введите ваше полное имя">
 +    <input type="email" id="user_email" name="user_email" required placeholder="Введите свой адрес электронной почты">
 +    <input type="password" id="user_pass" name="user_pass" required placeholder="Придумайте сложный пароль">
 +    <input type="password" id="confirmPassword" name="confirmPassword" required placeholder="Повторите введенный пароль">
 +    <p title="Пароль должен содержать не менее 8 символов и содержать не менее: одной строчной буквы, одной заглавной буквы, одной цифры и одного символа.">*Примечание</p>
 +    <button type="submit">Зарегистрироваться</button>
 +    <p>Есть аккаунт? <a href="auth.php?page=login" >Войдите здесь.</a></p>
 +</form>
 +</code>
 +Обновим страница браузера и нажмем на ссылку "Зарегистрируйтесь."
 +\\  
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_20.png?|}}
 +\\  
 +Ссылка "Есть аккаунт? Войдите здесь." вернет на форму "login"
 +
 +==== confirm.php ====
 +Cоздадим файл формы верификации ''confirm.php'' в директории ''pages'' и запишем в него следующий код
 +<code php confirm.php>
 +<form method="post" action="#">
 +    <h2>Форма верификации</h2>
 +    <input type="email" id="user_email" name="user_email" required placeholder="Введите свой адрес электронной почты">
 +    <input type="password" id="user_activation_email_key" name="user_activation_email_key" required placeholder="Введите код, отправленный на ваш email">
 +    <p>*Необходимо подтвердить ваш email.</p>
 +    <button type="submit">Отправить полученный код</button>
 +</form>
 +</code>
 +На эту форму не кнопки (ссылки) перехода, она откроется после формы регистрации. Так же эта форма будет открываться, если пользователь выбирет 2х факторную защиту аккаунта по электронной почте.
 +\\  
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_21.png?|}}
 +\\  
 +==== 2fa.php ====
 +Cоздадим файл формы 2х факторной аутентификации через мобильное приложение ''2fa.php'' в директории ''pages'' и запишем в него следующий код
 +<code php index.php>
 +<form method="post" action="#">
 +    <h2>Форма аутентификация 2FA</h2>
 +    <input type="number" id="user_activation_2fa" name="user_activation_2fa" pattern="\d{6}" required placeholder="Введите OTP код">
 +    <p>*OTP код из мобильного приложения </p>
 +    <button type="submit">Подтвердить одноразовый код</button>
 +</form>
 +</code>
 +На эту форму нет кнопки (ссылки) перехода, она откроется после формы аутентификации, если пользователь выбирет 2х факторную защиту аккаунта в мобильном приложении.
 +\\  
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_22.png?|}}
 +\\  
 +==== OTP.php ====
 +Cоздадим файл формы получения кода 2х факторной аутентификации через мобильное приложение ''OTP.php'' в директории ''pages'' и запишем в него следующий код-заглушку
 +<code php OTP.php>
 +<form method="post" action="#">
 +        <h2>Форма 2FA</h2>
 +        <p>*Отсканируйте в приложении QR code: </p>
 + <!-- echo $tfa->getQRCodeImageAsDataUri('Demo', $secret);-->
 + <img src="css/qr_code.png" />
 + <p>*Введите код вручную: </p> 
 + <h5>I4BQ P7MB TBG6 LW5I ID5O JY2E SQSV EWX4</h5>
 + <p>*Подтвердите код на мобильном устройстве </p> 
 +</form>
 +</code>
 +Эта форма единожды будет доступна при включении пользователем двухфакторной авторизации после регистрации.
 +\\  
 +{{:software:development:demo:adaptiv_form-activ_sample_php_css_24.png?|}}
 +\\  
 +==== logout.php ====
 +Последний файл ''logout.php'' не доступен для просмотра и будет служить для кода выхода из системы.
 +===== Дополнения и Файлы =====
 +  * См.так же 
 +  * [[software:development:demo:adaptive_registration_form_block|Блочная адаптивная форма регистрации и авторизации]]
 +  * [[software:development:demo:adaptive_registration_form_complex_block|Блочная полная адаптивная форма регистрации и авторизации]]
 +  * {{ :software:development:demo:htdocs.zip |Скачать архив с примерами}}
software/development/demo/adaptive_registration_form_sample.1769459404.txt.gz · Последнее изменение: VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki