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

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

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

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

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

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

</form>

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

<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 лет. Пароль:******

Переменные The $_POST["name"] и $_POST["age"] автоматически установлены в значения "name" и "age" из формы средствами PHP. Если бы мы использовали метод GET, то информация нашей формы была бы в суперглобальной переменной $_GET $GET ["name" ] и $_GET["age"]. Также можно использовать переменную $_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 новая передача