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

Методичні вказівки до лабораторних робіт з дисціпліни “Проектування баз даних та експертних систем”

для студентів спеціальності 7.05010102 „Інформаційні технології проектування”

Укл: доц. Андріянов О.В.

Лабораторна робота №5 контролювання даних

Мета роботи – ознайомиться з прийомами перевірки коректності введених даних різних типів.

5.1 Теоретичні відомості

При розробці додатків вельми важливою є перевірка введених даних на коректність і відображення адекватних повідомлень про помилки введення при їх наявності. Дані в текстовому полі можна використовувати для перевірки факту повторного виклику скрипта. Подібний прийом не завжди є коректним, оскільки поля даних можуть бути не обов'язковими для заповнення. Замість цього для цієї мети часто використовується приховане поле. Якщо поле не визначене, отже, це перший запуск скрипта, і необхідно сформувати заголовну сторінку. У коді це виглядає таким чином:

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

{

..

}

else

{

displayform () ;

}

Перевірка введених даних на коректність виконується за допомогою функції validate_data, яка при виявленні помилок заносить їх опис в глобальний масив $errors. Якщо після виклику validate_data масив $errors не є порожнім (що легко перевірити за допомогою функції count), здійснюється виведення всіх повідомлень і повторне відображення форми для введення даних для того, щоб користувач мав можливість виправити допущені помилки. Якщо ж помилок не виявлено, можна перейти до обробки даних:

$errors = array () ;

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

{

validate_data ( ) ;

if (count ($errors) > 0)

{

display_errors () ;

display_form ( ) ;

}

else

{

process_data ( ) ;

}

}

else

{

display form ();

}

Залежно від структури форми функція для перевірки даних validate_data має різні реалізації.

Функція display_errors призначена для відображення всіх повідомлень щодо помилок і може виглядати таким чином:

function displayerrors ()

{

global $errors;

foreach ($errors as $err)

{

echo $err . ' <BR> ' ;

}

Функція process_data для обробки даних може мати будь-який вигляд залежно від вирішуваного прикладного завдання. Нарешті, функція display_form відображає форму для введення даних. Форма може містити будь-яку комбінацію полів, але у будь-якому випадку в ній має бути присутнім приховане поле seen_already, яке використовується для визначення факту повторного запуску скрипта:

function displayform ()

{

echo "<FORM Меthod=’post ACTION='phpvalidate.php'>";

.

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

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

echo "</FORM>";

}

5.1.1 Поле обов'язкове для заповнення

Перевірка на наявність даних в певному полі потрібна достатньо часто. Наприклад, додаток запрошує у користувача його ім'я і відображає його. Якщо поле заповнене, все функціонує коректно. Але що робити в тому випадку, якщо користувач залишив текстове поле порожнім? Для цього функція validate_data виконує перевірку на наявність даних в полі Name і у випадку, якщо це не так, додає повідомлення про помилку в масив $errors:

Функція process_data просто відображає введене ім'я, а функція display_form виводить форму з єдиним текстовим полем. Все застосування цілком приведене в прикладі 1.

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

<HTML>

<HEAD>

<ТІTLE>Обов'язкове поле</ТIТLЕ>

</HEAD>

<BODY><CENTER>

<Н1>Обов'язкове поле</H1>

<?php

$errors = array () ;

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

{