Получаем данные от элементов формы с помощью 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 — передача данных. Вы, наверное, не раз сталкивались с url вроде

site. ru/page.php?id=114841

или

формой с полями ввода

текста (регистрация, новый комментарий и тд). В этом и следующем уроках поговорим об передаче данных в 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

php

2 года назад

Фахмида Йесмин

$_GET и $_POST — это переменные-массивы PHP, которые используются для чтения данных, представленных в HTML-форме, с использованием методов get и post соответственно. Между этими двумя переменными существуют два основных различия. Значения массива $_GET видны в URL-адресе после отправки HTML-формы, но значения массива $_POST не видны. Массив $_GET используется для работы с незащищенными данными, а массив $_POST — для работы с защищенными и большими объемами данных. Как эти две переменные массива можно использовать в PHP для чтения данных из формы, показано в этом руководстве.

Пример 1: Использование $_GET[] для чтения данных из URL-адреса

Создайте файл 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
{
?>



   Использование PHP $_GET< /title> <br/></head> <br/><body> <br/><form method="get" action="#"> <br/>    <table> <br/>    <tr><td> <br/>     <label for="inputName">Введите свое имя :</label> <br/>    </td><td> <br/>     <input type="text" name="fname"><br/> <br/>    </td></tr><tr><td> <br/>     <label for="inputName">Введите свою фамилию:</label > <br/>    </td><td> <br/>     <input type="text" name="lname"><br/> <br/>    </td></tr><tr><td> <br/>     <label for="inputName" >Введите свой адрес электронной почты:</label> <br/>    </td><td> <br/>     <input type="text" name="email"><br/> <br/>    </td></tr><tr><td> <br/>     <label for="inputName">Введите свой телефон:</label> <br/>    </td><td> <br/>     <input type="text" name="phone"><br/> <br/>    </td></ tr><tr><td> <br/>     <input type="submit" name="submit" value="Submit"><br/> <br/>    </td><td></td></tr> <br/>     </ table> <br/></form> <br/> <script defer src="https://ylianova.ru/wp-content/cache/autoptimize/js/autoptimize_049c417a111c6ee7d49e60af87539bcd.js"></script></body> <br/></html> <br/> <?php <br/> }</p><p> ?></p><p> <strong> Вывод: </strong></p><p> Следующий вывод появится после запуска скрипта с веб-сервера.<img class="lazy lazy-hidden" loading='lazy' src="//ylianova.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/i.ytimg.com/vi/aNwU0Oxky60/hqdefault.jpg' /><noscript><img loading='lazy' src='/800/600/http/i.ytimg.com/vi/aNwU0Oxky60/hqdefault.jpg' /></noscript> Здесь поля формы заполняются фиктивными данными.</p><p></p><p> Следующий вывод появится после нажатия кнопки отправки. Здесь печатаются входные значения формы.</p><p></p><h3></h3><strong> Пример 3: Использование $_POST[] для чтения данных от пользователя </strong></h3><p> Создайте файл PHP со следующим скриптом, чтобы проверить использование массива $_POST[] для получения данных от пользователя. Форма входа пользователя разработана в скрипте для получения имени пользователя и пароля от пользователя. Форма будет отправлена ​​с методом post для чтения входных значений с помощью $_POST[]. PHP-скрипт проверит, нажата ли кнопка отправки, используя функцию isset(). Эта функция вернет true, когда пользователь нажмет кнопку отправки формы. Затем он проверит значения полей имени пользователя и пароля. Если пользователь вводит «admin» в поле имени пользователя и «238967» в поле прохода, тогда условный оператор вернет true и напечатает сообщение об успешном выполнении; в противном случае будет напечатано сообщение об ошибке.<img class="lazy lazy-hidden" loading='lazy' src="//ylianova.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/i.stack.imgur.com/TTugL.png' /><noscript><img loading='lazy' src='/800/600/http/i.stack.imgur.com/TTugL.png' /></noscript></p><p data-readability-styled="true"> <?php <br/> //Проверяем, нажата ли кнопка отправки <br/> if(isset($_POST[‘submit’])) <br/> { <br/>     //Проверяем имя и фамилию <br/>     if(trim($_POST[«username «]) == «admin» && trim($_POST[«pass»]) == «238967» ){ <br/>         echo «Авторизованный пользователь»; <br/>     } <br/>     else <br/>     { <br/>         echo «Недопустимый пользователь»;</p><p>     } <br/> } <br/> else <br/> { <br/> ?> <br/> <br/><html lang="en"> <br/><head> <br/>    <title>Использование PHP $_POST



   
   < td>
   

   

   

   

   
   

   

   

   

   




 
}

?>

Вывод:

После запуска сценария с веб-сервера появится следующий вывод. Здесь поля формы заполняются действительным именем пользователя и паролем.

Следующее сообщение об успешном завершении будет напечатано, если пользователь ввел правильное имя пользователя и пароль. Согласно сценарию допустимое имя пользователя — «admin» , а пароль — «238967» . Если какое-либо неверное значение представлено в любом из полей, то сообщение об ошибке « Недействительный пользователь, ».

Заключение

Использование формы является важной задачей любого веб-приложения, поскольку данные пользователя требуются в большинстве веб-приложений. Массивы $_GET[] и $_POST[] — очень полезные переменные PHP для чтения данных, отправленных пользователем через любую HTML-форму. Но форма должна содержать кнопку отправки для отправки введенных пользователем данных на сервер с помощью формы. В этом руководстве объясняется использование массива $_GET[] для чтения данных из URL-адреса и данных формы с помощью метода get, а также массива $_POST[] для чтения данных формы с помощью метода post.

Я надеюсь, что использование $_GET[] и $_POST[] станет понятным для читателей после прочтения этого руководства.

Об авторе

Фахмида Есмин

Я веду курсы веб-программирования. Мне нравится писать статьи или учебные пособия на различные темы в области ИТ. У меня есть канал на YouTube, на котором опубликовано множество типов руководств по Ubuntu, Windows, Word, Excel, WordPress, Magento, Laravel и т. д.: Tutorials4u Help.

Посмотреть все сообщения

Доступ для

посетителей :: FORT LEONARD WOOD

Пожалуйста, ознакомьтесь со следующей информацией, чтобы определить, нужен ли вам пропуск. В большинстве случаев тем, кто приходит на выпускной, он не нужен, если только:

1) Вы прилетаете или вылетаете из армейского аэродрома Форни/Уэйнсвилл-Стрит. Региональный аэропорт Роберта  или останавливаетесь в отеле на почте  (Candlewood Suites, Holiday Inn Express, Foster Lodge или Warrior Lodge)
2) Вы планируете поступить на почту до семейного дня или после выпускного
3) Вы не гражданин США

 

ВАЖНАЯ ИНФОРМАЦИЯ О НАСТОЯЩЕМ ИДЕНТИФИКАЦИОННОМ ДЕЙСТВИИ: 

Начиная с 1 июня 2023 г. , Ft. Леонард Вуд больше не будет принимать для доступа выданные штатом водительские права (DL) или выданные штатом удостоверения личности, которые не соответствуют стандартам Закона о реальном удостоверении личности от 2005 года. Лицо (лица), запрашивающее доступ с несоответствующим DL или удостоверением личности штата, должно будет представить вместе с несоответствующим DL/ID один из документов, указанных ниже, для подтверждения личности, чтобы получить пропуск или предоставить доступ к Ft. Леонард Вуд.

•             Паспорт США или паспорт-карта

•            Заверенное свидетельство о рождении (не фотокопия)

•            Карточка социального страхования (не фотокопия)

•            Школьное удостоверение личности с фотографией (учащиеся старших классов и колледжей)

•             Военный или призывной послужной список США (форма DD 214)

•             Морская карточка береговой охраны США №

•            Удостоверение личности транспортного работника (TWIC)

•            Документ племени коренных американцев США

•             НОВАЯ медицинская карта VA

•     Карточка постоянного жителя/Квитанция о регистрации иностранца (форма I-551)

•     Заграничный паспорт с временным (I-551) штампом или временной (I-551) распечатанной отметкой на машиночитаемой иммиграционной визе

•     Заграничный паспорт с формой I-94 или форму I-94A с тем же именем, что и в паспорте, и содержащую подтверждение неиммиграционного статуса иностранца, если срок действия подтверждения не истек и предлагаемое трудоустройство не противоречит ограничениям, указанным в форме.

Посетители, запрашивающие доступ без формы, удостоверяющей личность, соответствующей Закону о REAL ID, или не могут предоставить дополнительные документы, подтверждающие личность, как указано выше, могут быть лишены доступа. Все лица, запрашивающие доступ без сопровождения, будут по-прежнему проверяться в Национальном центре информации о преступности, прежде чем им будет выдан пропуск на установку.

 

ИНФОРМАЦИЯ О ТРАНСПОРТНОМ СРЕДСТВЕ: Посетители, проезжающие по почте, должны иметь при себе: действующую страховку и регистрацию вашего автомобиля. Если вы арендуете автомобиль, вы все равно должны иметь страховку. Это может быть личная страховая карта для автомобиля, которым вы владеете, или вы можете приобрести страховку, которую предлагает агентство по аренде (обычно известная как PAI; страхование от несчастных случаев).

 

ОГНЕСТРЕЛЬНОЕ ОРУЖИЕ В ЧАСТНОЙ СОБСТВЕННОСТИ:  Все, кто хочет привезти или хранить частное огнестрельное оружие в Форт-Леонард-Вуд для разрешенных юридических действий, должны надлежащим образом зарегистрировать огнестрельное оружие. Военнослужащие и члены их семей, проживающие на объекте, должны зарегистрировать все огнестрельное оружие по прибытии. Все военнослужащие, независимо от звания, должны иметь регистрационную форму огнестрельного оружия, подписанную их нынешним командиром подразделения. Для получения дополнительной информации нажмите здесь.

 

ДЛЯ ГРАЖДАН США:

Покажите у ворот выданные государством права или удостоверение личности и объясните, почему вы здесь. Полезно знать свое военное подразделение и место проведения мероприятия. Посетители в возрасте 17 лет и младше не обязаны предъявлять удостоверение личности.

Если вы хотите въехать на почту ДО Дня семьи или ПОСЛЕ выпускного, или остаться на ночь на посту во время вашего пребывания (в почтовом отеле). Вам потребуется действительное удостоверение личности, копия брони отеля (если вы остановились в отеле в Форт-Леонард-Вуд), пройдите проверку биографических данных, и каждый человек в вашей группе в возрасте 18 лет и старше должен пройти этот процесс, прежде чем будут выданы пропуска.