Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bazovaya_obrabotka_form.doc
Скачиваний:
3
Добавлен:
28.08.2019
Размер:
89.09 Кб
Скачать

Проверка формы

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

PHP имеет много строковых и числовых функций, которые можно использовать для проверки ввода пользователя.

Наиболее часто используемые функции представлены ниже:

  • is_string(string) – определяет, является ли переменная string строкой. Возвращает значение true или false.

  • is_int(string) или is_integer(string) – определяет, является ли переменная string целым числом. Возвращает значение true или false.

  • is_numeric(string) – определяет, является ли переменная string числовой строкой. Возвращает значение true или false.

  • is_double(string) или is_float(string) – определяет, является ли переменная string числом с плавающей точкой. Возвращает значение true или false

  • strlen(string) – возвращает длину строки string.

  • strpbrk(string1, string2) – ищет в строке string1 символ из строки string2, возвращает строку, начинающуюся с найденного символа (или FALSE, если ничего не найдено).

  • strtolower(string) – преобразует строку, хранящуюся в переменной string, в символы нижнего регистра.

  • strtoupper(string) — преобразует строку, хранящуюся в переменной string, в символы верхнего регистра.

Рассмотрим следующую страницу с формой XHTML.

Эта страница формы требует, чтобы пользователь ввел имя, имя учетной записи (имя пользователя) и пароль длиной не менее 4 символов, прежде чем происходит обработка формы. Такой тип проверки формы является важным, так как он помогает гарантировать, что ввод пользователя имеет правильный формат, который можно записать в базу данных, — текстовый файл, используемый для создания сообщения e-mail или для повторного вывода пользователю. Однако один XHTML не может выполнить проверку такого типа. Этот процесс выполняется с помощью перечисленных выше строковых и числовых функций PHP.

Отправка формы становится теперь трехшаговым процессом.

  1. Ввод данных формы и щелчок на кнопке отправки.

  2. Проверка ввода с помощью функций PHP.

  3. Обработка (запись в файл, генерация автоматического сообщения e-mail или воспроизведение ввода на экране) данных с помощью PHP.

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

<?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'];

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

if($valid_form == true)

{

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

}

}

?>

<!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="form_validate.php"/>

Enter Name: <input type="text" name="name"/>

Enter user name: <input type="text" name="uname"/>

Enter Password (must contain at least 4 characters): <input type="password" name="pass"/>

<input type="submit" name="submitB" value="Submit"/>

</form>

</body>

</html>

Когда нажимается кнопка отправки, применяется последовательность операторов для проверки содержимого полей формы. Сначала проверяется, что поле 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 (все поля формы содержат допустимые данные), можно начинать обработку формы, иначе блок обработки формы пропускается. Пользователь получает сообщение об ошибке, возникшей во время процесса проверки, и может начинать делать исправления.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]