Получаем данные от элементов формы с помощью PHP
В этом уроки мы с помощью функций PHP получим данные, которые будет вводить пользователь в форму.
Первое, что нам нужно — это создать форму:
<form action="app/check.php" method="post"> <p>Имя: <input name="name" type="text"></p> <p>Фамилия: <input name="surname" type="text"></p> <p>E-mail: <input name="email" type="text"></p> <p>Сообщение: <br /><textarea name="message" cols="30" rows="5"></textarea></p> <p><input type='submit' value='Отправить'></p> </form>
Обратите внимание на строку action=»app/check.php» — это адрес обработчика формы, сюда будут отправляться данные формы, после нажатия кнопки Отправить. Также, на параметр name у полей формы, мы будем использовать эти имена при написании кода. Передавать данные будем методом — POST.
1. Давайте начнем. Создайте и откройте (через редактор) обработчик app/code.php — сначала, это просто пустая страница. Далее откройте тег PHP — <?php.
2. Нам нужно проверить, была ли отправлена форма, для этого мы будем использовать глобальную переменную $_SERVER
и проверять REQUEST_METHOD
<?php if($_SERVER['REQUEST_METHOD'] == 'POST') { // наш код } ?>
3. Дальше, если форма отправлена, мы можем получить данные от поля «Имя», для этого, какой-нибуть переменной присваиваем полученное значение от этого поля, например:
<?php $name = $_POST['name']; ?>
$_POST
— переменная, в которой сохраняются данные, если форма была отправлена методом POST.
$_POST['name']
— получаем данные от поля name.
4. Тоже самое делаем и для остальных наших полей:
<?php $name = $_POST['name']; $surname = $_POST['surname']; $email = $_POST['email']; $message = $_POST['message']; ?>
5. Данные мы получили, теперь мы можем их вывести, для этого в страницу обработчика дописываем код:
<?php $name = $_POST['name']; $surname = $_POST['surname']; $email = $_POST['email']; $message = $_POST['message']; echo $name."<br />".$surname."<br />".$email."<br />".$message."<br />"; ?>
Не рекомендуется просто так, без проверки, выводить введенные пользователем данные.
Пропускайте переменные хотя бы через функцию htmlspecialchars.
Вот так, можно получать данные введенные в элементы формы.
- Переменная $_POST
- Переменная $_SERVER
Посмотреть исходники
← Предыдущий урок☰ ОглавлениеСледующий урок →
Урок 9. Что такое метод POST в PHP или как обработать форму?
или
формой с полями вводатекста (регистрация, новый комментарий и тд). В этом и следующем уроках поговорим об передаче данных в PHP.
Метод состоит из двух частей: HTML c формой и полями и файла-обработчика на PHP.
Внимание! Для работы нам достаточно создать соответственно
Рассмотрим пример с комментариями — реализация авторизации пользователя на сайте :
Код HTML (файл post.html)
<html>
<head>
<title>Форма</title>
</head>
<body><!-- В form в атрибуте name указывается название формы и в будущем массива -->
<!-- В action название файла обработчика -->
<!-- В method указываем способ передачи post -->
<form name = 'myform' action = 'test_reg.php' method = 'post'>
Ваш логин: <input type = 'text' name = 'login' />
Ваш пароль: <input type = 'password' name = 'pass' />
<input type = 'submit' value = 'Войти' />
</form>
</body>
</html>
Теперь подробнее о методах передачи данных. Существует два вида GET (через url, открытый — можно изменить url вручную) и POST (через форму, закрытый). Отличие будет заключаться в содержании адресной строки, то есть url.
При получении данных переданных одним из этих способов в массив соответствующего методу типа ($_GET или $_POST) собираются данные. Также существует массив $_REQUEST, который может содержать и $_GET, и $_POST одновременно. Но это для других примеров. Рекомендую большинство данных передавать методом POST.
Теперь рассмотрим код обработчика.
Код PHP (в файле test_reg. php)
<?php
$login = $_POST['login']; // принимаем данные отправленные POST
$pass = $_POST['pass']; // login и pass - это name полей вводаif (($login == "Admin") && ($pass == "Pass"))
echo "Здравствуйте, Admin! Сегодня кофе или чай?)";else echo "Вы ввели неверную связку логин-пароль. Попробуйте ещё <a href='post.html'>Назад</a>";
?>
Вы можете видеть как в отдельные переменные мы записываем значение полей с соответствующими name в массиве $_POST, хотя также можно было собрать и в $_REQUEST.
В обработчике, пожалуй, проработаем условие авторизации — совпадают ли логин и пароль в форме с нашим выдуманным (соответственно Admin и Pass). И либо поздороваемся с входящим (Здравствуйте, Admin! Сегодня кофе или чай?), либо нет (Вы ввели неверную связку логин-пароль. Попробуйте ещё). Однако для создания полноценной авторизации Вам ещё надо ознакомиться с cookie, сессиями и базами данных.
Непосредственно в скрипте можно как угодно обрабатывать данные: дописывать, стирать, шифровать и так далее. Главное — это знать имя переменной (задаётся в HTML-форме) и дальше собирать их с помощью массивов $_POST, $_GET и $_REQUEST.
Спасибо за внимание!
Использование $_ GET и $_ POST в PHP
php2 года назад
Фахмида Йесмин
$_GET и $_POST — это переменные-массивы PHP, которые используются для чтения данных, представленных в HTML-форме, с использованием методов get и post соответственно. Между этими двумя переменными существуют два основных различия. Значения массива $_GET видны в URL-адресе после отправки HTML-формы, но значения массива $_POST не видны. Массив $_GET используется для работы с незащищенными данными, а массив $_POST — для работы с защищенными и большими объемами данных. Как эти две переменные массива можно использовать в PHP для чтения данных из формы, показано в этом руководстве.
Создайте файл PHP со следующим сценарием, чтобы считать значение имени пользователя из URL-адреса и распечатать значение имени пользователя с другим текстом. Если для имени пользователя не указано значение, сценарий напечатает другое сообщение.
//Проверяем, установлена переменная или нет <б>«. $_GET[‘имя пользователя’].»«;
}
else
{
// Печатать сообщение, если значение не присвоено
echo «Сейчас ни один пользователь не вошел в систему»;
}
?>
Вывод:
Следующий вывод появится, если не указан аргумент URL с именем имя пользователя .
Следующий вывод появится, если в URL-адресе указано имя пользователя , как показано ниже.
http://localhost/php/getpost.php?username=fahmida
Пример 2: Использование $_GET[] для чтения данных от пользователяСоздайте файл PHP со следующим сценарием для чтения данных из формы с помощью массива $_GET[]. В скрипте определена HTML-форма из пяти полей. Форма будет отправлена с методом get для чтения входных значений с помощью $_GETT[]. Поля: имя, фамилия, электронная почта, телефон и кнопка отправки. Когда пользователь нажимает кнопку отправки, функция isset() вернет true, а затем скрипт проверит, являются ли значения firstname и lastname пустыми или нет. Если какое-либо из значений поля пусто, то будет напечатано сообщение об ошибке. Если и имя, и фамилия содержат значения, то все значения полей формы будут напечатаны с использованием массива $_GET[].
//Проверяем, нажата ли кнопка отправки
if(isset($_GET[‘submit’]))
{
//Проверяем имя и фамилию
if($_GET[«fname»] == «» || $_GET[«lname»] == «» ){
echo «Имя или фамилия не могут быть пустыми»;
}
else
{
//Вывести отправленные значения
echo «First Name: «. $_GET[‘fname’]. «
«;
echo «Фамилия: «. $_GET[‘lname’].»
«;
echo «Электронная почта: «. $_GET[‘электронная почта’].»
«;
echo «Телефон: «. $_GET[‘телефон’];
}
}
else
{
?>