Работа с формами
В данной статье я хочу показать некоторые возможности 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 " } } ?> <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>"; } |
который выводит следующую строчку: Вася Пупкин задал вопрос президенту: .....
В результате имеем:
Вот и сказочке конец, а кто слушал-молодец.
(Ю. Гришин)