• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

PHP с нуля. Урок #7.1. Обработка форм

Премиум
Премиум
Статус
Оффлайн
Регистрация
3 Дек 2017
Сообщения
234
Реакции
201
Уроки я не перестал выпускать

А сегодня мы поговорим о формах. Формы отправляют данные, введенные пользователем на сервер.

Формы являются одним из важных элементов любого сайта и предназначены для обмена данными между пользователем и сервером. Область применения форм не ограничена отправкой данных на сервер, с помощью клиентских скриптов можно получить доступ к любому элементу формы, изменять его и применять по своему усмотрению.
Определение взято с htmlbook (не реклама)
В HTML я углубляться не буду, только код простой формы.

HTML:
Expand Collapse Copy
<form method="POST">                        <!-- Метод формы - POST, его можно не указывать, по умолчанию - GET; поговорим об этом позже. -->
    <input type="text" name="login">        <!-- имя этого поля ввода - "login" -->
    <input type="text" name="password">     <!-- а этого - "password" -->
    <input type="submit" value="Отправить"> <!-- Кнопка отправки формы -->
</form>
Для начала нам надо получить данные из формы.

Данные формы лежат либо в массиве $_POST, либо в массиве $_GET, смотря, какой метод мы выбрали в HTML коде формы.

В данном случае, мы выбрали метод POST - method="POST". Значит, данные формы лежат в массиве $_POST.

Чтобы получить значение конкретного ввода, нам надо обратиться к элементу массива $_POST с индексом, равным параметру name поля для ввода.

Мы сделали 2 поля для ввода с именами "login" и "password". Соответственно, чтобы получить значение поля с именем "login", надо обратиться к $_POST['login'].
Чем отличаются методы POST и GET:
  • Метод GET отправляет скрипту всю собранную информацию формы как часть URL: site.com/page.php?login=admin&password=root
  • Метод POST передает данные таким образом, что пользователь сайта уже не видит передаваемые скрипту данные: site.com/page.php
Соответственно, чтобы передавать секретные данные, к примеру пароли, лучше использовать метод POST.
Чтобы форма направлялась не на текущую страницу, а на другую, можно использовать параметр action
HTML:
Expand Collapse Copy
<form action="somepage.php">
    <input type="submit" value="Отправить">
</form>
Соответственно, этот код перенаправит вас на страницу somepage.php.
Сначала пишем PHP код для проверки данных, если они существуют:

PHP:
Expand Collapse Copy
<?php

$login = "admin"; //Переменная с логином
$password = "root"; //Переменная с паролем


if (isset($_POST['login']) && isset($_POST['password'])) { // Если существует значение полей логина и пароля
    if ($_POST['login'] == $login && $_POST['password'] == $password) { // Если логин и пароль соответствуют
        echo "Авторизация успешна!";
    } else {
        echo "Авторизация завершилась с ошибкой :(";
    }
}
?>
PHP:
Expand Collapse Copy
<?php
$login = "admin"; //Переменная с логином
$password = "root"; //Переменная с паролем

if (isset($_POST['login']) && isset($_POST['password'])) { // Если существует значение поля логин и пароль
    if ($_POST['login'] == $login && $_POST['password'] == $password) { // Если логин и пароль соответствуют
        echo "Авторизация успешна!";
    } else {
        echo "Авторизация завершилась с ошибкой :(";
    }
}
?>
<form method="POST">                        <!-- Метод формы - POST, его можно не указывать, по умолчанию - GET; поговорим об этом позже. -->
                                            <!-- Еще можно указать параметр action, он определяет страницу, на которую будет производиться запрос -->
    <input type="text" name="login">        <!-- имя этого поля ввода - "login" -->
    <input type="text" name="password">     <!-- а этого - "password" -->
    <input type="submit" value="Отправить"> <!-- Кнопка отправки формы -->
</form>
Запустив этот код, вы увидите 2 поля ввода и кнопку подтверждения.
Пожалуйста, авторизуйтесь для просмотра ссылки.
(логин - admin, пароль - root).
Если вы введете правильные или неправильные данные, то вам отобразится соответствующий текст.
_________________________________________________________________________
Если у вас возникли вопросы - пишите в теме. Надеюсь, отвечу :)
Если вы нашли у меня ошибку - пишите в ЛС, чтобы не засорять тему - поправлю.
Если вы хотите дополнить меня - пишите в теме, либо в ЛС - добавлю, оставлю credits.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Такое чувство, будто ты все берешь с SoloLearn.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я беру только порядок изучения тем, и некоторые определения. Сам текст темы я стараюсь писать сам.
Тогда толку от твоих тем, если ты все пастишь с сайта их?)
 
Назад
Сверху Снизу