Обробка GET-запиту в PHP

Коли ми створювали клієнтську частину проекту на Java, то говорили про поняття GET-запиту. Саме за допомогою GET-запиту ми надсилали дані на серверну частину PHP. У такому вигляді ми надсилали GET-запит із Java:

// Формуємо GET-запит для надсилання

String str = "http://puh/tovar.php"+makeGet();

Сторінку zboží.php ми вже додали до нашого проекту, давайте перейдемо на неї та запишемо теги для написання PHP-коду (див. рис. 5.23):

Весь подальший програмний код на поточному занятті ми будемо вводити у файлі нашого проекту tovar.php!

Додамо один рядок PHP-коду:

Java

Все працює нормально, українські букви відображаються правильно!

Зверніть увагу, що цього разу ми вказали не тільки назву сайту puh, але й ім'я конкретної сторінки - http://puh/tovar.php . Для запуску будь-якої сторінки, крім index.php, потрібно вказувати явно ім'я сторінки!

Надалі, як і зазвичай, не закриватимемо вікно браузера, а натискатимемо клавішу F5 для оновлення результату.

Для обробки параметрів, переданих через GET-запит PHP, існує спеціальний масив - $_GET.

Згадаймо. Назва будь-якої змінної, у тому числі і масиву, в PHP починається з символу долара ($)!

Щоб отримати значення параметра GET-запиту на ім'я достатньо в квадратних дужках масиву вказати ім'я параметра в лапках: $_GET["tov1"].

Змінимо наш PHP-код на наступний:

обробка

При відкритті PHP-сторінки, її програмний код, записаний усередині тегів, починає виконуватися як звичайна програма!

Нагадаємо, що мова програмування PHP має такий самий синтаксис, як і Java. Однак, між ними є певні відмінності. Деякі з них ми розглянули на першому занятті.

Розглянемо ще одневідмінність – додавання рядків (конкатенація) позначається в PHP символом крапка (.). У Java для цього застосовується символ плюс (+). Нижче наведено приклади складання рядків у Java та PHP:

//Складання рядків у PHP

//Складання рядків у Java

String str = "Hello!" + "Java";

З клієнтів нам передається GET-запит. Перш ніж обробити ці дані, необхідно перевірити його формат і переконатися, що є параметри з назвою "tov.." та наявністю хоча б одного значення, відмінного від нуля. Коли передаються всі нульові значення - нам не потрібно обробляти такий запит!

Видалимо наш перевірочний рядок:

А замість неї запишемо код PHP для перевірки:

поверне значення true, якщо масив $_GET містить дані, тобто. є параметри GET-запиту.

Змінною flag спочатку присвоюється значення falseі змінюється на true, якщо знайдено хоча б один параметр у GET-запиті з назвою на tov і значенням відмінним від нуля. І тут ми виводимо перевірочну фразу: " Формат правильний " .

Цикл for виконує десять кроків, значення змінної $iзмінюється від 1 до 10, т.к. це з тим, що наші параметри мають імена: tov1, tov2, … , tov10.

Змінна $tmpна кожному кроці циклу прийматиме значення: tov1, tov2, … , tov10 в результаті складання рядків. Далі значення змінної $tmp буде підставлятися у конструкцію if ($_GET[$tmp]). Це дорівнює запису: $_GET["tov1"],…, $_GET["tov10"]. Конструкція:if ($_GET[$tmp]) поверне значення true у тому випадку, якщо параметр з таким ім'ям дійсно є в GET-запиті і має ненульове значення.

Якщо знаходимо хоча б одне таке значення - змінюємо значення змінної - flag, і перериваємо цикл.

http://puh/tovar.php?name=Вася&famil=Петрів

Натисніть клавішу Enter на сторінцінічого не з'явилося (див. рис.5.18):

get-запиту

Це означає, що цей GET-запит не пройшов перевірку! І це правильно, тому що цей GET-запит містить зовсім інші параметри: name і famil.

Натискаємо Enter і бачимо, що на сторінці з'явилося повідомлення: Формат вірний! Наша перевірка працює правильно.

Ми не перевіряємо кількість переданих параметрів, оскільки з клієнтської частини на Java ми завжди надсилаємо саме десять параметрів.

Вивчаючи мову програмування Java, знайомилися з поняттям методу класу. ВPHP теж можна створювати класи, але на відміну від Java, в PHP метод може бути поза класом, тобто. без класу. Такий метод називається функцією. Принцип роботи функції такий самий, як і у методу. При виклику функції виконується програмний код, розташований усередині фігурних дужок функції. Запис функції починається зі службового словафункції. Наприклад:

У цьому випадку ім'я функції: Func.

У верхній частині нашого коду додамо функцію, виведення повідомлення перенесемо в цю функцію та отримаємо наступне:

echo "Формат вірний!";

Увага. Підсвічування коду для PHP працює за тими ж принципами, як і Java! Комбінація клавіш викликає допоміжне вікно підсвічування програмного коду.

На місце, де було виведення повідомлення – вставимо виклик функції:

// Якщо формат GET-запиту виявився вірним

Тепер, у разі успішної перевірки викликається функція runMySQL(), а при її викликі виконується програмний код у її фігурних дужках.

Функція runMySQL() буде виконувати запис даних в базу MySQL і повертати відповідь клієнтської частини на Java у вигляді залишків товарів, у форматі:

Це і є дані, які ми отримували з Java, а потім виводили в таблицю, колонку залишків товарів. Виведення повідомлення проправильному форматі видалимо:

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