Работа с формами



В данной статье я хочу показать некоторые возможности 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 class="t2">введите имя</td>
<td> <input type="text" size="15" maxlength="15" name="name1" id="name1" value="<?php echo $_POST["name1"] ?>"></td></tr>
<tr><td class="t2">введите фамилию</td>
<td> <input type="text" size="15" maxlength="15" name="name2" id="name2" value="<?php echo $_POST["name2"]?>"></td></tr>
<tr><td class="t2">введите ваш вопрос президенту</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" id="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 class="t2">введите имя</td>
<td> <input type="text" size="15" maxlength="15" name="name1" id="name1" value="<?php echo $_POST["name1"] ?>"></td></tr>
<tr><td class="t2">введите фамилию</td>
<td> <input type="text" size="15" maxlength="15" name="name2" id="name2" value="<?php echo $_POST["name2"]?>"></td></tr>
<tr><td class="t2">введите ваш вопрос президенту</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" id="confirm" value="12345"></td></tr>
<tr><td colspan="2" align="center"><input type="hidden" name="confirm" id="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 class="t2">введите имя</td>
<td> <input type="text" size="15" maxlength="15" name="name1" id="name1" value="<?php echo $_POST["name1"] ?>"></td></tr>
<tr><td class="t2">введите фамилию</td>
<td> <input type="text" size="15" maxlength="15" name="name2" id="name2" value="<?php echo $_POST["name2"]?>"></td></tr>
<tr><td class="t2">введите ваш вопрос президенту</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" id="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