Php работа с формами: Передача параметров. Работа с формами в PHP – Работа с формами в PHP — Учебник по PHP — HTML Academy

Уроки PHP - Работа с формами

В данной статье я хочу показать некоторые возможности php. И я надеюсь, что вы, мой читатель, уже знакомы с html и сss, а если не знакомы, то вы на этом же сайте можете познакомиться с ними.

Итак, создаем форму. В файл lesson1.php вводим следующее:

<html>
<HEAD>
<META http-equiv=content-type content="text/html; charset=windows-1251">
<style>
.t2{ FONT-SIZE: 14px; color: black; FONT-FAMILY: Verdana, Helvetica, Arial; display:block; text-align: right;}
.t{ FONT-SIZE: 14px; color: red; FONT-FAMILY: Verdana, Helvetica, Arial; }
</style>
</HEAD>
<body >
<br><br><br><br><br>
<form action="lesson1.php" method="post" name="frt" >
<table align="center">
<tr><td>введите имя</td>
<td> <input type="text" size="15" maxlength="15" name="name1" value="<?php echo $_POST["name1"] ?>"></td></tr>
<tr><td>введите фамилию</td>
<td> <input type="text" size="15" maxlength="15" name="name2" value="<?php echo $_POST["name2"]?>"></td></tr>
<tr><td>введите ваш вопрос президенту</td>
<td><textarea name="text1" rows=7 cols=40 wrap="hard"><?php echo $_POST["text1"] ?></textarea></td></tr>
<tr><td colspan="2"><input type="hidden" name="confirm" value="12345"></td></tr>
<tr><td colspan="2" align="center"><input type="submit"; name="vvod"; value="ввести"; ></td></tr>
</table>
</body>
</html>

Для обработки данных, вводимых этой формой мы будем использовать этот же файл. Для передачи данных используем метод post. Если вы не знакомы с языком php, то тогда вы уже увидели незнакомые для себя строчки. Язык php тем хорош, что его операторы могут быть встроены в любом месте странички. Для встраивания операторов php используется тег <?php .....?>

Оператор echo используется для того, чтобы вставить в текст странички значение некоторой переменной. Переменная $_POST["name1"]

-это переменная php-интерпретатора и после нажатия кнопки «ввести» содержит данные, введенные в поле под названием name1-атрибут name тега input. Таким образом, строка value="<?php echo $_POST["name2"]?> означает, что при загрузке формы после нажатия на кнопку «ввести» данные, введенные пользователем, не будут потеряны, а будут снова отображены в этом поле.

И в результате мы имеем следующее:

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

<body >
<br><br>
<?php
if($_POST["confirm"])
{
$error="ошибка:";
$name1=$_POST["name1"];
$name2=$_POST["name2"];
$text1=$_POST["text1"];
if(strlen($name1)==0)
{$error.="вы не ввели ваше имя<br>";
}
if(strlen($name2)==0)
{$error.="вы не ввели вашу фамилию<br>";
}
if(strlen($text1)==0)
{$error.="вы не ввели вопрос президенту";
}
if($error!="ошибка:")
{print "$error ";
}
}

?>
<br><br><br>
<form action="lesson1.php" method="post" name="frt" >

<table align="center">
<tr><td>введите имя</td>
<td> <input type="text" size="15" maxlength="15" name="name1" value="<?php echo $_POST["name1"] ?>"></td></tr>
<tr><td>введите фамилию</td>
<td> <input type="text" size="15" maxlength="15" name="name2" value="<?php echo $_POST["name2"]?>"></td></tr>
<tr><td>введите ваш вопрос президенту</td>
<td><textarea name="text1" rows=7 cols=40 wrap="hard"><?php echo $_POST["text1"] ?></textarea></td></tr>
<tr><td colspan="2"><input type="hidden" name="confirm" value="12345"></td></tr>
<tr><td colspan="2" align="center"><input type="hidden" name="confirm" value="12345"; ></td></tr>
</table>
</body>
</html>

Я в форму ввел скрытое поле с заданным начальным значением. Я это сделал для того, чтобы проверять, была ли нажата кнопка «ввести» или нет. Оператор этой проверки: if($_POST["confirm"]). Функция strlen-определяет длину строки. И в программе я проверяю длину строки на 0, т.е. ввел ли пользователь хоть какие-нибудь данные или нет, и если нет, то я вывожу строчки с ошибками. Это делает функция print и она аналогична функции echo. Код там легкий и я думаю вы сами все поймете. В результате получаем:

и последний этап. Добавляем небольшой код и в результате текст файла:

<html>
<HEAD>
<META http-equiv=content-type content="text/html; charset=windows-1251">
<style>
.t2{ FONT-SIZE: 14px; color: black; FONT-FAMILY: Verdana, Helvetica, Arial; display:block; text-align: right;}
.t{ FONT-SIZE: 14px; color: red; FONT-FAMILY: Verdana, Helvetica, Arial; }
</style>
</HEAD>
<body >
<br><br>
<?php
if($_POST["confirm"])
{
$error="ошибка:";
$name1=$_POST["name1"];
$name2=$_POST["name2"];
$text1=$_POST["text1"];
if(strlen($name1)==0)
{$error.="вы не ввели ваше имя<br>";
}
if(strlen($name2)==0)
{$error.="вы не ввели вашу фамилию<br>";
}
if(strlen($text1)==0)
{$error.="вы не ввели вопрос президенту";
}
if($error!="ошибка:")
{print "<center class=\"t\">$error</center> ";
}
}

?>
<br><br><br>
<form action="lesson1.php" method="post" name="frt" >
<table align="center">
<tr><td>введите имя</td>
<td> <input type="text" size="15" maxlength="15" name="name1" value="<?php echo $_POST["name1"] ?>"></td></tr>
<tr><td>введите фамилию</td>
<td> <input type="text" size="15" maxlength="15" name="name2" value="<?php echo $_POST["name2"]?>"></td></tr>
<tr><td>введите ваш вопрос президенту</td>
<td><textarea name="text1" rows=7 cols=40 wrap="hard"><?php echo $_POST["text1"] ?></textarea></td></tr>
<tr><td colspan="2"><input type="hidden" name="confirm" value="12345"></td></tr>
<tr><td colspan="2" align="center"><input type="submit"; name="vvod"; value="ввести"; ></td></tr>
</table>
<?php
if($_POST["confirm"] && $error=="ошибка:")

{print "<br><br><table align=\"center\"><td> $name1 $name2 задал вопрос президенту:</td>";
print "<td>$text1</td></table>";
}

?>
</body>
</html>

Мы добавили код,

if($_POST["confirm"] && $error=="ошибка:")
{print "<br><br><table align=\"center\"><td> $name1 $name2 задал вопрос президенту:</td>";
print "<td>$text1</td></table>";
}

который выводит следующую строчку: Вася Пупкин задал вопрос президенту: .....
В результате имеем:

Вот и сказочке конец, а кто слушал-молодец.

(Ю. Гришин)


К списку всех уроков PHP

Работа с полями ввода форм в PHP

Работа с полями ввода форм

Последнее обновление: 1.11.2015

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

Обработка флажков

Флажки или чекбоксы checkbox могут находиться в двух состояниях: отмеченном (checked) и неотмеченном. Например:

Запомнить: <input type="checkbox" name="remember" checked="checked" />

Если флажок находится в неотмеченном состоянии, например:

Запомнить: <input type="checkbox" name="remember" />

то при отправке формы значение данного флажка не передается на сервер.

Если флажок отмечен, то при отправке на сервер для поля remember будет передано значение on:

$remember = $_GET['remember'];

Если нас не устраивает значение on, то с помощью атрибута value мы можем установить нужное нам значение:

Запомнить: <input type="checkbox" name="remember" value="1" />

Иногда необходимо создать набор чекбоксов, где можно выбрать несколько значений. Например:


ASP.NET: <input type="checkbox" name="technologies[]" value="ASP.NET" />
PHP: <input type="checkbox" name="technologies[]" value="PHP" />
RUBY: <input type="checkbox" name="technologies[]" value="Ruby" />

В этом случае значение атрибута name должно иметь квадратные скобки. И тогда после отправки сервер будет получать массив отмеченных значений:


$technologies = $_POST['technologies'];
foreach($technologies as $item) echo "$item<br />";

В данном случае переменная $technologies будет представлять массив, который можно перебрать и выполнять все другие операции с массивами.

Переключатели

Переключатели или радиокнопки позволяют сделать выбор между несколькими взаимоисключающими вариантами:


<input type="radio" name="course" value="ASP.NET" />ASP.NET <br>
<input type="radio" name="course" value="PHP" />PHP <br>
<input type="radio" name="course" value="Ruby" />RUBY <br>

На сервер передается значение атрибута value у выбранного переключателя. Получение переданного значения:


if(isset($_POST['course']))
{
	$course = $_POST['course'];
	echo $course;
}

Список

Список представляет элемент select, который предоставляет выбор одного или нескольких элементов:


<select name="course" size="1">
	<option value="ASP.NET">ASP.NET</option>
	<option value="PHP">PHP</option>
	<option value="Ruby">RUBY</option>
	<option value="Python">Python</option>
</select>

Элемент <select> содержит ряд вариантов выбора в виде элементов <option>:

Теперь получим выбранный элемент:


if(isset($_POST['course']))
{
	$course = $_POST['course'];
	echo $course;
}

Но элемент select также позволяет множественный выбор. И в этом случае обработка выбранных значений изменяется, так как сервер получает массив значений:


<select name="courses[]" size="4" multiple="multiple">
	<option value="ASP.NET">ASP.NET</option>
	<option value="PHP">PHP</option>
	<option value="Ruby">RUBY</option>
	<option value="Python">Python</option>
</select>

Такие списки имеют атрибут multiple="multiple". Для передачи массива также указываются в атрибуте name квадратные скобки:

name="courses[]"

Теперь получим в PHP выбранные значения:


<?php
if(isset($_POST['courses']))
{
	$courses = $_POST['courses'];
	foreach($courses as $item) echo "$item<br>";
}
?>

Получаем данные от элементов формы с помощью PHP

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

Первое, что нам нужно - это создать форму:

<form action="app/check.php" method="post">

<p>Имя: <input name="name" type="text"></p>

<p>Фамилия: <input name="surname" type="text"></p>

<p>E-mail: <input name="email" type="text"></p>

<p>Сообщение: <br /><textarea name="message" cols="30" rows="5"></textarea></p>

<p><input type='submit' value='Отправить'></p>

</form>

Обратите внимание на строку action="app/check.php" — это адрес обработчика формы, сюда будут отправляться данные формы, после нажатия кнопки Отправить. Также, на параметр

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

1. Давайте начнем. Создайте и откройте (через редактор) обработчик app/code.php - сначала, это просто пустая страница. Далее откройте тег PHP - <?php.

2. Нам нужно проверить, была ли отправлена форма, для этого мы будем использовать глобальную переменную $_SERVER и проверять REQUEST_METHOD

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    // наш код
}
?>

3. Дальше, если форма отправлена, мы можем получить данные от поля "Имя", для этого, какой-нибуть переменной присваиваем полученное значение от этого поля, например:

<?php
$name = $_POST['name']; 
?>

$_POST - переменная, в которой сохраняются данные, если форма была отправлена методом POST.

$_POST['name'] - получаем данные от поля name.

4. Тоже самое делаем и для остальных наших полей:

<?php
$name = $_POST['name'];

$surname = $_POST['surname'];
$email = $_POST['email'];
$message = $_POST['message'];
?>

5. Данные мы получили, теперь мы можем их вывести, для этого в страницу обработчика дописываем код:

<?php
$name = $_POST['name'];

$surname = $_POST['surname'];
$email = $_POST['email'];
$message = $_POST['message']; 

echo $name."<br />".$surname."<br />".$email."<br />".$message."<br />"; 
?>

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

Вот так, можно получать данные введенные в элементы формы.

Посмотреть исходники

Самоучитель (учебник) по PHP онлайн

Главная Страница » Самоучитель PHP 5 для чайников с примерами » Работа с HTML-формами

Мы уже говорили, что РНР позволяет работать со многими структурами будь то электронная почта, файлы, базы данных и т.д. Однако рассмотрение этих и других возможностей РНР мы начнем с более простого примера - HTML-формы. Наверное, многие из вас встречали HTML-формы, посещая Web-сайты сети Internet. Это может быть заполнение анкет с данными о пользователе, интерфейс гостевой книги и др. В данной главе мы рассмотрим схему передачи данных из HTML-формы в PHP-сценарий, структуры хранения этих данных, а также несколько полезных примеров использования HTML-форм.

Что такое HTML-форма?

HTML-форма - это средство языка HTML для ввода и передачи данных. Хотя они напрямую не относятся к РНР, для лучшего понимания материала этой главы рассмотрим основные принципы синтаксиса их создания. Любая форма начинается с тега ‹form› и заканчивается ‹/form›. Внутри открывающего тега могут указываться атрибуты, которые определяют параметры HTML-формы. Каждый из них имеет название и определенное значение. Нас будут интересовать атрибуты action и method. Внутри HTML-формы (между тегами ‹form› и ‹/form›) обычно помещают поля для ввода текста с клавиатуры, списки, кнопки и т.д. Их подробное описание можно найти в любой литературе, посвященной языку HTML.

Вернемся к рассмотрению тега ‹form›. Атрибут этого тега action указывает на файл, в котором будут обрабатываться данные из HTML-формы (листинг 10.1).

Листинг 10.1. HTML-форма.

‹html›
‹head›
‹title› HTML-форма ‹/title›
‹/head›
‹body›
‹form action="test.php"›
‹input type="Text" name="text"›
‹input type="Submit" value="Go!"›
‹/form›
‹/body›
‹/html›

В этом примере создается HTML-форма, которая содержит поле для ввода текста и кнопку для отправки данных. Если пользователь нажмет на кнопку из этой HTML-формы, то запустится файл с названием test.php, куда определенным способом передадутся данные из HTML-формы. Обратите внимание, что файл test.php и файл, содержащий HTML-форму, должны находиться в одной папке.

Поделиться с друзьями

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *