Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в Веб программирование.doc
Скачиваний:
81
Добавлен:
07.11.2018
Размер:
4.42 Mб
Скачать

Передача переменных в скрипт.

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

<form name="имя_формы" action="путь_к_обработчику"

method="метод_передачи_переменных GET или POST ">

поля ввода...

</form>

Обработчик - это скрипт на сервере, в который будут переданы значения полей ввода. Каждое поле ввода имеет имя, задаваемое атрибутом name и передается в обработчик вместе со своим значением. Рассмотрим пример:

<form action="action.php" method="POST">

Ваше имя: <input type="text" name="name" />

Ваш возраст: <input type="text" name="age" />

Пароль:<input type="text" name="password" />

<input type="submit">

</form>

Когда пользователь заполнит форму и нажмет кнопку отправки submit, будет вызван обработчик action.php. В этом файле может быть:

<html><body>Здравствуйте, 

<?php

echo $_POST["name"]; 

?>.

Вам <?php echo $_POST["age"]; ?> лет.

Пароль:<?php echo $_POST["password"]; ?> 

</body></html>

Вывод:

Здравствуйте, Егор.Вам 20 лет. Пароль:******

Метод отправки формы - POST. Переменные The $_POST["name"] и $_POST["age"] автоматически установлены в значения из формы средствами PHP. Если бы мы использовали метод GET, то информация нашей формы была бы в суперглобальной переменной $_GET. Также можно использовать переменную $_REQUEST, если источник данных не имеет значения. Эта переменная содержит смесь данных GET, POST, COOKIE и FILE.

Передача значений переменных по методу get

При использовании метода GET все данные упаковываются в адресную строку. Причем происходит это следующим образом: вначале имена переменных и их значения преобразуются в вид, безопасный для передачи в строке URL (особенно хорошо это заметно, когда передаются русские символы), после чего все данные преобразуются в форму name=value и собираются в одну строку, отделяясь друг от друга знаком & (амперсанд). Происходит это таким образом:

http://site.domain/action.php?имя=значение&имя=значение

Пары "имя=значение" создаются для каждого элемента ввода, для которого указано имя атрибутом NAME.

В таком виде данные и попадают скрипту, который уже самостоятельно должен проделать обратную операцию и извлечь из строки названия переменных и их значения. Строка запросаможет содержать не более 254 символов. Это одно из ограничений метода GET, которое не позволяет передавать объемные данные.

В отличие от других серверных языков программирования, PHP делает всю нудную работу по расшифровке строки запроса, переданной методом GET, на себя и предоставляет нам уже готовые для использования в скрипте переменные. Причем имя переменной образуется из имени, указанного в соответствующем элементе формы. Если пользователь ввел в строке $name запроса имени "Гриня", то в скрипте автоматически появится переменная $name, которая будет иметь значение "Гриня".

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

Рассмотрим пример передачи данных через строку URI:

<!—pr421.php -->

<html>

<head> </head>

<body>

<?php //

$a =$_GET['a'];

$b =$_GET['b'];

$c++;//Если режим on включен. Следует сначала написать $с =$_GET['с'];

echo "a=$a,b=$b"; //

print "<br>c=$c";//

echo "<br><a href='pr421.php?a=1&b=2&c=3'>новая передача</a>"

?>

</body>

</html>

Получим после запуска вида:

http://localhost/MyPrimers/pr421.php?a=10&b=20&c=30

a=10,b=20

c=31 новая передача

Если нажмем на гиперссылку новая передача, получим

a=1,b=2

c=4 новая передача