Php работа с формами: PHP: Работа с формами — Manual

Обработка форм в PHP

В статье «Формы и их составляющие (form, input)» было рассказано, для чего нужны формы. Давайте создадим html страницу, с теле которой будет код примера из этой статьи. Это код формы авторизации на сайте:

<form action="/auth.php" method="POST">
   Пожалуйста, введите мэйл и пароль:<br>
   <input type="text" name="email" value="" placeholder="Ваш мэйл" required><br>
   <input type="password" name="password" value="" placeholder="Ваш пароль"><br>
   <input type="submit" value="Войти на сайт">
</form>

Теперь попробуем разобраться, как же в PHP правильно принимать данные, которые отправлены через HTML формы. У тега form есть атрибут action, который содержит относительную или абсолютную ссылку на страницу, куда будут передаваться данные из формы. В нашем случае данные будут переданы на страницу /auth.

php, которая находится в корневой папке сайта.

Передавать данные через форму можно двумя методами, которые называются POST и GET. Если опустить технические детали, то при GET передаче все данные формы попадут в адресную строку браузера. При POST данные будут скрыты и не появятся в адресной строке.

Учитывая, что в нашем примере передаётся логин и пароль пользователя, данные лучше не передавать в адресную строку. Поэтому в примере стоит method=»POST». Если же передавать такие секретные данные через адресную строку, то все серверы, через которые пройдёт ваш запрос, увидят эти секретные данные. Поэтому чаще всего в формах используют именно POST метод.

Теперь давайте разберём, что же должно находиться в файле /auth.php, который будет обрабатывать полученные из формы данные. Придумаем простейшую функцию обработки данных формы:

<?php
   $email = $_POST['email'];
   $password = $_POST['password'];
   if( $email == 'admin@mousedc.
ru' and $password == '123456'){ echo 'Вы успешно авторизованы'; }else{ echo 'Пароль или мэйл введены неверно'; } ?>

В первых двух строчках примера переменным $email и $password присваиваются значения равные значениям элементам массива $_POST. Как можно догадаться, это именно тот массив, который хранит все POST переменные, переданные на страницу. Если переменных не было передано, то $_POST — это пустой массив. Ключи массива $_POST — это названия полей формы. То есть то, что стоит в атрибуте «name=» … ««. А значения элементов массива — это то, что стоит в атрибуте «value=» … ««.

Если бы мы использовали в примере не POST, а GET метод, то нужно было бы писать $_GET вместо $_POST. $_GET — это точно такой же массив, как и $_POST, но он содержит GET переменные (переменные из адресной строки браузера). Если GET переменных нет, то массив $_GET будет пустым.

Существует ещё массив $_REQUEST. Он содержит как данные из $_POST, так и данные из $_GET. Поэтому вместо $_POST[’email’] или $_GET[’email’] можно писать $_REQUEST[’email’].

Наш пример утрирован — такая форма может работать для авторизации только одного пользователя. Потому что значения мэйла ‘[email protected]’ и пароля ‘123456’ не меняются. Но если использовать базу данных, то можно авторизовать разных пользователей через одну форму, находя комбинацию мэйла/пароля в базе.

Была ли эта статья полезна? Есть вопрос?

Закажите недорогой хостинг Заказать

всего от 290 руб

PHP Form — работа с формами в PHP

«PHP Form — работа с формами в PHP» – восьмой урок учебника PHP. В этом уроке мы поговорим про обработку форм средствами PHP.

PHP позволяет обрабатывать данные, которые пользователь ввел в поля формы. После активации кнопки submit данные отправляются на страницу – обработчик, указанную в поле action элемента <form>. На странице – обработчике располагается PHP скрипт, который выполняет определенные операции над полученными данными, например формирует и отсылает письмо по указанным пользователем реквизитам.

Передача данных обработчику.

Данные из формы передаются на сервер как последовательность пар имя/значение. Это значит, что имя каждого элемента формы (появляющееся в атрибуте NAME тега) связывается со значением этого элемента (введенным или выбранным пользователем). Формат имя/значение, используемый для передачи, имеет вид имя=значение.

Все данные, передаваемые из формы в программу–обработчик располагаются в следующих суперглобальных массивах:$_GET, $_POST, и $_REQUEST.

$_GET[] — содержит все значения, передаваемые методом GET.

$_POST[] –содержит все значения, передаваемые методом POST.

$_REQUEST[] –содержит все значения, передаваемые методами POST и GET.

Далее создадим небольшую форму, которая потребуется нам для работы с обработчиком, который мы создадим позднее:

<form action=»process. php» method=»post»>
Имя :
<input type=»text» name=»FName»/>
Фамилия:
<input type=»text» name=»LName»/>
Город :
<input type=»text» name=»City»/>
Сообщение:
<textarea name=»Message» cols=»30″ rows=»5″>
</textarea>
<input type=»submit» name=»submit» value=»Отправить»/>
</form>

Фамилия:

Город :

Сообщение:

После нажатия на кнопку submit данной формы все данные передаются обработчику process.php. Так как в этой форме используется метод POST, то все переменные будут расположены внутри массива $_POST.

Теперь создадим обработчик:

process.php

<?php
echo «Имя: <font color=»green»> » . $_POST[«FName»] . «</font><br/>»;
echo «Фамилия: <strong> » . $_POST[«LName»] . «</strong><br/>»;
echo «Город: <em> » . $_POST[«City»] . «</em><br/>»;
echo «<br/>»;
echo «Ваше сообщение : » . $_POST[«Message»];
?>

Расположим этот файл внутри директории со страницей формы. Теперь при использовании формы данные передадутся обработчику, который выведет на экран сообщение, содержащее пользовательские данные.

Массив $_Request

Использование суперглобального массива $_Request очень удобно, особенно когда не известно, каким методом были переданы данные.

Благодаря циклу foreach можно перебрать значения массива $_Request.

<?php
foreach($_REQUEST as $key => $value)
{
echo $key;
echo «: «.$value;
echo «<br/>»;
}
?>
_ym_uid: 146810290171613324
_ym_isad: 2
_gat: 1
_ga: GA1.2.1819166208.1468102901
_ym_visorc_27959370: w

В данном примере мы выводим на экран все значения массива $_Request. Сделано это может быть для проверки правильности ввода данных пользователем. То есть пользователь вводит данные в форму, нажимает отправить, но вместо обработки данных у него на экране высвечивается сообщение с введенными им данными и надписью подтвердить или отказаться. Данная идея применена на многих сайтах, да и вообще во многих программах.


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

В следующем уроке мы научимся проверять введенные пользователем данные перед непосредственной обработкой.

Формы GET и POST — Полное руководство по PHP

Учебное пособие по PHP5

TOC

Работа с формами:

При первоначальном создании PHP его основной целью была обработка данных форм.

Позже он был расширен, чтобы охватить почти все остальное, но вы скоро поймете, что обработка данных формы — довольно большая часть создания динамических веб-сайтов. Каждый раз, когда вы взаимодействуете с пользователем, это обычно происходит через форму, которая представляет собой тег HTML, содержащий другие теги HTML, представляющие различные элементы формы, например. текстовое поле, переключатель, список или один из других элементов.

На самом деле это не руководство по HTML, и мы не будем углубляться в различные элементы, но мы взглянем на тег формы, так как важно понять, как правильно использовать его вместе с PHP. Вот простая форма, в которой мы также используем немного PHP.

 
Твое имя:

Довольно стандартная форма. Единственное, что мы делаем в PHP, — это используем массив $_SERVER для получения текущего имени файла скрипта и помещения его в атрибут действия тега формы. Это гарантирует, что после отправки формы данные будут отправлены на ту же страницу. Также можно отправить данные формы на другую страницу, но в этих примерах мы разместим их на той же странице, главным образом потому, что это удобно и просто. Мы указываем, что метод, который будет использоваться при отправке формы, должен быть POST. Другой альтернативой является метод GET, и хотя существует множество технических отличий, вы должны сосредоточиться на том факте, что отправленные данные окажутся в разных местах в зависимости от используемого метода. Кроме того, GET-данные отображаются в поле адреса браузера в качестве параметров, а POST-данные пользователю практически не видны.

Приведенный выше пример немного скучен. На самом деле он ничего не делает, как вы увидите, если протестируете его. В этом нет ничего волшебного, но, к счастью, PHP прекрасно работает с формами. Давайте расширим пример и сделаем что-нибудь с данными, отправленными через форму.

   $_POST["txtName"];
}
?>

    Твое имя:
    
    
 

Единственная настоящая магия здесь — это массив $_POST. Каждый раз при отправке формы этот массив заполняется всеми возможными значениями из отправляемой формы. В этом случае после отправки формы массив будет содержать два элемента с ключами «txtName» и «btnSendForm» и их соответствующими значениями. Это довольно круто, потому что дает нам легкий доступ к значениям, отправленным пользователем. Вот почему мы можем сообщить пользователю его или ее имя, выведя значение из массива $_POST, где «txtName» — это ключ.

Теперь с формами POST данные должны поступать из запроса POST на страницу. Как упоминалось ранее, формы GET добавляют свои данные к URL-адресу страницы, то есть адресу, который вы видите в своем браузере. Это, конечно, означает, что вам не обязательно отправлять данные в массив $_GET с помощью формы. Вы можете так же легко написать значения в поле адреса самостоятельно. Например, рассмотрим этот пример страницы, где у нас даже нет формы:

  

Если вы откроете страницу в браузере, вы ничего не увидите. Однако попробуйте вызвать файл с параметром имени, например:

file.php?name=John Doe

В этом примере показано, что данные GET могут поступать непосредственно от пользователя. Вы можете попробовать изменить первый пример в этой главе — просто замените post на get, и он будет работать точно так же.

Оба эти примера были очень простыми, но, к счастью, это в основном потому, что с PHP довольно легко обрабатывать данные формы. Тем не менее, есть несколько вещей, связанных с безопасностью, которые вы должны знать. Мы еще поговорим об этом в следующей главе.


Предыдущий Следующий

HTML-форма не отправляется в php-скрипт

ОБНОВЛЕНИЕ: код работает в Microsoft Edge, но не в Firefox. Тестирование других браузеров. Почему это не работает в Firefox? КОНЕЦ ОБНОВЛЕНИЯ

Я новичок в PHP-скриптах, и я не знаю, правильно ли я понял это или нет, может ли кто-нибудь проверить меня? Эта форма вообще не обращается к моему php-скрипту. PHP-скрипт находится в правильном каталоге. Страница просто обновляется после нажатия кнопки «Отправить».

 
<дел
data-anijs="если: наведение курсора, на: #contactContent, сделать: zoomIn анимированный, после: holdAnimClass">
<дел>
<дел> Неправильный адрес электронной почты
<дел data-anijs="если: наведение курсора, на: #contactContent, сделать: zoomIn анимированный, после: holdAnimClass"> Пожалуйста, введите сообщение