Введение в программирование на PHP5




Проверка формы - часть 2


Следующий сценарий демонстрирует этот процесс.

<? php

//Проверка, была ли нажата кнопка отправки. Если да, начинается проверка данных формы.

if ($_POST['submitB'] == "Submit") { //Проверяет, что было введено поле name

$valid_form = true;

if ($_POST['name'] == "") { echo "Введите свое имя"; $valid_form = false; }

else { $name = $_POST['name']; }

if ($_POST['uname'] == "") { echo "Введите имя пользователя"; $valid_form = false; }

else { $username = $_POST['uname']; }

if ($_POST['pass'] == "") {

echo "Введите пароль"; $valid_form = false; }

elseif (strlen($_POST['pass']) < 4) {

echo "Пароль должен содержать не менее 4 символов"; $valid_form = false; }

else { $password = $_POST['pass']; }

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

if($valid_form == true) {

//код обработки формы находится здесь

} } ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD/XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>A Web Page</title> </head> <body>

<form method="post" action="http://msconline.maconstate.edu/tutorials/PHP/PHP07/form_validate.php"/> Enter Name: <input type="text" name="name"/> Enter user name: <input type="text" name="uname"/> Enter Password (must contain at least 6 characters): <input type="password" name="pass"/> <input type="submit" name="submitB" value="Submit"/> </form>

</body> </html>

Пример 7.3.

Когда нажимается кнопка отправки, применяется последовательность операторов для проверки содержимого полей формы. Сначала проверяется, что поле name не NULL (значение $_POST['name']). Если $_POST['name'] содержит значение NULL, это указывает, что пользователь не ввел имя в поле 'name'. Оператор echo используется для вывода пользователю сообщения об ошибке. Если $_POST['name'] содержит значение, то оно присваивается скалярной переменной $name, которая может использоваться позже в программе, когда начнется обработка данных. Затем проверяется поле 'user name' с помощью того же метода, который применялся для проверки поля 'name'. Если имя пользователя не введено, выводится сообщение об ошибке. Иначе значение присваивается скалярной переменной $username. Наконец, проверяется поле пароля 'password'. Проверка пароля является двухшаговым процессом: 1) проверяется, что пароль был введен, и 2) если пароль был введен, проверяется, что он содержит не меньше 4 символов. Первый оператор if проверяет, что пароль был введен. Оператор elseif (который выполняется, только если предыдущий оператор if будет оцениваться как true) проверяет введенный пароль с помощью функции strlen(). Эта функция возвращает длину пароля. Полученная длина сравнивается с числом 4. Если значение меньше 4, выводится ошибка. Иначе длина пароля будет допустима, и он присваивается скалярной переменной $password.

Если все поля формы содержат допустимые данные, можно начинать обработку формы. Можно задать флаг, чтобы помочь в отслеживании проверки. Сначала флаг задается (($valid_form = true) в начале блока кода. Если какое-то из полей формы не содержит допустимые данные, то флагу присваивается значение false ($valid_form). После проверки всех полей формы применяется финальный оператор if для проверки статуса флага ($valid_form). Если значение $valid_form будет true (все поля формы содержат допустимые данные), можно начинать обработку формы, иначе блок обработки формы пропускается. Пользователь получает сообщение об ошибке, возникшей во время процесса проверки, и может начинать делать исправления.




Содержание  Назад  Вперед