PHP — Концепції Веб

328

Від автора: у цій статті ми розглянемо, як взаємодіє з PHP веб. Зокрема, як PHP може надавати динамічний контент в залежності від типу браузера, довільно згенерованих чисел або даних, введених користувачем. А також розповімо про перенаправлення браузера клієнта.

Ідентифікація браузера і платформи

PHP створює ряд змінних середовища, їх можна знайти на сторінці phpinfo.php, яка використовувалася для налаштування середовища PHP.
Одна з змінних середовища, встановлених PHP — HTTP_USER_AGENT, вона ідентифікує браузер користувача та операційну систему.

PHP надає функцію getenv() для доступу до значення всіх змінних середовища. Інформація, що міститься у змінній середовища HTTP_USER_AGENT, може використовуватися для створення динамічного контенту, відповідного браузеру. У наступному прикладі показано, як ви можете визначити браузер клієнта і операційну систему.

$bname,
‘version’ => $version,
‘platform’ => $platform,
‘pattern’ => $pattern
);
}
// тепер пробуємо це
$ua = getBrowser();
$yourbrowser = “Your browser:” . $ua[‘name’] . “” . $ua[‘version’] .
“on” .$ua[‘platform’] . ” reports:
“. $ua[‘userAgent’];
print_r($yourbrowser);
?>

На моєму комп’ютері цей код дає наступний результат. На вашому комп’ютері результат може бути іншим.

Your browser: Google Chrome 54.0.2840.99 on windows reports:
Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/54.0.2840.99 Safari/537.36

Відображення зображень у випадковому порядку

Функція PHP rand() використовується для генерації випадкового числа. Ця функція може генерувати числа в межах заданого діапазону. Генератор випадкових чисел слід зробити більш непередбачуваним, щоб не допустити генерації чисел по регулярному шаблоном. Це досягається з допомогою функції srand(), яка визначає початкове число генератора випадкових чисел. Наступний приклад демонструє, як ви можете показувати різні зображення кожного разу, вибираючи одне з чотирьох зображень –

“;
?>

Цей код дає наступний результат:

PHP — Концепції Веб

Використання HTML-форм

Найважливіше, що слід враховувати при роботі з HTML-формами і PHP, це те, що будь-який елемент форми на HTML-сторінці буде автоматично доступний для PHP-скриптів. У наведеному нижче прикладі, спробуйте помістити вихідний код в скрипт test.php.

“;
echo “You are “. $_POST[‘age’]. ” years old.”;
exit();
}
?>

Name:
Age:

Цей код дає наступний результат:

PHP — Концепції Веб

Змінна PHP за замовчуванням $_PHP_SELF використовується для імені PHP скрипта, і коли ви натискаєте кнопку «надіслати», буде викликатися той же PHP-скрипт, що влечен за собою наступне:

Для відправки даних користувача скрипт на сервері використовується метод «POST». Загалом існують два методу відправки даних в скрипт на сервері, вони розглянуті в статті Методи GET & POST.

Перенаправлення браузера

Функція PHP header() надає необроблені заголовки HTTP браузер — вона може використовуватися для редиректа в інше місце. Скрипт редіректу повинен розміщуватися в самому верху сторінки, щоб не допустити завантаження будь-якій іншій частині сторінки.

Місце призначення редіректу зазначено в заголовку Location: як аргумент функції header(). Після виклику цієї функції можна використовувати функцію exit() для припинення парсинга решті частини коду.

У наступному прикладі показано, як можна перенаправити запит браузера на іншу веб-сторінку. Спробуйте помістити вихідний код в скрипт test.php.

Choose a site to visit :

.
Tutorialspoint.com
Google Search Page

Цей код дає наступний результат:

PHP — Концепції Веб

Відображення діалогового вікна «Завантаження файлу»

Іноді нам буває потрібно надати таку можливість — щоб при натисканні посилання відобразити діалогове вікно Завантаження файлу, а не фактичний контент. Це можна дуже легко зробити за допомогою HTTP-заголовка.
HTTP заголовок буде відрізнятися від фактичного заголовка, в якому ми відправляємо Content-Type зі значенням text/html\n\n. У цьому випадку тип контенту буде — application / octet-stream, а до нього буде додано фактичне ім’я файлу.

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

#!/usr/bin/perl
# HTTP Header
print “Content-Type:application/octet-stream; name=\”FileName\”\r\n”;
print “Content-Disposition: attachment; filename=\”FileName\”\r\n\n”;
# Actual File Content
open( FILE, “Джерело: https://www.tutorialspoint.com/