Як уникнути проблеми пустих полів у формі реєстрації на HTML+PHP+MySQL
Порожні поля у формі реєстрації — поширена проблема, яка може зіпсувати базу даних і призвести до помилок у роботі сайту. Розглянемо, як захистити свій проект від введення пустих значень, використовуючи перевірки на стороні клієнта та сервера.
1. Перевірка на стороні клієнта (HTML/JavaScript)
HTML дозволяє додати атрибут required
, який не дає відправити форму, якщо поле не заповнене:
<form action="register.php" method="post">
<input type="text" name="username" placeholder="Логін" required>
<input type="email" name="email" placeholder="Email" required>
<input type="password" name="password" placeholder="Пароль" required>
<button type="submit">Реєстрація</button>
</form>
Це швидко і зручно для користувача, але такий захист легко обійти, якщо запит відправляють напряму (наприклад, через Postman або власний скрипт).
2. Перевірка на стороні сервера (PHP)
Сервер завжди має перевіряти введені дані:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = trim($_POST['username']);
$email = trim($_POST['email']);
$password = trim($_POST['password']);
if (empty($username) || empty($email) || empty($password)) {
die("Помилка: всі поля обов'язкові!");
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
die("Помилка: невірний email!");
}
$password_hash = password_hash($password, PASSWORD_DEFAULT);
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
$stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->execute([$username, $email, $password_hash]);
echo "Реєстрація успішна!";
}
?>
3. Висновок
Перевірка на стороні клієнта дає швидкий зворотний зв’язок користувачу, а перевірка на стороні сервера — гарантію безпеки даних. Поєднання обох методів забезпечує надійний захист від пустих полів та зберігає якість бази даних.
Коментувати