PHP $_POST
$_POST - это суперглобальная переменная PHP, которая используется для сбора данных формы после отправки HTML-формы с method="post".
$_POST также широко используется для передачи переменных.
PHP $_POST при обработке форм
На странице в примере ниже находится форма с одним текстовым полем и кнопкой отправки. При нажатии «Submit» введённое пользователем значение отправляется в файл, указанный в атрибуте action формы. Здесь это сама страница, поэтому один и тот же скрипт и показывает форму, и обрабатывает её. После отправки введённое значение будет находиться в $_POST:
Сбор данных формы с помощью $_POST
Прочитайте с помощью $_POST то, что пользователь ввёл в поле ввода:
Вывод: PHP-скрипт
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Имя: <input type="text" name="name">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
if (empty($name)) {
echo "Имя не заполнено";
} else {
echo "Привет " . $name;
}
}
?>
</body>
</html>
Разбор примера
HTML-форма выше отправляет данные на текущую страницу методом POST. Это означает, что данные формы доступны в суперглобальном массиве $_POST.
Вот как это работает:
- Атрибут
actionимеет значение$_SERVER['PHP_SELF'], поэтому данные формы возвращаются на текущую страницу - Атрибут
method="post"указывает браузеру отправить данные формы через HTTP POST - Элемент
$_POST['name']содержит то, что было введено в поле сname="name"
Примечание: Используйте isset(), чтобы проверить, установлена ли переменная $_POST, прежде чем обращаться к её значению. Это позволяет избежать ошибок при первой загрузке страницы (до отправки формы). Пример получает такую же защиту, сначала проверяя $_SERVER["REQUEST_METHOD"].
$_POST в ссылках
$_POST нельзя использовать для отправки данных через ссылки. Для отправки данных через ссылки используйте $_GET.
Поскольку данные POST не видны в URL, этот способ лучше подходит для отправки конфиденциальных данных, например паролей.