Обработка форм сайта с помощью PHP – База знаний Timeweb Community

Обработка форм с помощью PHP

Введение

Формы используют для отправки какой-либо информации на сервер, которую необходимо как-то обработать.

Места использования форм:

  1. Создание регистрации и авторизации
  2. Создание блока комментариев
  3. Создание обращения в техническую поддержку (тикеты)

Создаём форму на HTML

Код формы необходимо помещать в <body> HTML документа.


<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="UTF-8">
    <title>Формы</title>
  </head>
  <body>
    Здесь должна быть ваша форма.
   </body>
</html>

Я пропущу скелет документа дальше, чтобы было более понятно.


<form action="" method="post">
<p>Введите логин: <input type="text" name="login"></p>
<p>Введите пароль: <input type="password" name="pass"></p>
<p><input type="submit" value="Отправить" name="done"></p>
</form>

В атрибут action нужно указать обработчик формы (PHP-скрипт). Если поле пусто, значит, обработку формы выполнил тот скрипт, в котором расположена сама форма. В атрибут method нужно указать метод отправки формы (post или get). У каждого свои плюсы и минусы. Вкратце: post отправляет данные так, что пользователь не может их увидеть, а get — так, что они видны в URL-строке браузера.

Наглядный пример get:

Наглядный пример get

Наглядный пример post:
Наглядный пример postНемного по PHP:

При отправке формы методом POST данные записываются в суперглобальный массив $_POST.

При отправке формы методом GET данные записываются в суперглобальный массив $_GET.

К суперглобальным массивам $_POST и $_GET нужно обращаться обычным способом (как вы делаете это и с обычными ассоциативными массивами) $массив[‘ключ’].

В форме мы сделали 3 <input>. Первые два — поле ввода логина и пароля. Третий — кнопка отправки формы.
Тег <input> имеет атрибут type=»». Для каждого случая указывают свой тип ввода. Допустим, text

устанавливают для текста, submit — для отправки формы по атрибуту (action), а password — для пароля (чтобы он отображался звёздочками *).
Кроме того, тег <input> имеет атрибут name=»» и атрибут value=»». Value — стандартное значение элемента, name — предназначено для того, чтобы обработчик формы мог его идентифицировать.

Создаём обработчика формы

Мы перешли к самому интересному моменту статьи. Если мы обрабатываем форму на другой странице (action=»example.php»), то после нажатия кнопки подтверждения вас перекинет на указанную страницу.
Если action пуст, то страница с формой перезагрузится.
В самом верху скелета документа (перед <!DOCTYPE html>) открываем теги PHP и обрабатываем форму:

<? // Если кнопка нажата, то выполняет тело условия if (isset($_POST['done'])) { echo 'кнопка обработчика была нажата!<br>'; // Если логин и пароль не пуст(есть значение), а также пароль не 123 if (!empty($_POST['login']) && $_POST['pass'] != 123 && !empty($_POST['pass'])) { echo "Всё хорошо, все поля пройдены. "; echo "Здесь должна быть ваша обработка формы. "; echo "Занесение в базу данных, отправка сообщения и т.п."; } // Если логин пуст, тогда выводит сообщение if ($_POST['login'] == '') { echo 'Логин пуст!<br>'; } // Если пароль популярный ||(или) пуст, тогда выводит сообщение if ($_POST['pass'] == '123' || empty($_POST['pass'])) { echo "Нельзя использовать популярные пароли. Придумайте свой!<br>"; } } ?>

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

В самом верху PHP-тега заводим 2 новые переменные, которые по стандарту пусты:


$error_login = "";
$error_pas = "";

В проверке на пароль:


$error_pas .= "Нельзя использовать популярные пароли. Придумайте свой!<br>";

В проверке на логин:


$error_login .= 'Логин пуст!<br>';

.= означает то, что мы берём прошлую строку (пусто) и прибавляем к этому наше сообщение.

В форме HTML:

Добавляем после тега <input> вставку PHP (в данном случае

<?= ?>), так как мы только выводим переменную. Суть проста: если ошибки в логине нет, тогда $error_login пуст, а следственно, ничего не выводится, иначе выводим там ошибку.


<p>Введите логин: <input type="text" name="login"><?=$error_login?></p>
<p>Введите пароль: <input type="password" name="pass"><?=$error_pas?></p>

Теперь доработаем форму, чтобы она сохраняла значения полей.

В самом начале добавляем 2 переменные:


$input_login ="";
$input_pass = "";

В начало проверки на ‘нажата ли кнопка отправки’ добавляем:


$input_login = $_POST['login'];
$input_pass = $_POST['pass'];

То есть мы заносим в переменные значения из суперглобального массива $_POST.

И немного изменяем нашу HTML-форму:


<form action="" method="post">
<p>Введите логин: <input type="text" name="login" value="<?=$input_login?>"><?=$error_login?></p>
<p>Введите пароль: <input type="password" name="pass" value="<?=$input_pass?>"><?=$error_pas?></p>
<p><input type="submit" value="Отправить" name="done"></p>
</form>

Добавляем тег value, чтобы указать стандартное значение поля. Теперь если выдаётся ошибка, то значения полей сохраняются, и пользователю нужно не заново их вводить, а только исправить ошибку.

Заключение

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

Всем спасибо за внимание!

Итоговый код страницы с формой + обработчика:

https://pastebin.com/N9WegitB

Заказать хостинг

Обработка формы в PHP

Вы здесь: Главная — PHP — PHP Основы — Обработка формы в PHP

Обработка формы в PHP

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

создании сайта, о котором я и расскажу в этой статье.

Для начала давайте создадим форму на HTML:

<html>
<head>
  <title>Форма</title>
</head>
<body>
  <form name = 'myform' action = 'req.php' method = 'post'>
    Ваш логин: <input type = 'text' name = 'login' />
    <br />
    Ваш пароль: <input type = 'password' name = 'pass' />
    <br />
    <input type = 'submit' value = 'Войти' />
  </form>
</body>
</html>

Это пример классической формы авторизации пользователя, которую, уверен, многие из Вас многократно заполняли на самых разных сайтах. Давайте теперь обсудим один важный момент: как отправляются данные? Существует два метода (мы с Вами будем только два рассматривать) — это GET и

POST. Главное их отличие — это вид отправки: открытый (GET) и закрытый (POST). Самый лучший способ понять, в чём разница — это открыть данный HTML-код в браузере и нажать кнопку «Войти«. Посмотрите на адресную строку, а потом поставьте другой метод, снова пройдите и вновь посмотрите на адресную строку. Отличие будет бросаться в глаза мгновенно.

Соответственно, в PHP существуют два массива: $_GET и $_POST, которые содержат данные, полученные каждым из этих методов. Также есть массив $_REQUEST, который содержит данные $_GET и $_POST одновременно. Я Вам советую использовать метод POST и массив $_POST, хотя, безусловно, зависит от ситуации, но в большинстве случаев делают именно так.

Теперь давайте обработаем данные. Давайте реализуем простой скрипт (в файле «req.php«):

<?php
  $login = $_POST['login'];
  $pass = $_POST['pass'];
  if (($login == "Admin") && ($pass == "AdminPass"))
    echo "Привет, Admin!";
  else echo "Доступ закрыт";
?>

В данном скрипте мы получаем данные, полученные из формы методом POST (из массива $_POST, хотя с таким же успехом могли получить эти данные из $_REQUEST). Дальше проверяем логин и пароль и выводим: «Привет, Admin!» или «Доступ закрыт». Разумеется, чтобы создать систему авторизации пользователей на сайте, необходимо ещё узнать о cookie или о сессиях (в принципе, тоже cookie), но о них мы поговорим несколько позднее, потому что у нас впереди ещё очень много важных тем.

Аналогично, считываются и обрабатываются абсолютно любые данные из форм. То есть всё, что Вам нужно — это знать имя переменной (задаётся в HTML-форме) и дальше использовать массивы $_POST, $_GET и $_REQUEST

.

  • Обработка формы в PHP Создано 12.11.2010 15:41:16
  • Обработка формы в PHP Михаил Русаков
Предыдущая статья Следующая статья

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:
    <a href=»https://myrusakov.ru» target=»_blank»><img src=»https://myrusakov.ru/images/button.gif» alt=»Как создать свой сайт» /></a>

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:
    <a href=»https://myrusakov.ru» target=»_blank»>Как создать свой сайт</a>

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):
    [URL=»https://myrusakov.ru»]Как создать свой сайт[/URL]

Обработка форм в PHP, методы GET и POST

Что такое форма

С точки зрения разработчика форма — это набор HTML-элементов, таких как <input>, <select>, <textarea> и пр., которые заполняются пользователем, отправляются на сервер и обрабатываются с помощью PHP.

Простой пример формы:

<form>
	<input type="text" name="title">
	<textarea name="content"></textarea>
</form>

В этой форме есть 2 поля для заполнения (input и textarea), а также кнопка отправки формы.

Если мы заполним эту форму любыми значениями и нажмём на кнопку, то переместимся на страницу с примерно таким URL: /?title=123&content=456.

Итак, давайте разбираться, что тут вообще происходит.

Мем с парнем, задумчиво смотрящим в монитор

Разбираемся с обработкой форм в PHP

Обработка формы с GET-параметрами

Формы можно передавать с помощью методов GET и POST. Указывается метод с помощью атрибута method тега form:

<form method="POST">
</form>

Если метод не указан, то по-умолчанию форма отправляется методом GET.

Формы, отправляемые методом GET, передают данные через URL-адрес.

Соответственно GET-параметр — это параметр, передаваемый в URL-адресе. Например, разберём URL /index.php?name=Vasya&price=1000 по частям:

  • /index.php — ссылка на сам скрипт
  • ? — символ, с которого всегда начинается перечисление GET-параметров
  • name=Vasya — это первый GET-параметр с ключом name и значением Vasya
  • & — разделитель между GET-параметрами
  • price=1000 — это второй GET-параметр с ключом price и значением 1000

Ну а раз мы эти параметры передали, значит теперь можем получить их в PHP. Для этого существует суперглобальный массив $_GET.

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

Получить доступ к этим параметрам можно так:
<?php
    echo $_GET['name'] . ' ' . $_GET['price'];

Когда вы отправляете форму, браузер получает ключ и значение каждого элемента (ключ указывается в атрибуте name, значение — то, что ввёл пользователь) и подставляет их в новый URL-адрес, на который затем и переходит.

Поэтому важно указывать атрибут name каждому элементу формы, иначе этот элемент не отправится на сервер.

Итак, создадим простенькую форму и добавим ей PHP-обработчик:

<?php
	if(isset($_GET['form'])) {
		echo $_GET['title'] . ' : ' . $_GET['content'] . '<br>';
	} else {
		echo 'Форма не отправлена';
	}
?>
<form>
	<input type="text" name="title">
	<br><br>

	<textarea name="content"></textarea>
	<br><br>

	<button name="form">Отправить!</button>
</form>

Теперь при отправке заполненной формы PHP выведет на экран то, что мы в эту форму написали.

Метод POST

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

Однако у этого метода есть недостаток — GET-параметры видны в адресной строке. Это значит, что введённые в форму логин и пароль будут передаваться в URL-адресе, а значит видны в истории браузера, что очень нехорошо.

По этой причине для отправки форм, которые могут содержать конфиденциальную информацию, нужно всегда использовать метод POST. При использовании метода POST данные передаются в теле http-запроса, а не в URL.

Метод GET в формах чаще всего используется для поиска чего-либо (товаров, статей и т.д.).

Некоторые разработчики считают, что данные, передаваемые методом POST, имеют какую-то особую защиту, которая не позволяет злоумышленнику украсть или подменить их.

Это не так. Никакой дополнительной защиты у метода POST нет. Для защиты http-запросов нужно использовать https.

Данные, передаваемые методом POST, лежат в суперглобальном массиве $_POST. Теперь можно переписать нашу форму, чтобы она передавала данные методом POST:

<?php
	if(isset($_POST['form'])) {
		echo $_POST['title'] . ' : ' . $_POST['content'] . '<br>';
	} else {
		echo 'Форма не отправлена';
	}
?>
<form method="post">
	<input type="text" name="title">
	<br><br>

	<textarea name="content"></textarea>
	<br><br>

	<button name="form">Отправить!</button>
</form>

Изменение обработчика формы

Обработчик формы — это URL, на который отправится форма. По-умолчанию форма отправляется на тот же URL-адрес, где она находится.

При желании вы можете отправлять форму не на текущий URL, а на какой-нибудь другой. Для этого достаточно указать путь к скрипту в атрибуте action:

<form action="/some_url.php">
    <input type="submit">
</form>

В примере выше запрос будет отправлен скрипту /some_url.php.

PHP и формы | PHP

Ни для кого не является секретом, что наиболее распространенным способом взаимодействия html-страницы с сайтом является форма. Форма (то есть, html-элемент образуемый тегом form) используется и бесплатными почтовыми службами, электронными магазинами и многими другими типами сайтов.

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


Рассмотрим подробнее варианты для разных типов полей.

Под текстовыми полями в этой статье понимаются элементы, создаваемые тегам input со значением параметра type равным text и тегом textarea. Организовать обработку формы состоящей из нескольких таких полей проще всего. На листинге ниже приведен листинг с html-разметкой для такой формы.

<form action='do.html' method='post'>
 <input type='text' name='txt[0]' value=''><br>
 <input type='text' name='txt[1]' value=''><br>
 <input type='text' name='txt[2]' value=''><br>
 <input type='text' name='txt[3]' value=''><br>
 <input type='text' name='txt[4]' value=''><br>
 <input type='submit' value='Отправить'>
</form>

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

<?php
 while(list($key,$val) = each($txt))
  echo "ключ - $key, значение - $val<br>n";
?>

Переключателями (checkbox) в этой статье называются элементы, создаваемые тегам input со значением параметра type равным checkbox. Форма для использования переменного количества «переключателей» строится абсолютно так же. Обратите внимание, что выбор конкретного значения переключателя (то есть значение свойства value) не важен. Пример приведен в листинге ниже:

<form action='do.html' method='post'>
 <input type='checkbox' name='chb[0]' value='1'><br>
 <input type='checkbox' name='chb[1]' value='1'><br>
 <input type='checkbox' name='chb[2]' value='1'><br>
 <input type='checkbox' name='chb[3]' value='1'><br>
 <input type='checkbox' name='chb[4]' value='1'><br>
 <input type='submit' value='Отправить'>
</form>

Однако обработка такой формы отличается от обработки, описанной для текстовых полей. В данном случае необходимо определить, включил или нет посетитель сайта тот или иной переключатель. Если включил — то соответствующий элемент массива существует, если нет — то отсутствует. В следующем листинге приведен пример PHP сценария, который распечатывает включенные переключатели:

Перед тем как описывать обработку радио-кнопок необходимо вспомнить, как они работают. Суть радио-кнопок (элементы созданные тегами input со значением параметра type равным radio) заключается в том что, выбирая одну кнопку, пользователь автоматически снимает выделение с другой кнопки из этого же набора. Кнопки объединяются в набор очень просто: у всех кнопок в наборе одно и тоже имя.

А вот значения (то есть параметры value) у кнопок в наборе — разные. И на сайт будет отправлено значение выбранной кнопки с именем набора. Так же как и в случае с текстовыми полями и переключателями имена наборов радио-кнопок должны оформляться как имена элементов массива в PHP. Пример такой формы приведен в следующем листинге:

<form action='do.html' method='post'>
 // первый набор кнопок
 <input type='radio' name='rdi[0]' value='1'>
 <input type='radio' name='rdi[0]' value='2'>
 <input type='radio' name='rdi[0]' value='3'><br>
 // второй набор кнопок
 <input type='radio' name='rdi[1]' value='1'>
 <input type='radio' name='rdi[1]' value='2'>
 <input type='radio' name='rdi[1]' value='3'><br>
 // третий набор кнопок
 <input type='radio' name='rdi[2]' value='1'>
 <input type='radio' name='rdi[2]' value='2'>
 <input type='radio' name='rdi[2]' value='3'><br>
<input type='submit' value='Отправить'>
</form>

Обработка радио-кнопок объединяет идеи, использование при обработке, как текстовых полей, так и переключателей. Если автор html-страницы не установил значение по умолчанию, а пользователь не выбрал определенную кнопку в наборе радио-кнопок, то данный элемент будет отсутствовать в массиве (как для переключателей).

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

<?php
 while(list($key,$val) = each($rdi))
  echo "ключ - $key, значение - $val<br>n";
?>

Таким образом, ничего сложного в обработке сложных форм нет.

Основы работы с формами в PHP для новичков

Формы — это элементы HTML страницы, в которые пользователь может вводить данные, например, свое имя, фамилию, возраст, логин и пароль и так далее.

Эти данные затем могут быть получены в PHP и обработаны нужным нам образом.

К примеру, пользователь вводит свое имя и фамилию в форму, нажимает на кнопку отправки и введенные данные уходят на сервер в PHP. Там мы можем получить введенные имя и фамилию и, к примеру, сохранить их в базу данных.

Как сделать форму на HTML

Форма создается с помощью тега form. Этот тег имеет два важных атрибута.

Атрибут action задает адрес страницы сайта, на которую будут отправляться введенные данные. Если оставить этот атрибут пустым — форма отправится на текущую страницу сайта.

Атрибут method задает способ отправки формы. Может принимать значение GET или POST. При отправки методом GET данные из формы будут видны в адресной строке, а при отправке методом POST — не видны.

Имейте ввиду, что PHP код страницы с формой выполнится не один раз, как может показаться, а два раза — первый раз пользователь зайдет на страницу сайта, заполнит форму, нажмет на кнопку отправки, данные из формы отправятся на сервер и PHP код страницы начнет выполнятся сначала.

Поля формы

Внутри тега form можно располагать различные элементы формы: поле ввода input, кнопку отправки формы, многострочное поле ввода textarea и некоторые другие элементы, которые нам пока не нужны.

Пример формы

<form action="" method="GET">
	<input type="text" name="user"><br><br>
	<textarea name="message"></textarea><br><br>
	<input type="submit">
</form>

Как получить данные из формы в PHP

Мы можем получить данные, которые ввел пользователь в форму, в PHP коде. Это делается с помощью глобальных массивов $_GET, $_POST, $_REQUEST.

В $_GET будут лежать данные, отправленные методом GET, в $_POST будут лежать данные, отправленные методом POST, а $_REQUEST — данные, отправленные и тем, и другим методом одновременно.

Как именно это делается: пусть в форме есть инпут с атрибутом name=»user». Тогда после отправки этой формы мы можем получить данные из этого инпута таким образом: $_GET[‘user’] (или $_POST[‘user’], или $_REQUEST[‘user’]).

Сохраняем значения полей формы после отправки

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

<form action="" method="GET">
	<input type="text" name="user" value="<?php echo $_REQUEST['user']; ?>">
	<input type="submit">
</form>

Пример выше будет генерировать предупреждение PHP при первом заходе на страницу — в случае, когда отправка формы еще не была сделана. Исправим это:

<form action="" method="GET">
	<input name="user" value="<?php if(isset($_REQUEST['user'])) echo $_REQUEST['user']; ?>">
	<input type="submit">
</form>

Дополнительные материалы

Рекомендую посмотреть видео из заочного курса: скачайте его по данной ссылке.

Что вам делать дальше:

Приступайте к решению задач по следующей ссылке: задачи к уроку.

Когда все решите — переходите к изучению новой темы.

Формы в PHP

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали о том, что такое сериализация в php. В данной статье я бы хотел рассказать о том, как работать с формами в PHP. Язык PHP предназначен для программирования web-сценариев, и обработка форм занимает, пожалуй, самое главное место в этом процессе. Сейчас уже и не встретить сайтов, на которых не было бы, к примеру, регистрации или формы обратной связи, или опросника. Форумы, интернет-магазины, добавление комментария, отправка сообщения в социальной сети — всё это обработка данных, помещенных в поля формы. Давайте на примере разберемся, как обрабатывать формы на PHP.
Будем реализовывать простую задачу: необходимо создать 2 поля (имя и фамилия), передать эти данные скрипту action.php, в результате должно выйти приветствие «Добро пожаловать, фамилия имя». Кто забыл, как создаются формы, и какие там есть поля, можно посмотреть ТУТ. Создадим файл test.html:


<html>
<head>
	<meta charset="utf-8"/>
</head>
<body>
	<form action="action.php">
		Имя: <input type="text" name="name" value=""/>
		Фамилия: <input type="text" name="surname" value=""/>
		<input type="submit" name="start" value="Запустить сценарий"/>
	</form>
</body>
</html>

Обращаю ваше внимание, что файл action.php (в нашем случае) должен находиться в одной папке с файлом test.html. Тут можно указывать как относительные, так и абсолютные пути. Будьте внимательны, многие ошибки связаны с неправильным указанием пути до скрипта-обработчика формы.

Создадим файл action.php со следующим содержимым:


<?php
echo "Данные из строки браузера: $_SERVER[QUERY_STRING]"; 
?>

Если мы сейчас откроем файл test.html, заполним поля формы и нажмём на кнопку, то попадём в файл action.php, где будет выведено сообщение. В данном случае браузер обращается к скрипту action.php и передает ему, через знак «?» все значения атрибутов name, расположенных внутри тегов <input>, разделенных символом &. Обратите внимание, что подставляется вместо $_SERVER[QUERY_STRING].

Нашу задачу мы можем решить, разобрав строку QUERY_STRING с помощью стандартных функций по работе со строками в PHP, но лучше воспользоваться другим механизмом — это использование массива $_REQUEST. Все данные, которые получены из полей формы, PHP помещает в массив $_REQUEST, не зависимо от того, каким способом были переданы данные: POST или GET (узнать можно через $_SERVER[‘REQUEST_METHOD’]). Напоминаю чем эти способы отличаются:

Метод GET является открытым, метод POST является закрытым, т.е. они отличаются способом передачи параметров. Пример:

1) Если мы используем метод post: mysite.ru/request.php.
2) Если мы используем метод get: mysite.ru/request.php?myname=»Alex»&surname=»Gulynin».

Также, помимо массива $_REQUEST, PHP создаёт массивы $_GET и $_POST. Давайте теперь реализуем нашу задачу, на основе полученных знаний:


<?php
	echo "Добро пожаловать, ".$_REQUEST["surname"]." ".$_REQUEST["name"]; //В квадратных скобках передаётся атрибут name текстового поля
?>

Если мы сейчас заполним форму и нажмём на кнопку, то увидим, что скрипт action.php приветствует нас по фамилии и имени. Всё работает корректно.

Здесь всё хорошо, но если мы изменим название скрипта, то нужно будет вносить изменения в файл test.html. Давайте модифицируем файл action.php, так, чтобы, обращаясь к нему либо выводилась форма, когда мы ничего не отправили, либо приветствие, когда мы нажали кнопку:


<html>
<head>
	<meta charset="utf-8"/>
</head>
<body>
	<?php if (!isset($_REQUEST['start'])) {?> 
		<form action="<?=$_SERVER['SCRIPT_NAME']?>"> 
			Имя: <input type="text" name="name" value=""/>
			Фамилия: <input type="text" name="surname" value=""/>
			<input type="submit" name="start" value="Запустить сценарий"/>
		</form> 
	<?php} else { 
			echo "Добро пожаловать, $_REQUEST['surname'] $_REQUEST['name']";
		} 
	}?> 
</body>
</html>

Теперь мы не зависим от имени скрипта, т.к. задаем его через переменную окружения $_SERVER[‘SCRIPT_NAME’]. Конструкция =$_SERVER[‘SCRIPT_NAME’]?> равнозначна конструкции .
Помимо переменной окружения SCRIPT_NAME существует множество других.

Домашнее задание: необходимо написать скрипт, который будет выводить ip-адрес пользователя и его браузер. Подсказка: необходимо воспользоваться другими переменными окружения $_SERVER, все переменные окружения можно вывести с помощью php_info();

В данной статье вы узнали, как работать с формами в PHP.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Следующая статья >

обработка нескольких форм в php

php

Написать простейшую форму с её последующей обработкой сможет, пожалуй, каждый. Но начинающие php-программисты (а иногда и более опытные) встают в тупик: а что делать, если форм на странице 2 и обрабатываются они одним и тем же скриптом? На самом деле, здесь нет ничего сложного. Достаточно знать один момент: как именно браузер отрабатывает эти ситуации.

Допустим, на странице есть 2 формы. Одна отвечает за регистрацию, другая — за авторизацию. В этом случае не будет ничего удивительного, если обрабатывать их будет один файл. Для однозначного и быстрого (в самом деле, если форм будет ещё больше и их данные пересекаются глупо просматривать ворох параметров и создавать чуть ли не искусственный интеллект, пытаясь определить, что же вообще требуется) Определения того, какая из форм была инициирована пользователем, достаточно соблюсти 2 момента.

Как известно, за отправку формы отвечает элемент input с типом submit. Если данному элементу присвоить имя (name), сможем по этому имени определить, какая же из форм вызвана. Код будет примерно таким:

форма № 1
<form action="/form.php" method="post">
<p>
Введите имя: <input type="text" name="login1" value=""><br>
<input type="submit" name="submit1" value="ok">
</p>
форма № 2
<form action="/form.php" method="post">
<p>
Введите имя: <input type="text" name="login2" value=""><br>
<input type="submit" name="submit2" value="ok">
</p>

Формы практически полностью идентичны. Отличаются они только именами тегов input. В скрипте form.php остаётся только обработать эти ситуации. Исполняем:

// параметры проверяются только если одна из форм активирована
if ( ! empty($_POST)) {
    if (isset($_POST['submit1'])) {
        // получение переданного имени
        if (isset($_POST['login'])) $login = $_POST['login1'];
        else echo 'введите логин';
    } else if (isset($_POST['submit2'])) {
        // получение переданного имени
        if (isset($_POST['login'])) $login = $_POST['login2'];
        else echo 'введите логин';
    } else {
        echo 'ошибка';
    }
}

Несмотря на то, что код получения логина одинаков, следует понимать, что в первом случае он поступил из формы № 1, а вот втором — из № 2. При активации формы браузер передаёт элементы только этой самой формы. Другие формы обработаны не будут.

Ну и конечно же, ничего не мешает давать элементам разных форм одинаковые имена. В данном примере вполне можно заменить имена login1 и login2 на login (и в html коде, и в скрипте-обработчике form.php).

Дополнение
Для некоторых тема оказалась не раскрыта. Что же, накидал небольшой php-файлик с примером определения отправляемой формы. Надеюсь, живой пример окажется более нагляден.

Автор публикации

2 070

не в сети 3 месяца

x64 (aka andi)

Комментарии: 2893Публикации: 405Регистрация: 02-04-2009 phpЗагрузка…

PHP Обработка форм — GeeksforGeeks

, если (isset ( $ _POST [ 'представить' ])))

{

если ((! Isset ( $ _POST [ 'имя' ]))) || (! Isset ( $ _POST [ ] фамилия ' )) ||

(! Isset ( $ _POST [ 'address' ])) || (! isset ( $ _POST [ 'адрес электронной почты' ])) ||

(! Isset ( $ _POST [ 'пароль' ])) || (! isset ( $ _POST [ «пол» ])))

{

$ ошибка = "*" . «Пожалуйста, заполните все обязательные поля» ;

}

остальное

{

$ имя = $ _POST [ «имя» ];

$ фамилия = $ _POST [ 'фамилия' ];

$ address = $ _POST [ 'address' ];

$ адрес электронной почты = $ _POST [ «адрес электронной почты» ];

$ пароль = $ _POST [ «пароль» ];

$ пол = $ _POST [ "пол" ];

}

}

?>

Простая обработка форм </ title> </code> </p> <p> <code> </ head> </code> </p> <p> <code> </code> </p> <p> <code> <body> </code> </p> <p> <code> </code> <code> <div> Обработка форм с использованием PHP </ h2> </code> </p> <p> <code> </code> <code> <fieldset> </code> </p> <p> <code> </code> <code> <form id = </code> <code> "form1" </code> <code> method = </code> <code> "post" </code> <code> action = </code> <code> "form.php "</code> <code>> </code> </p> <p> <code> </code> <code> <? Php </code> </p> <p> <code> </code> <code>, если </code> <code> (isset (</code> <code> $ _POST </code> <code> [</code> <code> 'представить' </code> <code>]))) </code> </p> <p> <code> </code> <code> {</code> </p> <p> <code> </code> <code>, если </code> <code> (isset (</code> <code> $ ошибка </code> <code>)) </code> </p> <p> <code> </code> <code> {</code> </p> <p> <code> </code> <code> эхо </code> <code> "<p>" </code> </p> <p> <code> </code> <code>.</code> <code> $ ошибка </code> <code>. </code> <code> "</ p>" </code> <code>; </code> </p> <p> <code> </code> <code>} </code> </p> <p> <code> </code> <code>} </code> </p> <p> <code> </code> <code>?> </code> </p> <p> <code> </code> </p> <p> <code> </code> <code> Имя: </code> </p> <p> <code> </code> <code> <тип ввода = </code> <code> "текст" </code> <code> имя = </code> <code> "имя" </code> <code> /> </code> </p> <p> <code> </code> <code> <span style = </code> <code> "цвет: красный;" </code> <code>> * </ span> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> Фамилия: </code> </p> <p> <code> </code> <code> <тип ввода = </code> <code> "текст" </code> <code> имя = </code> <code> "фамилия" </code> <code> /> </code> </p> <p> <code> </code> <code> <span style = </code> <code> "цвет: красный;" </code> <code>> * </ span> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> Адрес: </code> </p> <p> <code> </code> <code> <тип ввода = </code> <code> "текст" </code> <code> имя = </code> <code> "адрес" </code> <code> /> </code> </p> <p> <code> </code> <code> <span style = </code> <code> "цвет: красный;" </code> <code>> * </ span> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> Электронная почта: </code> </p> <p> <code> </code> <code> <тип ввода = </code> <code> "электронная почта" </code> <code> name = </code> <code> "адрес электронной почты" </code> <code> /> </code> </p> <p> <code> </code> <code> <span style = </code> <code> "цвет: красный;" </code> <code>> * </ span> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> Пароль: </code> </p> <p> <code> </code> <code> <тип ввода = </code> <code> "пароль" </code> <code> имя = </code> <code> "пароль" </code> <code> /> </code> </p> <p> <code> </code> <code> <span style = </code> <code> "цвет: красный;" </code> <code>> * </ span> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> Пол: </code> </p> <p> <code> </code> <code> <тип ввода = </code> <code> "радио" </code> </p> <p> <code> </code> <code> значение = </code> <code> "Мужской" </code> </p> <p> <code> </code> <code> имя = </code> <code> "пол" </code> <code>> мужской </code> </p> <p> <code> </code> <code> <тип ввода = </code> <code> "радио" </code> </p> <p> <code> </code> Значение <code> = </code> <code> "Женщина" </code> </p> <p> <code> </code> <code> имя = </code> <code> "пол" </code> <code>> женский </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> <br> </code> </p> <p> <code> </code> <code> <тип ввода = </code> <code> "отправить" </code> <code> значение = </code> <code> "отправить" </code> <code> имя = </code> <code> "отправить" </code> <code> /> </code> </p> <p> <code> </code> <code> </ form> </code> </p> <p> <code> </code> <code> </ fieldset> </code> </p> <p> <code> </code> <code> <? Php </code> </p> <p> <code> </code> <code>, если </code> <code> (isset (</code> <code> $ _POST </code> <code> [</code> <code> 'представить' </code> <code>]))) </code> </p> <p> <code> </code> <code> {</code> </p> <p> <code> </code> <code>, если </code> <code> (! Isset (</code> <code> $ error </code> <code>)) </code> </p> <p> <code> </code> <code> {</code> </p> <p> <code> </code> <code> эхо-сигнал </code> <code> "<div> ВХОД ПОЛУЧЕНО </ h2> <br>" </code> <code>; </code> </p> <p> <code> </code> <code> echo </code> <code> "<table border = '1'>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<thead>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо-сигнал </code> <code> "<th> Параметр </ th>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо-сигнал </code> <code> "<th> значение </ th>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "</ thead>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<tr>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td> Имя </ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td>" </code> <code>.</code> <code> $ имя </code> <code>. </code> <code> "</ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо-сигнал </code> <code> "</ tr>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<tr>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td> Фамилия </ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td>" </code> <code>.</code> <code> $ фамилия </code> <code>. </code> <code> "</ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо-сигнал </code> <code> "</ tr>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<tr>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td> Адрес </ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td>" </code> <code>.</code> <code> $ адрес </code> <code>. </code> <code> "</ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо-сигнал </code> <code> "</ tr>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<tr>" </code> <code>; </code> </p> <p> <code> </code> <code> echo </code> <code> "<td> Адрес электронной почты </ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td>" </code> <code>.</code> <code> $ адрес электронной почты </code> <code>. </code> <code> "</ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо-сигнал </code> <code> "</ tr>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<tr>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td> Пароль </ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td>" </code> <code>.</code> <code> $ пароль </code> <code>. </code> <code> "</ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо-сигнал </code> <code> "</ tr>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<tr>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td> Gender </ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо </code> <code> "<td>" </code> <code>.</code> <code> $ пол </code> <code>. </code> <code> "</ td>" </code> <code>; </code> </p> <p> <code> </code> <code> эхо-сигнал </code> <code> "</ tr>" </code> <code>; </code> </p> <p> <code> </code> <code> echo </code> <code> "</ table>" </code> <code>; </code> </p> <p> <code> </code> <code>} </code> </p> <p> <code> </code> <code>} </code> </p> <p> <code> </code> <code>?> </code> </p> <p> <code> </ body> </code> </p> <p> <code> </code> </p> <p> <code> </ html> </code> </p> ,<div> PHP обработка формы - переполнение стека </h2><div class="advv"> <ins class="adsbygoogle" style="display:inline-block;width:336px;height:280px" data-ad-client="ca-pub-1812626643144578" data-ad-slot="9935184599"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> Переполнение стека <ol role="presentation"> <li> Товары </li> <li> Клиенты </li> <li> Случаи использования </li> </ol> <ol> <li> Переполнение стека Публичные вопросы и ответы </li> <li> Команды Частные вопросы и ответы для вашей команды </li> <li> предприятие Частные вопросы и ответы для вашего предприятия </li> <li> работы Программирование и связанные с ним технические возможности карьерного роста </li> <li> Талант Нанимать технический талант </li> <li> </li> </ol>.<h2><span class="ez-toc-section" id="_HTML-_PHP_-_Vegibit"> Обработка HTML-форм с помощью PHP - Vegibit </span></h2><div class="advv"> <ins class="adsbygoogle" style="display:inline-block;width:336px;height:280px" data-ad-client="ca-pub-1812626643144578" data-ad-slot="9935184599"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <p> <img src="/800/600/https/vegibit.com/wp-content/uploads/2014/10/This-Is-The-Processing-Form-Data-With-PHP-Tutorial-Youll-Love.jpg" alt="This Is The Processing Form Data With PHP Tutorial Youll Love" /> </p> <p> Работа с формами при создании сайтов кажется такой простой. На самом деле нужно знать много деталей. В серии руководств по HTML мы подробно рассмотрели учебник по HTML-формам, но у нас не было возможности исследовать, как мы на самом деле будем обрабатывать данные, которые мы собираем из формы. Сейчас мы находимся в разгар великолепной серии учебных пособий по PHP, и сейчас самое время взглянуть на обработку форм с помощью PHP, чем сейчас.Мы узнали, что ссылки и URL передают данные через супер глобальный GET. В этом выпуске мы рассмотрим супер глобальный POST и его связь с обработкой форм в PHP. Давайте прыгать прямо в! </p> <hr/> <ul> <li> <strong> Ссылки и URL-адреса </strong> Используя строку запроса, пары данных ключ / значение могут быть переданы через <code> GET </code> super global </li>. <li> <strong> форм </strong> С HTML-формами <code> POST </code> является обычным методом передачи данных и не требует кодирования / декодирования, как это делают ссылки и URL-адреса </li> <li> <strong> Cookies </strong> Установив значения cookie через <kbd> PHP </kbd>, вы можете затем читать и записывать данные в ассоциативный массив по мере необходимости </li> </ul> <p> В этом приключении мы будем специально ориентироваться на второй подход с запросами POST и HTML-формами в PHP.Именно с помощью суперглобальной переменной <code> $ _POST </code> мы можем получить доступ к данным, представленным в форме. Различные поля в HTML-форме будут иметь атрибут name, который затем станет ключом ассоциативного массива в <code> $ _POST </code>. Вы можете использовать обработку формы с помощью двухстраничного процесса или одностраничного процесса. У каждого есть свои плюсы и минусы, а пока мы рассмотрим двухстраничный подход. Это означает, что ваша первая страница будет содержать HTML-разметку для формы.Эта форма будет иметь атрибут <em> action </em>, и значением этого атрибута будет вторая страница PHP, которая будет обрабатывать данные. Самый простой способ увидеть, как это работает, - создать его в коде. </p> <h5><span class="ez-toc-section" id="htmlformbuiltwithlovephp"> htmlformbuiltwithlove.php </span></h5> <table> <tr> <td data-settings="show"> <p> 1 </p> <p> 2 </p> <p> 3 </p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 </p> <p> 8 </p> <p> 9 </p> <p> 10 </p> <p> 11 </p> <p> 12 </p> <p> 13 </p> <p> 160004 <p> 14000000 <p> 14000000 <p> </p> <p> 160004 <p> 160004 <p> </p> <p> 160004 <p> </p> <p> </p> <p> 160004 <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> <p> 1 </p> <p> 2 9 000 000 </p> <p> 18 </p> <p> 19 </p> <p> 20 </p> <p> 21 </p> </td> <td> <p> <html> </p> <p> <head> </p> <p> <meta charset = "utf-8"> </p> <p> <title> Форма HTML создана с любовью </ title> </p> <p> <link href = "css / bootstrap.min.css "rel =" stylesheet "> </p> <p> <script src =" js / response.js "> </ script> </p> <p> <script src =" http://code.jquery.com/jquery-latest.min .js "> </ script> </p> <p> <script src =" js / bootstrap.min.js "> </ script> </p> <p> </ head> </p> <p> </p> <p> <body> </p> <p> </p> <p> <form action =" process_form.php "method =" post "> </p> <p> Веб-сайт: <input type =" text "name =" website "value =" "/> <br> </p> <p> Категория: <input type =" text "name =" категория "value =" "/> <br> <br> </p> <p> </p> <p> <input type =" submit "name =" submit "value =" Submit Website "/> </p> <p> </ form> </p> <p> </p> <p> </ body > </p> <p> </ html> </p> </td> </tr> </table> <h5><span class="ez-toc-section" id="process_formphp"> process_form.php </span></h5> <table> <tr> <td data-settings="show"> </td> <td> <p> <pre> </p> <p> <? Php </p> <p> print_r ($ _ POST); </p> <p>?> </p> </td> </tr> </table> <p> Итак, у нас есть две страницы для настройки форм в самом простом виде. Если мы загрузим htmlformbuiltwithlove.php в нашем браузере, мы можем ввести некоторую информацию в форму. В первом поле мы введем <kbd> https: // ello.Ко </kbd>, а во втором мы введем <kbd> Социальная </kbd>. Затем мы нажмем кнопку «Отправить» и посмотрим, что произойдет. </p> <pre crayon="false"> Массив ( [сайт] => https://ello.co [категория] => Социальный [submit] => Отправить сайт ) </pre> <p> <strong> Очень круто! </strong> Вы можете видеть, как атрибут name стал ключом в нашем массиве, а введенные нами данные стали значением этого конкретного ключа. Эти данные передавались со страницы на страницу через метод POST.Давайте посмотрим, как извлечь данные из этого массива и использовать их. В ваших реальных программах небо - это предел того, как вы можете обрабатывать эту информацию. Давайте просто возьмем два значения, поместим их в переменные, а затем как-нибудь используем их на странице. Мы обновим файл process_form.php следующим образом и посмотрим, что мы можем сделать. </p> <h5><span class="ez-toc-section" id="process_formphp-2"> process_form.php </span></h5> <table> <tr> <td data-settings="show"> <p> 1 </p> <p> 2 </p> <p> 3 </p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 </p> <p> 8 </p> <p> 9 </p> <p> 10 </p> <p> 11 </p> <p> 12 </p> <p> 13 </p> <p> 160004 <p> 14000000 <p> 14000000 <p> </p> <p> 160004 <p> 160004 <p> </p> <p> 160004 <p> </p> <p> </p> <p> 160004 <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> <p> 1 </p> <p> 2 9 000 000 </p> </td> <td> <p> <html> </p> <p> <head> </p> <p> <link href = "css / bootstrap.min.css "rel =" stylesheet "> </p> <p> <script src =" js / response.js "> </ script> </p> <p> <script src =" http://code.jquery.com/jquery-latest.min .js "> </ script> </p> <p> <script src =" js / bootstrap.min.js "> </ script> </p> <p> </ head> </p> <p> </p> <p> <body> </p> <p> </p> <p> </p> <p> <? php </p> <p> $ website = $ _POST ['website']; </p> <p> $ category = $ _POST ['category']; </p> <p> </p> <p> echo "Привет, спасибо, что отправил <b> $ website </ b> на < b> $ category </ b> категория."; </p> <p>?> </p> </td> </tr> </table> <p> Привет, приятель, спасибо за отправку <strong> https://ello.co </strong> в категорию <strong> Social </strong>. </p> <hr/> <p> Теперь, когда у нас есть понимание того, как создать базовую форму HTML на одной странице, и сценарий обработки PHP на другой, давайте теперь посмотрим, как определить, была ли отправлена ​​форма. Это общий и необходимый шаг при обработке форм в PHP. Для этого есть много причин, но одна из главных - если пользователь пытается загрузить страницу обработки формы напрямую, так как это приведет к ошибкам в вашем приложении.Так каков лучший способ сделать это? Давайте посмотрим. </p> <h4><span class="ez-toc-section" id="i-12"> Установить значения по умолчанию </span></h4> <p> Одна вещь, которую мы можем сделать, это настроить некоторую логику для назначения значений по умолчанию, если это необходимо. Таким образом, если пользователь отправляет реальную страницу обработки формы вместо самой HTML-формы, мы можем установить значения на что-то разумное по мере необходимости. Использование троичного оператора - это простой способ сделать это. </p> <h5><span class="ez-toc-section" id="process_formphp-3"> process_form.php </span></h5> <table> <tr> <td data-settings="show"> <p> 1 </p> <p> 2 </p> <p> 3 </p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 </p> <p> 8 </p> <p> 9 </p> <p> 10 </p> <p> 11 </p> <p> 12 </p> <p> 13 </p> <p> 160004 <p> 14000000 <p> 14000000 <p> </p> <p> 160004 <p> 160004 <p> </p> <p> 160004 <p> </p> <p> </p> <p> 160004 <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> <p> 1 </p> <p> 2 9 000 000 </p> <p> 18 </p> <p> 19 </p> </td> <td> <p> <html> </p> <p> <head> </p> <p> <link href = "css / bootstrap.min.css "rel =" stylesheet "> </p> <p> <script src =" js / response.js "> </ script> </p> <p> <script src =" http://code.jquery.com/jquery-latest.min .js "> </ script> </p> <p> <script src =" js / bootstrap.min.js "> </ script> </p> <p> </ head> </p> <p> </p> <p> <body> </p> <p> </p> <p> </p> <p> <? php </p> <p> </p> <p> $ website = isset ($ _ POST ['website'])? ($ _POST ['website']): 'http://twitter.com'; </p> <p> $ category = isset ($ _ POST ['category '])? ($ _POST [' category ']):' Social '; </p> <p> </p> <p> </p> <p> echo "Привет, спасибо, что отправил <b> $ website </ b> в категорию <b> $ </ б> категория."; </p> <p>?> </p> </td> </tr> </table> <p> При прямой загрузке этой страницы появится сообщение «Привет, спасибо, что отправили http://twitter.com в категорию Social». Однако при загрузке, если вы отправляете пустую форму из htmlformbuiltwithlove.php, страница обработки все равно будет работать, но она будет иметь пустые значения. </p> <h4><span class="ez-toc-section" id="i-13"> Лучший метод определения формы </span></h4> <p> Предыдущий пример - это начало, но есть более простой и лучший способ. Давайте пересмотрим скрипт обработки формы, чтобы иметь следующий формат.</p> <h5><span class="ez-toc-section" id="process_formphp-4"> process_form.php </span></h5> <table> <tr> <td data-settings="show"> <p> 1 </p> <p> 2 </p> <p> 3 </p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 </p> <p> 8 </p> <p> 9 </p> <p> 10 </p> <p> 11 </p> <p> 12 </p> <p> 13 </p> <p> 160004 <p> 14000000 <p> 14000000 <p> </p> <p> 160004 <p> 160004 <p> </p> <p> 160004 <p> </p> <p> </p> <p> 160004 <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> <p> 1 </p> <p> 2 9 000 000 </p> <p> 18 </p> <p> 19 </p> <p> 20 </p> <p> 21 </p> <p> 22 </p> <p> 23 </p> <p> 24 </p> <p> 25 </p> </td> <td> <p> <html> </p> <p> <head> </p> <p> <link href = "css / bootstrap.min.css "rel =" stylesheet "> </p> <p> <script src =" js / response.js "> </ script> </p> <p> <script src =" http://code.jquery.com/jquery-latest.min .js "> </ script> </p> <p> <script src =" js / bootstrap.min.js "> </ script> </p> <p> </ head> </p> <p> </p> <p> <body> </p> <p> </p> <p> </p> <p> <? php </p> <p> </p> <p> if (isset ($ _ POST ['submit'])) {</p> <p> echo 'Nice Form Submission! <br>'; </p> <p>} else {</p> <p> echo 'Хватит пытаться взломать форму дурака!'; </p> <p> выход; </p> <p>} </p> <p> </p> <p> $ website = isset ($ _ POST ['website'])? ($ _POST ['website']): 'http: // twitter.com '; </p> <p> $ category = isset ($ _ POST ['category'])? ($ _POST ['category']): 'Social'; </p> <p> </p> <p> echo "Привет, приятель, спасибо, что отправил <b> $ website </ b> в категорию <b> $ category </ b>."; </p> <p>?> </p> </td> </tr> </table> <p> Это здорово, и теперь предлагает нечто большее, чем то, что вы искали. Если пользователь отправляет действительные данные в форму, а затем нажимает кнопку отправки, это может выглядеть следующим образом.</p> <p> <strong> Nice Форма Представления! <br/> Привет, приятель! Спасибо за отправку Google+ в категорию "Социальные сети". </strong> </p> <p> Если пользователь пытается загрузить файл process_form.php напрямую, ему предоставляется это сообщение. </p> <p> <strong> Хватит пытаться взломать форму дурака! </strong> </p> <p> Мы проверяем наличие ключа <code> submit </code> в массиве $ _POST. Ключ присутствует только в том случае, если пользователь фактически нажал на кнопку отправки в форме, так что это способ наиболее легко обнаружить отправку формы.</p> <hr/> <p> Другой подход к работе с формами и отправке форм в PHP - просто завершить обработку формы на той же странице, что и форма HTML. Давайте посмотрим, как это сделать. </p> <h5><span class="ez-toc-section" id="htmlformbuiltwithlovephp-2"> htmlformbuiltwithlove.php </span></h5> <table> <tr> <td data-settings="show"> <p> 1 </p> <p> 2 </p> <p> 3 </p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 </p> <p> 8 </p> <p> 9 </p> <p> 10 </p> <p> 11 </p> <p> 12 </p> <p> 13 </p> <p> 160004 <p> 14000000 <p> 14000000 <p> </p> <p> 160004 <p> 160004 <p> </p> <p> 160004 <p> </p> <p> 14000000 <p> </p> <p> 18 </p> <p> 19 </p> <p> 20 </p> <p> 21 </p> <p> 22 </p> <p> 23 </p> <p> 24 </p> <p> 25 </p> <p> 26 </p> <p> 27 </p> <p> 28 </p> <p> 29 </p> <p> 30 </p>000000 </td> <td> <p> <? Php </p> <p> </p> <p> if (isset ($ _ POST ['submit']) и strlen ($ _ POST ['website'])> 0) {</p> <p> $ website = htmlspecialchars ($ _ POST ['website'] ); </p> <p> $ category = htmlspecialchars ($ _ POST ['category']); </p> <p> echo "Привет, приятель! Спасибо, что отправил <b> $ website </ b> в категорию <b> $ category </ b>."; </p> <p>} else {</p> <p> echo 'Введите веб-сайт и категорию'; </p> <p>} </p> <p> </p> <p>?> </p> <p> <html> </p> <p> <head> </p> <p> <meta charset =" utf-8 "> </p> <p> <title> HTML-форма, построенная с любовью </ title> </p> <p> <link href = "css / bootstrap.min.css" rel = "stylesheet"> </p> <p> <script src = "js / response.js"> </ script> </p> <p> <script src = "http://code.jquery.com/jquery-latest.min.js"> </ script> </p> <p> <script src = "js / bootstrap.min.js "> </ script> </p> <p> </ head> </p> <p> </p> <p> <body> </p> <p> </p> <p> <form action =" htmlformbuiltwithlove.php "method =" post "> </p> <p> Веб-сайт: <input type =" text "name =" website "value =" "/> <br> </p> <p> Категория: <input type =" text "name =" category "value =" "/> <br> <br> </p> <p> </p> <p> <input type = "submit" name = "submit" value = "Submit Website" /> </p> <p> </ form> </p> <p> </p> <p> </ body> </p> <p> </ html> </p> </td> </tr> </table> <p> Теперь, когда эта страница загружается изначально или отправляется пустая форма, пользователь получает сообщение <strong> Введите веб-сайт и категорию </strong>.Если пользователь предоставит что-то вроде http://facebook.com и Social, а затем щелкнет кнопку «Отправить», он получит сообщение, например «<strong> Hi bud», спасибо за отправку http://facebook.com в категорию «Social». </strong> Обратите внимание, что мы добавили лишь минимальный объем проверки в предложении if, а также выполнили любой ввод пользователя через htmlspecialchars, о котором мы узнали в учебном пособии htmlentities vs htmlspecialchars. </p> <hr/> <p> В наши дни использование PHP-фреймворка, такого как Laravel, Symfony, Zend, Codeigniter, Yii или любых других фантастических решений, - это способ работы с валидацией форм.По-прежнему важно знать основы того, как эти фреймворки делают свое волшебство, и для этого нам нужно понимать сам PHP на самых базовых уровнях. Так какие вещи обычно проверяют? Давайте рассмотрим. </p> <h4><span class="ez-toc-section" id="i-14"> Валидационные характеристики </span></h4> <ul> <li> <strong> Присутствие </strong> Пользователь действительно вводил что-либо в данное поле? </li> <li> <strong> Длина строки </strong> Достаточно ли длинна строка для подтверждения действительного значения? </li> <li> <strong> Проверка типа </strong> Проверка типа данных довольно распространена.</li> <li> Включение <strong> </strong> Если есть раскрывающийся список из 10 значений, является ли значение одним из этих 10 возможных значений? </li> <li> <strong> Уникальность </strong> Являются ли данные, которые пользователь отправляет, на 100% уникальными? Это часто встречается при отправке адресов электронной почты. </li> <li> <strong> Формат </strong> Содержит ли адрес веб-сайта http: // или электронное письмо содержит символ @ и т. Д. </li> </ul> <p> Это вершина айсберга, так как проверка данных может иметь сотни характеристик, но помните, молодой джедай, мы говорим об основах этого эпизода.Итак, давайте посмотрим, как могут выглядеть эти типы правил проверки в базовом PHP. </p> <table> <tr> <td data-settings="show"> <p> 1 </p> <p> 2 </p> <p> 3 </p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 </p> <p> 8 </p> <p> 9 </p> <p> 10 </p> <p> 11 </p> <p> 12 </p> <p> 13 </p> <p> 160004 <p> 14000000 <p> 14000000 <p> </p> <p> 160004 <p> 160004 <p> </p> <p> 160004 <p> </p> <p> 14000000 <p> </p> <p> 18 </p> <p> 19 </p> <p> 20 </p> <p> 21 </p> <p> 22 </p> <p> 23 </p> <p> 24 </p> <p> 25 </p> <p> 26 </p> <p> 27 </p> <p> 28 </p> <p> 29 </p> <p> 30 </p>000 <p> 30 </p>000 <p> 30 </p>000 <p> 30 </p>000000 34 </p> <p> 35 </p> <p> 36 </p> <p> 37 </p> <p> 38 </p> <p> 39 </p> <p> 40 </p> <p> 41 </p> <p> 42 </p> </td> <td> <p> <? Php </p> <p> </p> <p> // присутствие </p> <p> $ value = ''; </p> <p> </p> <p> if (! Isset ($ value) или пусто ($ value)) {</p> <p> echo 'fail'; </p> <p>} </p> <p> </p> <p> // длина строки </p> <p> $ value = ''; </p> <p> $ мин = 2; </p> <p> $ макс = 25; </p> <p> </p> <p> if (strlen ($ value) <$ min) {</p> <p> echo 'fail - too small'; </p> <p>} </p> <p> </p> <p> if (strlen ($ value)> $ max) {</p> <p> echo 'fail - too big'; </p> <p>} </p> <p> </p> <p> // тип </p> <p> $ value = ''; </p> <p> if (! Is_string ($ value)) {</p> <p> echo 'fail - not a string'; </p> <p>} </p> <p> </p> <p> // установить включение </p> <p> $ value = '7'; </p> <p> $ set = array ('1', '2', '3', '4', '5', '6', '7', '8'); </p> <p> if (! In_array ($ value, $ set)) {</p> <p> echo 'fail - not in the set'; </p> <p>} </p> <p> </p> <p> // формат </p> <p> $ value = 'tom @ jones.ком "; </p> <p> if (! Preg_match ('/ @ /', $ value)) {</p> <p> echo 'not valid email'; </p> <p>} </p> <p> </p> <p>?> </p> </td> </tr> </table> <h3><span class="ez-toc-section" id="i-15"> Функции проверки </span></h3> <p> Когда не используется полноценный фреймворк, следующая лучшая вещь - это применить логику проверки в многократно используемых функциях. Вот несколько примеров, которые мы можем использовать для проверки на нашем примере проверки формы на одной странице. </p> <h5><span class="ez-toc-section" id="validation_functionsphp"> validation_functions.php </span></h5> <table> <tr> <td data-settings="show"> <p> 1 </p> <p> 2 </p> <p> 3 </p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 </p> <p> 8 </p> <p> 9 </p> <p> 10 </p> <p> 11 </p> <p> 12 </p> <p> 13 </p> <p> 160004 <p> 14000000 <p> 14000000 <p> </p> <p> 160004 <p> 160004 <p> </p> <p> 160004 <p> </p> <p> 14000000 <p> </p> <p> 18 </p> <p> 19 </p> <p> 20 </p> <p> 21 </p> <p> 22 </p> <p> 23 </p> <p> 24 </p> <p> 25 </p> <p> 26 </p> <p> 27 </p> <p> 28 </p> <p> 29 </p> <p> 30 </p>000 <p> 30 </p>000 <p> 30 </p>000 <p> 30 </p>000000 34 </p> </td> <td> <p> <? Php </p> <p> </p> <p> функция has_presence ($ value) {</p> <p> возвращает isset ($ value) и $ value! == ''; </p> <p>} </p> <p> </p> <p> функция max_length ($ value, $ max) {</p> <p> return strlen ($ value) <= $ max; </p> <p>} </p> <p> </p> <p> функция min_length ($ value, $ min) {</p> <p> return strlen ($ value)> = $ min; </p> <p>} </p> <p> </p> <p> функция has_inclusion ($ value, $ set) {</p> <p> return in_array ($ value, $ set); </p> <p>} </p> <p> function form_errors ($ errors = array ()) {</p> <p> $ output = ''; </p> <p> if (! Empty ($ errors)) {</p> <p> $ output.= '<div>'; </p> <p> $ output. = 'Возможно, вам нужно исправить некоторые вещи! <br>'; </p> <p> $ output. = '<Ul>'; </p> <p> foreach ($ errors as $ key => $ error) {</p> <p> $ output. = '<Li>'. $ error. '</ li>'; </p> <p>} </p> <p> $ output. = '</ Ul>'; </p> <p> $ output. = '</ Div>'; </p> <p>} </p> <p> return $ output; </p> <p>} </p> <p> </p> <p>?> </p> </td> </tr> </table> <p> Теперь мы можем включить этот файл прямо на нашу страницу формы, вот так.</p> <table> <tr> <td data-settings="show"> <p> 1 </p> <p> 2 </p> <p> 3 </p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 </p> <p> 8 </p> <p> 9 </p> <p> 10 </p> <p> 11 </p> <p> 12 </p> <p> 13 </p> <p> 160004 <p> 14000000 <p> 14000000 <p> </p> <p> 160004 <p> 160004 <p> </p> <p> 160004 <p> </p> <p> 14000000 <p> </p> <p> 18 </p> <p> 19 </p> <p> 20 </p> <p> 21 </p> <p> 22 </p> <p> 23 </p> <p> 24 </p> <p> 25 </p> <p> 26 </p> <p> 27 </p> <p> 28 </p> <p> 29 </p> <p> 30 </p>000 <p> 30 </p>000 <p> 30 </p>000 <p> 30 </p>000000 34 </p> <p> 35 </p> <p> 36 </p> <p> 37 </p> <p> 38 </p> <p> 39 </p> <p> 40 </p> <p> 41 </p> <p> 42 </p> <p> 43 </p> <p> 44 </p> <p> 45 </p> <p> 46 </p> <p> 47 </p> <p> 47 </p> <p> 47 </p> <p> 47 </p> <p> 47 </p>000 <p> 51 </p> <p> 52 </p> <p> 53 </p> <p> 54 </p> </td> <td> <p> <? Php </p> <p> include ('validation_functions.PHP '); </p> <p> $ errors = array (); </p> <p> // была ли отправлена ​​форма? </p> <p> if (isset ($ _ POST ['submit'])) {</p> <p> $ website = htmlspecialchars ($ _ POST ['website']); </p> <p> $ category = htmlspecialchars ($ _ POST ['category']); </p> <p> // присутствует ли поле сайта? </p> <p> if (! Has_presence ($ website)) {</p> <p> $ errors ['website'] = 'Вам необходимо войти на сайт!'; </p> <p>} </p> <p> // адрес сайта не менее 4 символов или более? </p> <p> if (! Min_length ($ website, 4)) {</p> <p> $ errors ['minlength'] = 'Веб-сайт должен содержать 4 или более символов!'; </p> <p>} </p> <p> // поле категории присутствует? </p> <p> if (! Has_presence ($ category)) {</p> <p> $ errors ['category'] = 'Вам необходимо указать категорию!'; </p> <p>} </p> <p> if (empty ($ errors)) {</p> <p> echo "Привет, приятель! Спасибо за отправку <b> $ website </ b> в категорию <b> $ category </ b>."; </p> <p>} </p> <p> </p> <p>} else {</p> <p> echo 'Введите веб-сайт и категорию'; </p> <p>} </p> <p> </p> <p>?> </p> <p> <html> </p> <p> <head> </p> <p> <meta charset =" utf -8 "> </p> <p> <title> HTML-форма, построенная с любовью </ title> </p> <p> <link href =" css / bootstrap.min.css "rel =" stylesheet "> </p> <p> <script src =" js / reply. js "> </ script> </p> <p> <script src =" http: //code.jquery.com / jquery-latest.min.js "> </ script> </p> <p> <script src =" js / bootstrap.min.js "> </ script> </p> <p> </ head> </p> <p> <тело> </p> <p> <форма action = "htmlformbuiltwithlove.php" method = "post"> </p> <p> Веб-сайт: <input type = "text" name = "website" value = "" /> <br> </p> <p> Категория: <input type = "text" name = "category" value = "" /> <br> <br> </p> <p> <input type = "submit" name = "submit" value = "Submit Website" /> </p> <p> </ form> </p> <p> <? php echo form_errors ($ errors);?> </p> <p> </ body> </p> <p> </ html> </p> </td> </tr> </table> <p> <strong> Фантастика! </strong> Теперь у нас есть полностью работающая форма HTML, которая обрабатывается с помощью PHP на той же странице, использует функции проверки для обработки проверки и выводит любые ошибки в хорошем формате списка, если что-то идет не так.</p> ,<h2><span class="ez-toc-section" id="php"> php - Обработка форм - Переполнение стека </span></h2><div class="advv"> <ins class="adsbygoogle" style="display:inline-block;width:336px;height:280px" data-ad-client="ca-pub-1812626643144578" data-ad-slot="9935184599"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> Переполнение стека <ol role="presentation"> <li> Товары </li> <li> Клиенты </li> <li> Случаи использования </li> </ol> <ol> <li> Переполнение стека Публичные вопросы и ответы </li> <li> Команды Частные вопросы и ответы для вашей команды </li> <li> предприятие Частные вопросы и ответы для вашего предприятия </li> <li> работы Программирование и связанные с ним технические возможности карьерного роста </li> <li> Талант Нанимать технический талант </li> <li> </li> </ol>.<div class='yarpp-related yarpp-related-none'> <p>No related posts.</p> </div> </div><!--/.entry--> </div><!--/.post-content--> <div class="post-sharrre group"> <div id="twitter" data-url="https://ylianova.ru/raznoe-2/obrabotka-formy-php-rabota-s-formami-v-php-uchebnik-po-php-html-academy.html" data-text="Обработка формы php: Работа с формами в PHP — Учебник по PHP — HTML Academy" data-title="Tweet"></div> <div id="facebook" data-url="https://ylianova.ru/raznoe-2/obrabotka-formy-php-rabota-s-formami-v-php-uchebnik-po-php-html-academy.html" data-text="Обработка формы php: Работа с формами в PHP — Учебник по PHP — HTML Academy" data-title="Like"></div> <div id="googleplus" data-url="https://ylianova.ru/raznoe-2/obrabotka-formy-php-rabota-s-formami-v-php-uchebnik-po-php-html-academy.html" data-text="Обработка формы php: Работа с формами в PHP — Учебник по PHP — HTML Academy" data-title="+1"></div> <div id="pinterest" data-url="https://ylianova.ru/raznoe-2/obrabotka-formy-php-rabota-s-formami-v-php-uchebnik-po-php-html-academy.html" data-text="Обработка формы php: Работа с формами в PHP — Учебник по PHP — HTML Academy" data-title="Pin It"></div> </div><!--/.post-sharrre--> <script type="text/javascript"> // Sharrre jQuery(document).ready(function(){ jQuery('#twitter').sharrre({ share: { twitter: true }, template: '<a class="box group" href="#"><div class="count" href="#">{total}</div><div class="share"><i class="fa fa-twitter"></i></div></a>', enableHover: false, enableTracking: true, buttons: { twitter: {via: ''}}, click: function(api, options){ api.simulateClick(); api.openPopup('twitter'); } }); jQuery('#facebook').sharrre({ share: { facebook: true }, template: '<a class="box group" href="#"><div class="count" href="#">{total}</div><div class="share"><i class="fa fa-facebook-square"></i></div></a>', enableHover: false, enableTracking: true, click: function(api, options){ api.simulateClick(); api.openPopup('facebook'); } }); jQuery('#googleplus').sharrre({ share: { googlePlus: true }, template: '<a class="box group" href="#"><div class="count" href="#">{total}</div><div class="share"><i class="fa fa-google-plus-square"></i></div></a>', enableHover: false, enableTracking: true, urlCurl: 'https://ylianova.ru/wp-content/themes/anew/js/sharrre.php', click: function(api, options){ api.simulateClick(); api.openPopup('googlePlus'); } }); jQuery('#pinterest').sharrre({ share: { pinterest: true }, template: '<a class="box group" href="#" rel="nofollow"><div class="count" href="#">{total}</div><div class="share"><i class="fa fa-pinterest"></i></div></a>', enableHover: false, enableTracking: true, buttons: { pinterest: { description: 'Обработка формы php: Работа с формами в PHP — Учебник по PHP — HTML Academy' } }, click: function(api, options){ api.simulateClick(); api.openPopup('pinterest'); } }); }); </script> </div><!--/.post-inner--> </article><!--/.post--> <ul class="post-nav group"> <li class="next"><a href="https://ylianova.ru/css/css-kruglaya-kartinka-kak-sdelat-kruglye-izobrazheniya-htmlbook-ru.html" rel="next"><i class="fa fa-chevron-right"></i><strong>Вперед</strong> <span>Css круглая картинка: Как сделать круглые изображения? | htmlbook.ru</span></a></li> <li class="previous"><a href="https://ylianova.ru/sajt-2/kak-rabotat-na-sajte-joomla-sozdanie-sajta-na-joomla-poshagovoe-rukovodstvo-dlya-nachinayushhix.html" rel="prev"><i class="fa fa-chevron-left"></i><strong>Назад</strong> <span>Как работать на сайте joomla: Создание сайта на Joomla!: пошаговое руководство для начинающих</span></a></li> </ul> <div class="wpdiscuz_top_clearing"></div> <div id="comments" class="comments-area"><div id="respond" style="width: 0;height: 0;clear: both;margin: 0;padding: 0;"></div> <h3 id="wc-comment-header"> Отправить ответ </h3> <div id="wpcomm" class="wpdiscuz_unauth wpd-default"> <div class="wpdiscuz-form-top-bar"> <div class="wpdiscuz-ftb-left"> <div id="wc_show_hide_loggedin_username"> </div> </div> <div class="wpd-clear"></div> </div> <div class="wc_social_plugin_wrapper"> </div> <div class="wc-form-wrapper wc-main-form-wrapper" id='wc-main-form-wrapper-0_0' > <div class="wpdiscuz-comment-message" style="display: block;"></div> <form class="wc_comm_form wc_main_comm_form" method="post" enctype="multipart/form-data"> <div class="wc-field-comment"> <div class="wpdiscuz-item wc-field-textarea" > <div class="wpdiscuz-textarea-wrap "> <div class="wc-field-avatararea"> <img alt='avatar' src='https://secure.gravatar.com/avatar/?s=40&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/?s=80&d=mm&r=g 2x' class='avatar avatar-40 photo avatar-default' height='40' width='40' loading='lazy'/> </div> <textarea id="wc-textarea-0_0" placeholder="Начать обсуждение..." required name="wc_comment" class="wc_comment wpd-field"></textarea> </div> </div> <div class="clearfix"></div> </div> <div class="wc-form-footer" style="display: none;"> <div class="wpd-form-row"> <div class="wpd-form-col-left"> <div class="wpdiscuz-item wc_name-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-user"></i></div> <input value="" required="required" class="wc_name wpd-field" type="text" name="wc_name" placeholder="Имя*" maxlength="50" pattern=".{3,50}" title=""> </div> <div class="wpdiscuz-item wc_email-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-at"></i></div> <input value="" required="required" class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*"> </div> <div class="wpdiscuz-item wc_website-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-link"></i></div> <input value="" class="wc_website wpd-field" type="text" name="wc_website" placeholder="Website"> </div> </div> <div class="wpd-form-col-right"> <div class="wc-field-captcha wpdiscuz-item wc_captcha-wrapper"> <div class="wc-captcha-input"> <input type="text" maxlength="5" value="" autocomplete="off" required="required" name="wc_captcha" class="wpd-field wc_field_captcha" placeholder="Code" title="Вставьте код CAPTCHA"> </div> <div class="wc-label wc-captcha-label"> <a class="wpdiscuz-nofollow" href="#" rel="nofollow"><img alt="wpdiscuz_captcha" class="wc_captcha_img" src="https://ylianova.ru/wp-content/plugins/wpdiscuz/utils/captcha/captcha.php?key=c5f80bee85728e" width="80" height="26"/></a><a class="wpdiscuz-nofollow wc_captcha_refresh_img" href="#" rel="nofollow"><img alt="refresh" class="" src="https://ylianova.ru/wp-content/plugins/wpdiscuz/assets/img/captcha-loading.png" width="16" height="16"/></a> <input type="hidden" id="c5f80bee85728e" class="wpdiscuz-cnonce" name="cnonce" value="c5f80bee85728e" /> </div> <div class="clearfix"></div> </div> <div class="wc-field-submit"> <label class="wpd_label" title="Сообщать о всех новых ответах на мои комментарии"> <input id="wc_notification_new_comment-0_0" class="wc_notification_new_comment-0_0 wpd_label__checkbox" value="comment" type="checkbox" name="wpdiscuz_notification_type" /> <span class="wpd_label__text"> <span class="wpd_label__check"> <i class="fas fa-bell wpdicon wpdicon-on"></i> <i class="fas fa-bell-slash wpdicon wpdicon-off"></i> </span> </span> </label> <input class="wc_comm_submit wc_not_clicked button alt" type="submit" name="submit" value="Оставить комментарий"> </div> </div> <div class="clearfix"></div> </div> </div> <div class="clearfix"></div> <input type="hidden" class="wpdiscuz_unique_id" value="0_0" name="wpdiscuz_unique_id"> </form> </div> <div id = "wpdiscuz_hidden_secondary_form" style = "display: none;"> <div class="wc-form-wrapper wc-secondary-form-wrapper" id='wc-secondary-form-wrapper-wpdiscuzuniqueid' style='display: none;' > <div class="wpdiscuz-comment-message" style="display: block;"></div> <div class="wc-secondary-forms-social-content"></div><div class="clearfix"></div> <form class="wc_comm_form wc-secondary-form-wrapper" method="post" enctype="multipart/form-data"> <div class="wc-field-comment"> <div class="wpdiscuz-item wc-field-textarea" > <div class="wpdiscuz-textarea-wrap "> <div class="wc-field-avatararea"> <img alt='avatar' src='https://secure.gravatar.com/avatar/?s=48&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/?s=96&d=mm&r=g 2x' class='avatar avatar-48 photo avatar-default' height='48' width='48' loading='lazy'/> </div> <textarea id="wc-textarea-wpdiscuzuniqueid" placeholder="Присоединиться к обсуждению..." required name="wc_comment" class="wc_comment wpd-field"></textarea> </div> </div> <div class="clearfix"></div> </div> <div class="wc-form-footer" style="display: none;"> <div class="wpd-form-row"> <div class="wpd-form-col-left"> <div class="wpdiscuz-item wc_name-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-user"></i></div> <input value="" required="required" class="wc_name wpd-field" type="text" name="wc_name" placeholder="Имя*" maxlength="50" pattern=".{3,50}" title=""> </div> <div class="wpdiscuz-item wc_email-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-at"></i></div> <input value="" required="required" class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*"> </div> <div class="wpdiscuz-item wc_website-wrapper wpd-has-icon"> <div class="wpd-field-icon"><i class="fas fa-link"></i></div> <input value="" class="wc_website wpd-field" type="text" name="wc_website" placeholder="Website"> </div> </div> <div class="wpd-form-col-right"> <div class="wc-field-captcha wpdiscuz-item wc_captcha-wrapper"> <div class="wc-captcha-input"> <input type="text" maxlength="5" value="" autocomplete="off" required="required" name="wc_captcha" class="wpd-field wc_field_captcha" placeholder="Code" title="Вставьте код CAPTCHA"> </div> <div class="wc-label wc-captcha-label"> <a class="wpdiscuz-nofollow" href="#" rel="nofollow"><img alt="wpdiscuz_captcha" class="wc_captcha_img" src="https://ylianova.ru/wp-content/plugins/wpdiscuz/utils/captcha/captcha.php?key=c5f80bee8574dd" width="80" height="26"/></a><a class="wpdiscuz-nofollow wc_captcha_refresh_img" href="#" rel="nofollow"><img alt="refresh" class="" src="https://ylianova.ru/wp-content/plugins/wpdiscuz/assets/img/captcha-loading.png" width="16" height="16"/></a> <input type="hidden" id="c5f80bee8574dd" class="wpdiscuz-cnonce" name="cnonce" value="c5f80bee8574dd" /> </div> <div class="clearfix"></div> </div> <div class="wc-field-submit"> <label class="wpd_label" title="Сообщать о всех новых ответах на мои комментарии"> <input id="wc_notification_new_comment-wpdiscuzuniqueid" class="wc_notification_new_comment-wpdiscuzuniqueid wpd_label__checkbox" value="comment" type="checkbox" name="wpdiscuz_notification_type" /> <span class="wpd_label__text"> <span class="wpd_label__check"> <i class="fas fa-bell wpdicon wpdicon-on"></i> <i class="fas fa-bell-slash wpdicon wpdicon-off"></i> </span> </span> </label> <input class="wc_comm_submit wc_not_clicked button alt" type="submit" name="submit" value="Оставить комментарий"> </div> </div> <div class="clearfix"></div> </div> </div> <div class="clearfix"></div> <input type="hidden" class="wpdiscuz_unique_id" value="wpdiscuzuniqueid" name="wpdiscuz_unique_id"> </form> </div> </div> <div class="wpdiscuz-front-actions"> <div class="wpdiscuz-sbs-wrap"> <span><i class="far fa-envelope" aria-hidden="true"></i>  Подписаться  <i class="fas fa-caret-down" aria-hidden="true"></i></span> </div> <div class="clearfix"></div> </div> <div class="wpdiscuz-subscribe-bar wpdiscuz-hidden"> <form action="https://ylianova.ru/wp-admin/admin-ajax.php?action=addSubscription" method="post" id="wpdiscuz-subscribe-form"> <div class="wpdiscuz-subscribe-form-intro">Уведомление о </div> <div class="wpdiscuz-subscribe-form-option" style="width:40%;"> <select class="wpdiscuz_select" name="wpdiscuzSubscriptionType" > <option value="post">новые последующие комментарии</option> <option value="all_comment" >новые ответы на мои комментарии</option> </select> </div> <div class="wpdiscuz-item wpdiscuz-subscribe-form-email"> <input class="email" type="email" name="wpdiscuzSubscriptionEmail" required="required" value="" placeholder="Email"/> </div> <div class="wpdiscuz-subscribe-form-button"> <input id="wpdiscuz_subscription_button" type="submit" value="›" name="wpdiscuz_subscription_button" /> </div> <input type="hidden" id="wpdiscuz_subscribe_form_nonce" name="wpdiscuz_subscribe_form_nonce" value="1c06bf69d1" /><input type="hidden" name="_wp_http_referer" value="/raznoe-2/obrabotka-formy-php-rabota-s-formami-v-php-uchebnik-po-php-html-academy.html" /> <input type="hidden" value="5996" name="wpdiscuzSubscriptionPostId" /> </form> <div class="wpdiscuz_clear"></div> </div> <div id="wcThreadWrapper" class="wc-thread-wrapper"> <div class="wpdiscuz-comment-pagination"> </div> </div> <div class="wpdiscuz_clear"></div> </div> </div> <div id="wpdiscuz-loading-bar" class="wpdiscuz-loading-bar wpdiscuz-loading-bar-unauth"></div> </div><!--/.pad--> </section><!--/.content--> <div class="sidebar s1"> <a class="sidebar-toggle" title="Развернуть боковую панель"><i class="fa icon-sidebar-toggle"></i></a> <div class="sidebar-content"> <div id="search-2" class="widget widget_search"><form method="get" class="searchform themeform" action="https://ylianova.ru/"> <div> <input type="text" class="search" name="s" onblur="if(this.value=='')this.value='Введите поисковую фразу';" onfocus="if(this.value=='Введите поисковую фразу')this.value='';" value="Введите поисковую фразу" /> </div> </form></div><div id="nav_menu-2" class="widget widget_nav_menu"><h3>Рубрики</h3><div class="menu-2-container"><ul id="menu-2" class="menu"><li id="menu-item-5370" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5370"><a href="https://ylianova.ru/category/css">Css</a></li> <li id="menu-item-5371" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5371"><a href="https://ylianova.ru/category/html">Html</a></li> <li id="menu-item-5372" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5372"><a href="https://ylianova.ru/category/http">Http</a></li> <li id="menu-item-5373" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5373"><a href="https://ylianova.ru/category/javascript">Javascript</a></li> <li id="menu-item-5374" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5374"><a href="https://ylianova.ru/category/photoshop">Photoshop</a></li> <li id="menu-item-5375" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5375"><a href="https://ylianova.ru/category/verstka">Верстка</a></li> <li id="menu-item-5376" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5376"><a href="https://ylianova.ru/category/raznoe">Вопросы и ответы</a></li> <li id="menu-item-5377" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5377"><a href="https://ylianova.ru/category/maket">Макет</a></li> <li id="menu-item-5378" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5378"><a href="https://ylianova.ru/category/sajt">Развитие сайтов</a></li> <li id="menu-item-5380" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5380"><a href="https://ylianova.ru/category/sajt-2">Сайт</a></li> <li id="menu-item-5381" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5381"><a href="https://ylianova.ru/category/shablon-2">Шаблон</a></li> <li id="menu-item-5382" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5382"><a href="https://ylianova.ru/category/shrift-2">Шрифт</a></li> <li id="menu-item-5379" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-5379"><a href="https://ylianova.ru/category/raznoe-2">Разное</a></li> </ul></div></div><div id="categories-3" class="widget widget_categories"><h3>Рубрики</h3> <ul> <li class="cat-item cat-item-5"><a href="https://ylianova.ru/category/css">Css</a> </li> <li class="cat-item cat-item-4"><a href="https://ylianova.ru/category/html">Html</a> </li> <li class="cat-item cat-item-9"><a href="https://ylianova.ru/category/http">Http</a> </li> <li class="cat-item cat-item-10"><a href="https://ylianova.ru/category/javascript">Javascript</a> </li> <li class="cat-item cat-item-11"><a href="https://ylianova.ru/category/photoshop">Photoshop</a> </li> <li class="cat-item cat-item-17"><a href="https://ylianova.ru/category/verstka">Верстка</a> </li> <li class="cat-item cat-item-3"><a href="https://ylianova.ru/category/raznoe">Вопросы и ответы</a> </li> <li class="cat-item cat-item-16"><a href="https://ylianova.ru/category/maket">Макет</a> </li> <li class="cat-item cat-item-6"><a href="https://ylianova.ru/category/sajt">Развитие сайтов</a> </li> <li class="cat-item cat-item-13"><a href="https://ylianova.ru/category/raznoe-2">Разное</a> </li> <li class="cat-item cat-item-12"><a href="https://ylianova.ru/category/sajt-2">Сайт</a> </li> <li class="cat-item cat-item-15"><a href="https://ylianova.ru/category/shablon-2">Шаблон</a> </li> <li class="cat-item cat-item-7"><a href="https://ylianova.ru/category/shablon">Шаблоны</a> </li> <li class="cat-item cat-item-14"><a href="https://ylianova.ru/category/shrift-2">Шрифт</a> </li> <li class="cat-item cat-item-8"><a href="https://ylianova.ru/category/shrift">Шрифты</a> </li> </ul> </div><div id="custom_html-21" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><style>iframe,object{width:100%;height:480px}img{max-width:100%}</style><script type="text/javascript">jQuery(document).ready(function($){$('.mylink').replaceWith(function(){return'<a href="'+$(this).attr('data-url')+'" title="'+$(this).attr('title')+'">'+$(this).html()+'</a>'})});new Image().src="//counter.yadro.ru/hit?r"+escape(document.referrer)+((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+";"+Math.random();</script></div></div> </div><!--/.sidebar-content--> </div><!--/.sidebar--> </div><!--/.main--> </div><!--/.container-inner--> <footer id="footer"> <section id="footer-bottom"> <div class="container"> <a id="back-to-top" href="#"><i class="fa fa-angle-up"></i></a> <div class="pad group"> <div class="grid one-half"> <div id="copyright"> <p>Блог сумасшедшего сисадмина © 2020. Все права защищены.</p> </div><!--/#copyright--> <div id="credit"> <p><a href="/sitemap.xml" class="c_sitemap">Карта сайта</a> </p> </div><!--/#credit--> </div> <div class="grid one-half last"> </div> </div><!--/.pad--> </div><!--/.container--> </section><!--/#footer-bottom--> </footer><!--/#footer--> </div><!--/#wrapper--> <style type="text/css"> .archive #nav-above, .archive #nav-below, .search #nav-above, .search #nav-below, .blog #nav-below, .blog #nav-above, .navigation.paging-navigation, .navigation.pagination, .pagination.paging-pagination, .pagination.pagination, .pagination.loop-pagination, .bicubic-nav-link, #page-nav, .camp-paging, #reposter_nav-pages, .unity-post-pagination, .wordpost_content .nav_post_link,.page-link, .page-links,#comments .navigation, #comment-nav-above, #comment-nav-below, #nav-single, .navigation.comment-navigation, comment-pagination { display: none !important; } .single-gallery .pagination.gllrpr_pagination { display: block !important; } </style> <a id='wpdUserContentInfoAnchor' style='display:none;' rel='#wpdUserContentInfo' data-wpd-lity>wpDiscuz</a><div id='wpdUserContentInfo' style='overflow:auto;background:#FDFDF6;padding:20px;width:600px;max-width:100%;border-radius:6px;' class='lity-hide'></div><link rel='stylesheet' id='yarppRelatedCss-css' href='https://ylianova.ru/wp-content/plugins/yet-another-related-posts-plugin/style/related.css?ver=5.5.1' type='text/css' media='all' /> <link rel='stylesheet' id='pgntn_stylesheet-css' href='https://ylianova.ru/wp-content/plugins/pagination/css/nav-style.css?ver=5.5.1' type='text/css' media='all' /> <script type='text/javascript' src='https://ylianova.ru/wp-includes/js/jquery/jquery.form.min.js?ver=4.2.1' id='jquery-form-js'></script> <script type='text/javascript' src='https://ylianova.ru/wp-content/themes/anew/js/jquery.jplayer.min.js?ver=5.5.1' id='jplayer-js'></script> <script type='text/javascript' src='https://ylianova.ru/wp-content/themes/anew/js/scripts.js?ver=5.5.1' id='scripts-js'></script> <script type='text/javascript' src='https://ylianova.ru/wp-content/themes/anew/js/jquery.sharrre.min.js?ver=5.5.1' id='sharrre-js'></script> <script type='text/javascript' src='https://ylianova.ru/wp-includes/js/comment-reply.min.js?ver=5.5.1' id='comment-reply-js'></script> <script type='text/javascript' src='https://ylianova.ru/wp-includes/js/wp-embed.min.js?ver=5.5.1' id='wp-embed-js'></script> <script type='text/javascript' src='https://ylianova.ru/wp-content/plugins/easy-table-of-contents/vendor/smooth-scroll/jquery.smooth-scroll.min.js?ver=1.5.5' id='jquery-smooth-scroll-js'></script> <script type='text/javascript' src='https://ylianova.ru/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js?ver=2.0.3' id='js-cookie-js'></script> <script type='text/javascript' src='https://ylianova.ru/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js?ver=1.9.2' id='jquery-sticky-kit-js'></script> <script type='text/javascript' src='https://ylianova.ru/wp-content/plugins/easy-table-of-contents/vendor/waypoints/jquery.waypoints.min.js?ver=1.9.2' id='jquery-waypoints-js'></script> <script type='text/javascript' id='ez-toc-js-js-extra'> /* <![CDATA[ */ var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","width":"auto","scroll_offset":"30"}; /* ]]> */ </script> <script type='text/javascript' src='https://ylianova.ru/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js?ver=1.7' id='ez-toc-js-js'></script> <!--[if lt IE 9]> <script src="https://ylianova.ru/wp-content/themes/anew/js/ie/respond.js"></script> <![endif]--> </body> </html>