Формы и PHP
Формы часто используют для получения данных от пользователя и отправки в скрипт на PHP. Их создают на языке HTML. Для этого предназначен тег form, а также вложенные в него. Пример формы:
<form action=’run.php’ method=’GET’>
<p>
<label for=’n’>Имя:</label>
<input type=’text’ name=’name’ id=’n’ placeholder=’введите имя’>
</p>
<p>
<label for=’d’>Дополнительная информация:</label>
<textarea name=’add_info’ id=’d’ placeholder=’введите дополнительную информацию’></textarea>
</p>
<p>
<button type=’submit’>Отправить сведения</button>
</p>
</form>
В её поле action вписан адрес скрипта, который будет обрабатывать введенные данные. Атрибут method позволяет выбрать метод отправки. При использовании значения GET отправка производится через адресную строку браузера в виде run.php?name=Игорь&add_info=трудоустроен. Параметр POST позволяет отправлять сведения соответствующим методом. В этом случае они будут отправлены в теле HTTP-запроса и в адресной строке видны не будут.
Тег p использован просто для того, чтобы каждый параметр вводился на отдельной строке и с отступом. Тег label задает метку, которая пишется перед полем ввода. Эта метка привязывается к полю атрибутом for, через идентификатор.
Основные же элементы внутри этой формы — теги input и textarea. Они предназначены для ввода информации пользователем. Главный их атрибут — name. Он задаёт, под каким именем введенные в поля значения будут переданы в скрипт.
Теперь рассмотрим простой вариант скрипта для обработки этих данных. Он должен находиться в файле run.php в соответствии с адресом из атрибута action формы.
<?php
$name=$_GET[‘name’];
$add_info=$_GET[‘add_info’];
echo “Введенное имя — ”.htmlspecialchars($name).”<br/>”;
echo “Дополнительная информация:<br/>”;
echo htmlspecialchars($dop_info);
?>
В этом скрипте, после <?php, в первых двух строках выполняется получение введенных значений из формы в переменные $name и $add_info. Для этого используется суперглобальный массив $_GET, содержащий всю информацию, переданную методом GET. Если бы в форме использовался метод POST, то и тут надо было бы применить суперглобальный массив $_POST. Далее выполняется вывод на экран с помощью конструкции echo. Значения переменных выводятся не напрямую, а через функцию htmlspecialchars для фильтрации html-тегов и, таким образом, повышения безопасности.
Если исходная форма находится в том же файле, на который указывает её action, то можно подставлять ранее введенные значения обратно через атрибут value у полей ввода:
<input type=’text’ name=’name’ id=’n’ placeholder=’введите имя’ value=’<?=htmlspecialchars($_GET[‘name’])?>’>
В таком случае, если пользователь ошибся, он может не вводить значения заново, а просто исправить то, что ввёл до этого.
Для вывода значения на экран тут используется конструкция <?=значение?>. В качестве значения тут использовано $_GET[‘name’], обработанное функцией htmlspecialchars для обеспечения безопасности.
Комментарии
Отправить комментарий