PHP для початківців: змінні, функції, форми та HTTP

Кошеня працює з PHP-кодом та інтерфейсом WordPress

PHP виконується на сервері: браузер надсилає HTTP-запит, код читає вхідні дані та повертає HTML або JSON. Ця модель лежить в основі форм, WordPress і більшості динамічних сайтів.

Як проходить HTTP-запит

  1. Браузер запитує URL або надсилає форму.
  2. Вебсервер запускає PHP.
  3. Код перевіряє method і вхідні дані.
  4. Сервер формує response.
  5. Браузер показує готовий результат.

$_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.

Хочете перейти від читання до практики?

Оберіть курс або спробуйте безкоштовне перше заняття.