Создание формы
На странице about.php создадим форму для получения данных:
<form action="check_post.php" method="post">
<div class="mb-3">
<input type="text" name="username" class="form-control" placeholder="Введите имя">
</div>
<div class="mb-3">
<input type="email" name="email" class="form-control" placeholder="Введите email">
</div>
<div class="mb-3">
<input type="password" name="password" class="form-control" placeholder="Введите пароль">
</div>
<div class="mb-3">
<textarea name="message" class="form-control" placeholder="Введите сообщение"></textarea>
</div>
<input type="submit" value="Отправить" class="btn btn-success">
</form>
Атрибут action указывает страницу обработки данных (check_post.php), а method устанавливает метод передачи данных – POST. Форма содержит поля для имени пользователя, email, пароля и сообщения, а также кнопку «Отправить».
Обработка данных методом POST
Файл check_post.php:
<?php
print_r($_POST);
?>
Функция print_r($_POST) выводит содержимое глобального массива $_POST, содержащего данные, переданные методом POST. Массив является ассоциативным: ключи – имена полей формы, значения – введенные данные.
Проверка и валидация данных
<?php
$name = trim($_POST['username']);
$email = trim($_POST['email']);
$password = trim($_POST['password']);
$message = trim($_POST['message']);
if (strlen($name) <= 1) {
echo "Такого имени не существует";
} elseif (empty($email) || empty($password) || empty($message)) {
echo "Введите все данные";
} else {
echo "<h1>Все данные</h1>";
echo "<p>Имя: " . $name . "</p>";
echo "<p>Email: " . $email . "</p>";
// Хеширование пароля
$password = md5($password);
echo "<p>Пароль: " . $password . "</p>";
echo "<p>Сообщение: " . $message . "</p>";
}
?>
Код выполняет следующие действия: удаляет пробелы с помощью функции trim(); проверяет длину имени пользователя (меньше или равно 1 символу – выводится сообщение об ошибке); проверяет заполнены ли поля email, пароль и сообщение (если нет – выводится сообщение об ошибке); если ошибок нет, выводится информация о введенных данных, пароль хешируется с помощью функции md5().
Перебор массива с помощью цикла foreach
Для наглядности переберем массив $_POST с помощью цикла foreach:
<?php
foreach($_POST as $key => $value){
echo "<p>" . $key . ": " . $value . "</p>";
}
?>
Переадресация пользователя
Для переадресации после успешной обработки данных используем функцию header() и оператор exit():
<?php
// ... (код проверки данных) ...
if ( /* условия успешной обработки */ ) {
header('Location: about.php');
exit();
}
?>
Обработка данных методом GET
В форме изменим атрибут method на get и укажем другое действие, например, check_get.php. В файле check_get.php используем $_GET аналогично $_POST. Данные, переданные методом GET, отображаются в URL-адресе. Метод GET подходит для передачи небольшого количества данных, а POST – для больших объемов данных или конфиденциальной информации. GET полезен для создания динамических страниц, где параметры передаются через URL. Например, на главной странице index.php:
<?php
print_r($_GET);
?>
Параметры добавляются в URL так: index.php?param1=value1¶m2=value2.
Рассмотрены обработка форм с использованием методов POST и GET, валидация данных и переадресация пользователя. POST используется для отправки данных форм, а GET – для передачи небольшого количества данных через URL. Выбор метода зависит от контекста задачи.