базовый курс

ГРУППА КУРСА

Получение данных PHP скриптом

Программа на PHP может получить данные от страницы, которая запустила эту программу. Получение данных PHP скриптом осуществляется двумя методами: GET и POST. Они рассмотрены в данной теме.

Метод GET

Метод GET - это отправка данных внутри HTTP-запроса. Данные отправляются на сервер в виде части URL-адреса. Самый простой способ отправить данные этим методом - написать их внутри ссылки. Эта ссылка будет выглядеть так: сначала идёт обычный URL-адрес, затем без пробелов ставится знак вопроса и перечисляются данные. Данные записываются в таком виде:

параметр = значение

Если нужно отправить несколько параметров, то они разделяются знаком &. Если есть скрипт с таким адресом:

http://mysite.ru/page.php

То URL вместе с данными выглядит так:

http://mysite.ru/page.php?x=5

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

Данные, отправленные таким образом, PHP скрипт берёт из суперглобального массива $_GET. Имя элемента массива совпадает с именем параметра. Если в запросе параметр называется user то в программе данные содержатся в элементе $_GET['user'].

Создадим страницу sendpage.html, которая будет отправлять данные и файл take.php, который будет получать эти данные. На страницу добавим ссылку на файл, которая будет содержать запрос с данными. Страница получается такая:

sendpage.html:

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
<head>
<title>Страница</title>
<meta charset="utf-8">
</head>
<body>
<a href="take.php?name=Иван&inf=2">Ссылка</a>
</body>
</html>

Теперь создадим файл take.php и разместим его в той же папке, где находитсся страница. Запишем полученные данные из массива $_GET в переменные и выведем их на экран.

take.php:

3
4
5
$name=$_GET['name'];
$inf=$_GET['inf'];
echo 'name '.$name.' inf '.$inf;

Метод POST

Метод POST используется для отправки формы. Форма также может быть отправлена и методом GET, ведь по умолчанию для неё установлен именно этот метод. Но метод POST имеет ряд преимуществ, поэтому лучше использовать его.

Файл, которому отправляются данные, указывается в атрибуте action, а метод в атрибуте method. Сами данные содержатся в элементах формы. У каждого элемента есть атрибут name, в котором содержится имя элемента. С этим именем данные отправляются на сервер. А значения вводятся в элементах формы пользователем.

Данные, отправленные методом POST, PHP скрипт берёт из суперглобального массива $_POST. Имена элементов массива совпадают с именами элементов формы.

Добавим на страницу форму, которая будет отправлять данные в тот же файл:

9
10
11
12
13
<form action="take.php" method="post">
<input name="login">
<input type="password" name="pas">
<input type="submit" value="Отправить">
</form>

В PHP файле также запишем данные из массива $_POST в переменные и выведем их на страницу:

PHP код:

6
7
8
9
$login=$_POST['login'];
$pas=$_POST['pas'];
echo '<br>';
echo 'login '.$login.' pas '.$pas;

Запустите страницу, введите что-нибудь в поля формы и отправьте её. Программа должна вывести полученные данные. Обратите внимание, переменные $name и $inf не содержат значения. Ведь мы отправляем форму методом POST, а массив $_GET остаётся пустым и у него нет элементов массива, к которым обращаются эти переменные.