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

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

PHP имеет много строковых и числовых функций, которые можно использовать для проверки ввода пользователя. Часть строковых функций, применяемых здесь, обсуждаются также в разделе 3-6. Наиболее часто используемые функции представлены ниже:

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(isset($_POST['submitB'])) {

//Проверяет, что было введено в поле 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://...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>

Пример 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 будет оцениваться как false ) проверяет введенный пароль с помощью функции strlen(). Эта функция возвращает длину пароля. Полученная длина сравнивается с числом 4. Если значение меньше 4, выводится ошибка. Иначе длина пароля будет допустима, и он присваивается скалярной переменной $password.

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








Дата добавления: 2015-04-19; просмотров: 715;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.