Get and post functions in php

Массивы $_POST и $_GET в PHP. Обработка форм

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

Через формы можно отправлять как простую текстовую информацию, так и файлы.

Большую часть времени программирования на PHP вы будете так или иначе работать с формами и данными из них.

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

PHP содержит множество средств для работы с формами. Это позволяет очень просто решать типичные задачи, которые часто возникают в веб-программировании:

  • Регистрация и аутентификация пользователя;
  • Отправка комментариев на форумах и социальных сетях;
  • Оформление заказов.

Практически любой современный сайт содержит как минимум несколько разных HTML-форм.

Отправка формы

Рассмотрим один типичный пример — форма обратной связи. Для связи пользователей с авторами сайта, как правило, используются формы обратной связи, где человек указывает имя, почту для обратной связи и текст своего сообщения.

Такая форма в HTML может выглядеть следующим образом:

 

Это очень простая форма, состоящая из трёх полей и одной кнопки отправки.

Почти весь приведённый код описывает внешний вид и содержание формы, но следует обратить внимание на два атрибута тега , которые нужны для указания на способ обработки данных:

method — этот атрибут используется для определения метода HTTP, который будет использован для передачи данных на сервер. Вы уже знакомы с HTTP-методом GET, предписывающим серверу просто вернуть определённый документ.

Метод POST сообщает о намерении передать на сервер некоторую информацию, что, впрочем, не отменяет последующее получение контента.

action — содержит адрес PHP-скрипта, который должен обработать эту форму.

После нажатия на кнопку «отправить», браузер выполняет POST запрос со введёнными данными на адрес, указанный в атрибуте action.

Обработка формы

После отправки формы управление передаётся PHP-скрипту, который должен получить переданные данные, выполнить с ними какие-либо действия (например, сохранить в базе данных) и показать результат.

Результатом может быть какое-нибудь сообщение об успешном завершении операции, например, «ваши данные успешно отправлены».

Поэтому требуется в первую очередь научиться получать данные из формы в сценарии.

В PHP это делается легко — все данные из формы находятся в глобальном ассоциативном массиве $_POST . Этот массив всегда будет неявно присутствовать в сценарии, если он был загружен по методу POST.

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

Email: " . $_POST['email']); print("
Сообщение: " . $_POST['message']); > ?>

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

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

Отправка файлов

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

Тут есть два важных отличия от первого примера:

  • Добавился новый атрибут enctype, который всегда должен иметь значение multipart/form-data . Если его не будет, то файл не отправится.
  • Сам файл загружается при помощи поля с типом file.

В PHP загруженный файл будет доступен в другом специальном массиве — $_FILES .

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

Для начала нужно убедиться, что в рабочей директории проекта существует папка для хранения загруженных файлов. Пусть она называется uploads .

Перемещение загруженного файла

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

С текущим адресом всё крайне просто — он уже находится в массиве $_FILES . Новый адрес файла, в свою очередь, состоит из пути к папке и имени файла. Так как папка uploads находится там же, где и текущий сценарий, получить путь к ней можно так: dirname(__FILE__ )`.

Код для перемещения файла в новую папку:

Функция move_uploaded_file() выполняет два действия:

  • Проверяет, что файл действительно загружен через форму.
  • Перемещает загруженный файл по новому адресу.

Валидация формы

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

Так, например, при регистрации пользователя на сайте, он должен заполнить поля с адресом электронной почты и придумать себе пароль. Оба поля обязательны к заполнению, но значение из поля email также должно быть корректным email-адресом.

Помимо текстовых значений формы, можно проверять формат и размер загружаемых файлов.

Общий подход к валидации

При выполнения валидации любой формы порядок действий будет всегда одним:

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

Дополнительные материалы:

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

Источник

PHP — GET & POST Methods

There are two ways the browser client can send information to the web server.

Before the browser sends the information, it encodes it using a scheme called URL encoding. In this scheme, name/value pairs are joined with equal signs and different pairs are separated by the ampersand.

name1=value1&name2=value2&name3=value3

Spaces are removed and replaced with the + character and any other nonalphanumeric characters are replaced with a hexadecimal values. After the information is encoded it is sent to the server.

The GET Method

The GET method sends the encoded user information appended to the page request. The page and the encoded information are separated by the ? character.

http://www.test.com/index.htm?name1=value1&name2=value2
  • The GET method produces a long string that appears in your server logs, in the browser’s Location: box.
  • The GET method is restricted to send upto 1024 characters only.
  • Never use GET method if you have password or other sensitive information to be sent to the server.
  • GET can’t be used to send binary data, like images or word documents, to the server.
  • The data sent by GET method can be accessed using QUERY_STRING environment variable.
  • The PHP provides $_GET associative array to access all the sent information using GET method.

Try out following example by putting the source code in test.php script.

"; echo "You are ". $_GET['age']. " years old."; exit(); > ?>  
Name: Age:

It will produce the following result −

Forms

The POST Method

The POST method transfers information via HTTP headers. The information is encoded as described in case of GET method and put into a header called QUERY_STRING.

  • The POST method does not have any restriction on data size to be sent.
  • The POST method can be used to send ASCII as well as binary data.
  • The data sent by POST method goes through HTTP header so security depends on HTTP protocol. By using Secure HTTP you can make sure that your information is secure.
  • The PHP provides $_POST associative array to access all the sent information using POST method.

Try out following example by putting the source code in test.php script.

 echo "Welcome ". $_POST['name']. "
"; echo "You are ". $_POST['age']. " years old."; exit(); > ?>
Name: Age:

It will produce the following result −

Forms

The $_REQUEST variable

The PHP $_REQUEST variable contains the contents of both $_GET, $_POST, and $_COOKIE. We will discuss $_COOKIE variable when we will explain about cookies.

The PHP $_REQUEST variable can be used to get the result from form data sent with both the GET and POST methods.

Try out following example by putting the source code in test.php script.

"; echo "You are ". $_REQUEST['age']. " years old."; exit(); > ?>  
Name: Age:

Here $_PHP_SELF variable contains the name of self script in which it is being called.

It will produce the following result −

Источник

Get and post functions in php

Learn Latest Tutorials

Splunk tutorial

SPSS tutorial

Swagger tutorial

T-SQL tutorial

Tumblr tutorial

React tutorial

Regex tutorial

Reinforcement learning tutorial

R Programming tutorial

RxJS tutorial

React Native tutorial

Python Design Patterns

Python Pillow tutorial

Python Turtle tutorial

Keras tutorial

Preparation

Aptitude

Logical Reasoning

Verbal Ability

Company Interview Questions

Artificial Intelligence

AWS Tutorial

Selenium tutorial

Cloud Computing

Hadoop tutorial

ReactJS Tutorial

Data Science Tutorial

Angular 7 Tutorial

Blockchain Tutorial

Git Tutorial

Machine Learning Tutorial

DevOps Tutorial

B.Tech / MCA

DBMS tutorial

Data Structures tutorial

DAA tutorial

Operating System

Computer Network tutorial

Compiler Design tutorial

Computer Organization and Architecture

Discrete Mathematics Tutorial

Ethical Hacking

Computer Graphics Tutorial

Software Engineering

html tutorial

Cyber Security tutorial

Automata Tutorial

C Language tutorial

C++ tutorial

Java tutorial

.Net Framework tutorial

Python tutorial

List of Programs

Control Systems tutorial

Data Mining Tutorial

Data Warehouse Tutorial

Javatpoint Services

JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.

  • Website Designing
  • Website Development
  • Java Development
  • PHP Development
  • WordPress
  • Graphic Designing
  • Logo
  • Digital Marketing
  • On Page and Off Page SEO
  • PPC
  • Content Development
  • Corporate Training
  • Classroom and Online Training
  • Data Entry

Training For College Campus

JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week

Like/Subscribe us for latest updates or newsletter RSS Feed Subscribe to Get Email Alerts Facebook Page Twitter Page YouTube Blog Page

Источник

PHP GET and POST

$_GET and $_POST are Superglobal variables in PHP which used to collect data from HTML form and URL.

PHP Form Handling

This chapter shows how to collect submitted form-data from users by using POST and GET method.

The example below contains an HTML form with two input fields, and a submit button:

When the user fills out and submits the form, then form data will be sent to PHP file: called registration.php.

registration.php page has following code to print submitted data:

  Welcome ! Your email address is 

Form GET/POST method and PHP $_GET/$_POST

PHP $_GET Variable

In PHP, the $_GET variable is used to collect values from HTML forms using method get.

Information sent from an HTML form with the GET method is displayed in the browser’s address bar, and it has a limit on the amount of information to send.

When the user clicks on the «Submit button», the URL will be something like this:

registration .php looks like this:

  Welcome ! Your email address is 

When to use method=»get»?

  • The variable names and values will be visible in URL if HTML forms submitted by the GET method.
  • The GET method is restricted to send up to 2048 characters only.
  • When you submit sensitive information like passwords then should not use this method.
  • GET method can’t be used, to send binary data like images and Word documents.
  • GET method data can be accessed using PHP QUERY_STRING environment variable.
  • PHP $_GET associative array is used to access all the sent information by GET method.

PHP $_POST Variable

In PHP, the $_POST variable is used to collect values from HTML forms using method post.

Information sent from a form with the POST method is invisible and has no limits on the amount of information to send.

Note: However, there is an 8 MB max size for the POST method, by default (can be changed by setting the post_max_size in the php.ini file).

When the user clicks on the «Submit button», the URL will be something like this:

registration .php looks like this:

  Welcome ! Your email address is 

When to use method=»post»?

  • The POST method does not have any restriction on data size to be sent.
  • The POST method can be used to send ASCII as well as binary data.
  • The data sent by POST method goes through HTTP header, so security depends on HTTP protocol. By using Secure HTTP, you can make sure that your information is secure.
  • PHP $_POST associative array is used to access all the sent information by POST method.
  • Variables are not visible in the URL so users can’t bookmark your page.

The PHP $_REQUEST Variable

The $_REQUEST variable contains the contents of $_GET, $_POST, and $_COOKIE.

  Welcome ! Your email address is 

Источник

Читайте также:  Проверить версию numpy python 3
Оцените статью