Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПБД_ЛАБ_5_2012.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
68.61 Кб
Скачать

Validate_data ( ) ;

if (count ($errors) > 0)

{

display_errors ();

display_form ();

}

else

{

process_data() ;

}

}

else

{

display_form ();

}

function validate_data ()

{

global $errors;

if ($_REQUEST ["Name"] == "")

{

$errors[] = "<FONT COLOR='RED'>Ім’я обов'язкове для введення</F0NT>";

}

}

function display_errors ()

{

global $errors;

foreach ($errors as $err)

{

echo $err, "<BR>";

}

}

function process_data()

{

echo "Ваше ім'я ".$_REQUEST ["Name"];

}

function display_form()

{

echo "<F0RM METHOD='POST' ACTION='phpvalidate.php'>";

echo "Введіть Ваше ім'я";

echo "<BR>";

echo "<INPUT NAME='Name' TYPE='TEXT'>";

echo "<BR><BR>";

echo "<INPUT TYPE=SUBMIT VALUE='OK'>";

echo "<INPUT TYPE=HIDDEN NAME='seen_already' VALUE= 'data'>;

echo "</FОRM>";

}

?>

</CENTER></BODY>

</HTML>

5.1.2 Перевірка числових полів

Часто потрібно перевірити, що в поле введено ціле або речове число, а не просто рядок. Одним з найбільш простих способів є перетворення рядка в число (за допомогою функції intval або floatval для цілих або речових чисел відповідно) і потім назад в рядок, а потім порівняння початковою і отриманою подвійним перетворенням рядка. Якщо вони збігаються, то початковий рядок містить коректне число. Для порівняння рядків можна використовувати функцію strcmp, яка повертає ненульове значення, якщо задані їй як параметри рядка різні. У прикладі 2 приведена подібна перевірка для цілих чисел.

Приклад 2. Поле, обов'язкове для введення, phpinteger.php

<HTML>

<HEAD>

<ТITLE>Цілочисельне поле</TITLE>

</HEAD>

<BODY><CENTER>

<Н1>Цілочисельне поле</Н1>

<?php

$errors = array ( ) ;

if (isset ($_REQUEST ["seen_already"]))

{

Validate_data ();

if (count ($errors) > 0)

{

display_errors () ;

display_form ();

}

else

{

process_data ();

}

}

else

{

display_form ();

}

function validate_data ()

{

global $errors;

if (strcmp($_REQUEST["Number"], strval (intval ($_REQUEST ["Number"]))))

{

$errors[] = "<FONT COLOR='RED'>Слідує ввести ціле число </FONT>";

}

}

function display_errors ()

{

global $errors;

foreach ($errors as $err)

{

echo $err, "<BR>";

}

}

function process_data()

{

echo "Ціле число дорівнює ".$_REQUEST ["Number"];

}

function display_form()

{

echo "<FORM METHOD='POST' ACTTON='phpinteger.php'>";

echo "Введіть ціле число";

echo "<BR>";

echo "<INPUT NAME='Number' TYPE='TEXT'>";

echo "<BR><BR>";

echo "<INPUT TYP'E=SUBMIT VALUE =' OK >" ;

echo "<INPUT TYPE=HIDDEN NAME='seen_already' VALUE='data'>";

echo "</FORM>";

}

?>

</CENTER></BODY>

</HTML>

Якщо користувач ввів некоректне число, то буде відображено відповідне повідомлення про помилку.