Файл: Лабораторна робота 5,1.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.05.2024

Просмотров: 50

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Головна особливість використання цього способу полягає в тому, що можна опустити апострофи в іменах змінних масиву. Для формування списку створюється три змінних. Потім за допомогою echo -операторов створюється форма. Вона нічим не відрізняється від звичайної HTML -формы, за винятком того, що там, де потрібні лапки, слід писати не подвійні, а одинарні лапки, інакше echo -оператор працюватиме неправильно.

Друга PHP -страница відображує вміст елементів управління, створених на першій сторінці. Спочатку виводиться вміст трьох прихованих полів форми. Це корисно, тому що зазвичай утримуване усього списку не передається. Останні рядки відображують вибраний користувачем пункт.

Поля введення паролів

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

Синтаксис:

Введіть пароль: <INPUT name="password" type="password">

де type - тип поля,

name - ім'я поля як елементу форми.

Обробка полів введення паролів і текстових полів нічим не відрізняється. Слідує, проте, відмітити, що якщо для передачі даних з поля такого типу використовувати метод GET, то пароль в рядку запиту не шифрується і буде видимим. Це не означає, що метод POST є безпечним методом передачі даних. Йдеться тільки про те, що інформація при передачі методом POST безпосередньо не показується користувачеві. Щоб дійсно забезпечити безпеку передаваних даних, необхідно застосовувати який-небудь спеціальний протокол для реального шифрування даних.

Кнопки submit і reset

Кнопка типу Submit використовується для передачі даних користувача на сервер.

Синтаксис:

<INPUT type="submit" name="submit" value="відправити">

де type - тип поля

name - ім'я поля як елементу форми

value - напис на кнопці.

Кнопка ініціює відправку даних користувача з форми на сервер. При натисненні на кнопку "submit", дані передаватимуться на обробник, вказаний в атрибуті "action" тега "form". При цьому в масиві "$_GET" або "$_POST" буде створена змінна "submit".

Кнопка типу Reset встановлює усі елементи управління на формі в їх первинний стан.

Синтаксис:

<INPUT type="reset" name="reset" value="скидання">

де type - тип поля

name - ім'я поля як елементу форми

value - напис на кнопці.

Вибір кнопки "reset " поверне значення полів в початковий стан. На практиці елементи Submit і Reset використовуються разом. При створенні складних форм завжди має бути присутньою кнопка, що дозволяє відправити дані з полів форми, і завжди має бути кнопка очищення вмісту полів.


Використання значень, повертаних формами, в PHP -сценариях

Вище були розглянуті усі різновиди елементів управління формами і приклади передачі на сервер їх вмісту засобами мови РНР. Проте, приклади, що наводяться досі, лише виводять вміст елементів управління на іншій Web -странице, при цьому, не перевіряючи інформацію, що вводиться, на коректність.

Далі представлений приклад спільного використання елементів управління формами і основних операторів мови PHP, для створення і обробки форми заявки на отримання кредиту в банку. Приклад складається з двох Web -страниц. На першій сторінці генерується форма для введення інформації користувача по отриманню кредиту. Друга сторінка набуває переданих значень і виконує деякі прості операції над ними, щоб прийняти або відхилити заявку на кредит.

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

Формула розрахунку кредиту обчислюється по трьох змінних:

  • змінна норми зарплати : річна зарплата користувача, розділена на 5;

  • змінна вікового цензу : вік користувача, розділений на 10, результат округляється в меншу сторону до найближчого цілого числа, а потім зменшується на одиницю;

  • змінна кредитної норми : норма зарплати, помножена на віковий ценз.

HTML -код форми для введення інформації представлений нижче.

<HTML>

<HEAD><TITLE>Заявка на отримання кредиту</TITLE>

</HEAD>

<BODY>

<B>Заявка на отримання кредиту в Alphabank.</B>

<FORM method="POST" action="loan.php">

Ім'я:<INPUT name="FirstName" type="text">

Прізвище:<INPUT name="LastName" type="text">

Вік:<INPUT name="Age" type="text" size="3"><BR>

<BR>АДРЕСА:<TEXTAREA name="Address" rows="4" cols="40">

</TEXTAREA><BR><BR>

Вкажіть розмір Вашої поточної заробітної плати :


<SELECT NAME="Salary">

<OPTION VALUE=0>ДО $10000</OPTION>

<OPTION VALUE=10000>$10000 - $25000</OPTION>

<OPTION VALUE=25000>$25000 - $50000</OPTION>

<OPTION VALUE=50000>Понад $50000</OPTION>

</SELECT><BR><BR>

Виберіть суму необхідного кредиту :<BR><BR>

<INPUT name="Loan" type="radio" value="1000">$1000 під 8,0% річних<br>

<INPUT name="Loan" type="radio" value="5000">$5000 під 11,5% річних<br>

<INPUT name="Loan" type="radio" value="10000">$10000 під 15,0% річних<BR><BR>

<INPUT type="submit" value="Подати заявку">

<INPUT type="reset" value="Очистити">

</FORM>

</BODY>

</HTML>

Реалізація цього коду представлена на малюнку 5.16.

Малюнок 5.16 - Форма заявки на кредит

Таким чином, як видно на малюнку 5.16, в цьому прикладі, при завантаженні Web -страницы на екрані з'являється форма для введення інформації, в яку користувачеві необхідно ввести свої дані і натиснути кнопку "Подати заявку", щоб відправити дані, або кнопку "Очистити", для скидання даних. Після цього підключиться обробник, вказаний в атрибуті "action" тега "form". У цьому прикладі це файл loan.php.

Код файлу-обробника представлений нижче.

<HTML>

<HEAD>

<TITLE>Заявка на отримання кредиту </TITLE>

</HEAD>

<BODY><B> Заявка на отримання кредиту в Alphabank </B>

<BR><BR>

<?php

$SalaryAllowance = $_POST['Salary']/5;

$AgeAllowance = ($_POST['Age']/10 - ($_POST['Age']%10)/10) - 1;

$LoanAllowance = $SalaryAllowance * $AgeAllowance;

echo "Прошений кредит: $_POST[Loan]<br>";

echo "Допустима сума кредиту : $LoanAllowance<br><br>";

if ($_POST['Loan'] <= $LoanAllowance) echo "Так, $_POST[FirstName]

$_POST[LastName], ми задовольнимо Вашу заявку";

if ($_POST['Loan'] > $LoanAllowance) echo "Вибачите,


$_POST[FirstName] $_POST[LastName], нині ми не можемо прийняти Вашу заявку";

?>

</BODY>

</HTML>

Реалізація цього коду представлена на малюнку 5.17.

Малюнок 5.17 - Результат подачі заявки

Як видно на малюнку 5.17, на екран виводиться інформація про замовлення користувача Іванова Івана, який просить суму кредиту $1000. У програмі обчислюється сума допустимого кредиту, в даному випадку $10000. При перевірці виявилось, що допустима сума кредиту більше прошеної суми, тобто 10000>1000. У такому разі, додаток видає позитивну відповідь, тобто банк може видати кредит цьому користувачеві, що і виводиться на екран.

При цьому при передачі інформації на сервер був використаний метод POST, оскільки цей метод приховує конфіденційну інформацію від користувачів.


Перевірка обов'язкових полів

При обробці даних з форм, користувачі Web -сайта можуть вводити в HTML -формы будь-які дані або не вводити їх зовсім, незалежно від того, як добре зроблена форма і що сценарій чекає отримати від користувача. Головний захист від таких проблем це перевірка інформації з форм, як на клієнтській, так і на серверній стороні. У мові PHP, що працює на стороні сервера, для цього використовується стандартний умовний оператор .

При обробці даних користувача з форм, при появі помилок буває необхідно перервати обробку даних. Для цього можна використовувати будь-який метод для закінчення обробки, але існує жорсткіший оператор мови PHP, який зупиняє усю роботу програми. Це оператор exit. Після того, як інтерпретатор мови PHP зустрічає оператор exit, ні HTML -код, ні PHP -код більше не обробляються і виконання скрипта уривається.

Нижче наведений приклад обробки заявок на отримання кредиту, виконаний стійкішим по відношенню до пользова¬тельским помилкам, за рахунок впровадження перевірки HTML -формы.

HTML -код форми для введення інформації представлений нижче.

<HTML>

<HEAD><TITLE>Заявка на отримання кредиту</TITLE>

</HEAD>

<BODY>

<B>Заявка на отримання кредиту в Alphabank.</B>

<FORM method="POST" action="loan.php">

<INPUT type="hidden" name="posted" value="true"> <BR>

Ім'я: <INPUT name="FirstName" type="text">

Прізвище: <INPUT name="LastName" type="text">

Вік: <INPUT name="Age" type="text" size="3">

<BR><BR>

Адреса:<TEXTAREA name="Address" rows="4" cols="40">

</TEXTAREA>

<BR><BR> Вкажіть розмір Вашої поточної заробітної плати :

<SELECT name="Salary">

<option value=0>До $10000</option>

<option value=10000>Oт $10000 до $25000</option>

<option value=25000>Oт $25000 до $50000</option>

<option value=50000>Понад $50000</option>

</SELECT>

<BR><BR>Виберіть суму необхідного кредиту : <BR>