PHP виконується на сервері: браузер надсилає HTTP-запит, код читає вхідні дані та повертає HTML або JSON. Ця модель лежить в основі форм, WordPress і більшості динамічних сайтів.
Як проходить HTTP-запит
- Браузер запитує URL або надсилає форму.
- Вебсервер запускає PHP.
- Код перевіряє method і вхідні дані.
- Сервер формує response.
- Браузер показує готовий результат.
$_GET і $_POST містять дані від користувача, тому їм не можна довіряти. POST приховує параметри з адресного рядка, але не робить їх безпечними чи секретними; для передавання потрібен HTTPS, а для використання — серверна перевірка.
Змінні, масиви та функції
$student = 'Олена';
$topics = array( 'PHP', 'HTTP', 'WordPress' );
function greeting( $name ) {
return 'Привіт, ' . $name;
}
Функція отримує arguments і повертає передбачуваний результат. Масив зберігає пов’язані значення, а назви змінних мають пояснювати їхнє призначення.
Повний приклад HTML-форми та POST-обробки
Форма надсилає ім’я методом POST. Сервер нормалізує пробіли, перевіряє правила і лише потім безпечно виводить значення.
<form method="post">
<label>Ім’я <input name="student_name" required></label>
<button type="submit">Надіслати</button>
</form>
<?php
$errors = array();
$name = '';
if ( 'POST' === $_SERVER['REQUEST_METHOD'] ) {
$raw_name = $_POST['student_name'] ?? '';
$name = trim( (string) $raw_name );
if ( '' === $name ) {
$errors[] = 'Вкажіть ім’я.';
} elseif ( mb_strlen( $name ) > 60 ) {
$errors[] = 'Ім’я не повинно перевищувати 60 символів.';
}
if ( $errors ) {
foreach ( $errors as $error ) {
echo '<p>' . htmlspecialchars( $error, ENT_QUOTES, 'UTF-8' ) . '</p>';
}
} else {
echo '<p>Дякуємо, ' . htmlspecialchars( $name, ENT_QUOTES, 'UTF-8' ) . '!</p>';
}
}
?>
Приклад не зберігає дані й навмисно показує лише один request flow. Після успішної операції, що змінює дані, часто використовують Post/Redirect/Get, щоб refresh не повторював POST.
Validation, sanitization та escaping
Validation відповідає на питання, чи значення відповідає правилам: ім’я не порожнє та не довше 60 символів. Sanitization очищує або нормалізує вхідні дані, коли це доречно; у прикладі trim() прибирає крайні пробіли. Не можна «очистити» неправильне значення так, щоб непомітно змінити намір користувача.
Escaping виконується під час output і залежить від контексту. У звичайному PHP для HTML-тексту використано htmlspecialchars(). У WordPress є context-specific functions: esc_html() для тексту, esc_attr() для attribute та esc_url() для URL.
Безпека й робота з помилками
- Перевіряйте request method та наявність очікуваних fields.
- Не вставляйте input у SQL; використовуйте prepared queries.
- Не показуйте stack trace або database errors публічно.
- Для WordPress actions додатково перевіряйте nonce і permissions: nonce захищає намір запиту, але не замінює authorization.
- Для email, числа чи URL використовуйте відповідну validation, а output завжди escape окремо.
Як це переходить у WordPress
У WordPress ті самі принципи реалізуються через hooks, REST routes, admin-post handlers або інші platform APIs. Необхідно користуватися WordPress functions для URL, permissions, database access та escaping замість власних обхідних рішень.
Frontend-основи можна закріпити на Web Development.
Куди рухатися далі
Ви готові до наступного кроку, якщо можете пояснити різницю між GET і POST, не довіряєте вхідним даним та розділяєте validation, sanitization й escaping. PHP & WordPress Development переносить ці принципи у templates, forms, hooks і WordPress API.