Практическая работа № 6
Тема «Передача параметров PHP-программ.
Методы GET и POST»
Цели работы:
познакомиться с методом Get;
познакомиться с методом Post.
CGI (Common Gateway Interface) – общий интерфейс шлюза, используемый для «общения» Web-клиентов (браузеров) с Web-серверами. Пользователь запускает браузер и вводит следующий URL:
http: server.ru/example.html?name=Ivan
При получении такого URL Web-сервер пытается найти и запустить программу example.html, передав ей на стандартный ввод параметры, указанные пользователем. Программа запускается и обрабатывает полученные параметры. Затем она выводит результат обработки параметров на стандартный вывод. Web-сервер перехватывает вывод программы и отправляет его в браузер пользователя. Пользователь видит результат выполнения программы.
Существует два метода передачи сценариям параметров: GET и POST.
Метод GET
Пусть есть сценарий example.php, которому нужно передать параметр name:
http: server.ru/example.php?name=Ivan
Браузер выделяет из введенного URL протокол http, имя сервера server.ru, имя сценария example.php, ? - символ разделения между адресом и блоком с переменными. Затем браузер устанавливает подключение с сервером по заданному протоколу и передает запрос: GET example.php HTTP
У метода GET все параметры передаются через строку адреса браузера, максимальная длина строки не более 255 символов (8 КБ).
Метод POST
Передаваемые данные не отображаются в окне браузера. Передаваемые сценарию данные отображаются уже после самого запроса.
Метод POST используется для передачи больших объемов данных, например файлов.
При разработке и отладке приложений, чаще используют метод GET. При завершении и выпуске приложения в свет, лучше изменить представление на метод POST, в целях безопасности и неограниченности объёма передачи информации.
Если не прописать метод, то браузер по умолчанию будет использовать метод GET.
Задание 1. Передача параметра методом GET
1. Создать в блокноте html-форму hello.html, следующего содержания:
<form action=http://FIO.ru/Forma.php method=get>
Введите ваше имя: <input type=text name=name>
Введите Ваш возраст: <input type=text name=age>
<input type="submit" value="OK">
</form>
В окне браузера форма будет выглядеть:
Как только пользователь введет данные и нажмет кнопку ОК, форма методом GET передаст параметры сценарию Forma.php.
2. Создать в блокноте документ Forma.php, следующего содержания:
<?php
// проверка: переданы параметры кнопкой?
if (!isset($_GET[send])) {
// выводим форму из hello.html
echo file_get_contents(http://FIO.ru/hello.html);
//и прерываем выполнение сценария
//die();
}
//обрабатываем параметры
echo Здравствуйте, ;
echo $_GET[name];
echo <br>;
echo Вам .$_GET[age]. лет;
?>
С помощью функции isset(имя_переменной) можно проверять существование переменных. Функция возвращает true (истина) в случае существования и false (ложь) в противном случае.
В окне браузера в URL отображаются значения передаваемых переменных:
Задание 2. Передача параметра методом POST
1. Изменить способ передачи данных на метод POST:
Файл hello.html:
<form action=http://FIO.ru/Forma.php method=post>
Введите ваше имя: <input type=text name=name>
Введите Ваш возраст: <input type=text name=age>
<input type="submit" value="OK">
</form>
Файл Forma.php:
<?php
// проверка: переданы параметры кнопкой?
if (!isset($_POST[send])) {
// выводим форму из hello.html
echo file_get_contents(http://FIO.ru/hello.html);
//и прерываем выполнение сценария
//die();
}
//обрабатываем параметры
echo Здравствуйте, ;
echo $_POST[name];
echo <br>;
echo Вам .$_POST[age]. лет;
?>
В окне браузера в URL не отображаются значения передаваемых переменных:
Задание 2. Проверка параметров передачи
Переключатели
1. Создать файл FORM_6_2.html:
<form action=http://FIO.ru/Check.php method=GET>
<input type= checkbox value=yes name=subscr checked>
Да, я хочу получать рассылку
<br>
<input type= checkbox value=yes name=email checked>
Да, я хочу получать сообщения от других пользователей
</form>
2. Создать файл Check.php для проверки передачи параметра:
<?php
if (!isset($_GET[send])) {
echo file_get_contents(http://FIO.ru/ FORM_2_1.html);
//die();
}
//обработка параметров
if (isset($_GET[subscr]))
echo Пользователь хочет получать рассылку сайта;
echo <br>;
if (isset($_GET[email]))
echo Пользователь хочет получать сообщения пользователей;
?>
Флажки
1. Изменить файл FORM_2_1.html:
<form action=http://FIO.ru/ Radio.php method=GET>
<input type=radio value=male name=sex checked> Мужчина
<input type=radio value=female name=sex> Женщина
<input type="submit" value="OK">
</form>
2. Создать файл Radio.php для проверки передачи параметра:
if (isset($_GET[sex])) {
if ($_GET[sex] === "male") echo "Мужчина";
else echo "Женщина";
}
Списки выбора
1. Создать файл FORM_6_3.html:
<form action=http://FIO.ru/ Spiski.php method=GET>
<p> Выберите год:
<select name=year size=1>
<option value=2014>2014</option>
<option value=2013>2013</option>
<option value=2012>2012</option>
<option value=2011>2011</option>
<option value=2010>2010</option>
</select>
<p>Какая операционная система у вас установлена?
<p><select name=os[] size=3 multiple>
<option value=xp>Windows</option>
<option value=vista>Windows Vista</option>
<option value=linux>Linux</option>
</select>
</form>
2. Создать файл Radio.php для проверки передачи параметра:
if (isset($_GET[ year]))
echo ($_GET[ year];
//Проверка, является ли &os массивом
$_os = $_GET[os];
if (is_array($os)) {
foreach ($os as $key => $value) {
echo "$value<br>";
}
}
Кнопки
1. Создать файл FORM_6_4.html:
<form action=http://FIO.ru/ Knopki.php method=GET>
<input type=submit name=add value=Добавить>
<input type=submit name=delete value=Удалить>
</form>
2. Создать файл Knopki.php для проверки передачи параметра:
//определить, какую кнопку нажал пользователь
If (isset ($_GET[‘add’])) {
echo “Пользователь нажал кнопку Добавить” }
If (isset ($_GET[‘delete’])) {
echo “Пользователь нажал кнопку Удалить” }
Самостоятельная работа
Задание 1
1) Создать форму для ввода данных: имя, год рождения, логин и email. На форме разместить кнопку Отправить для передачи данных.
2) Создать php-файл для вывода данных: имя, возраст, логин и email. Год рождения необходимо проверить на допустимый диапазон значений: 1900…«текущий год».
Задание 2
Создать игру на PHP: Угадайте число в диапазоне от 0 до 100!
Создать html-файл, содержащий форму. На форме расположить текстовое поле, скрытое поле и кнопку.
Создать php-файл угадывающий загаданное число.
В текстовое поле игрок будет вводить число, и нажимать кнопку Угадать. Скрытое поле будет храниться загаданное число.
Исходный код:
<?php
$message = "Угадайте число в диапазоне от 0 до 100!"; //Устанавливаем сообщение по-умолчанию
if (isset($_POST["ugadat"])) { //Если данные были отправленны на сервер
//В переменную $chislo записываем данные полученные из текстового поля с именем chislo
$chislo = $_POST["chislo"];
//В переменную $hidden_chislo записываем данные полученные
//из скрытого поля с именем $hidden_chislo
$hidden_chislo = $_POST["hidden_chislo"];
//Если число из текстового поля меньше загаданного числа, то выводим сообщение
if ($chislo < $_POST["hidden_chislo"]) {
$message = "Загаданое число немножко больше $chislo";
}
//Если число из текстового поля больше загаданного числа, то выводим сообщение
elseif ($chislo > $_POST["hidden_chislo"]) {
$message = "Загаданое число немножко меньше $chislo";
} elseif ($chislo == $_POST["hidden_chislo"]) { //Если числа равны, то мы угадали!!
$message = "Ура! Вы победили! <br/> Загадано новое число!";
$hidden_chislo = rand(0, 100); //Загадываем новое число!
}
} else { //Если данные из формы не были отправлены
$chislo = 0; //Устанавливаем значение текстового поля по-умолчанию
$hidden_chislo = rand(0, 100); //Загадываем число
}
?>
<html>
<head>
<title>Дизайн студия OX2.ru - игра Угадай число</title>
</head>
</html>
<body>
<h2><?php echo $message; ?></h2>
<form method="post">
<input type="text" value="<?php echo $chislo ?>" name="chislo" />
<input type="submit" name="ugadat" value="Угадать" /><br/>
<input type="hidden" name="hidden_chislo" value="
<?php echo $hidden_chislo ?>" />
</form>
</body>
</html>
За выполненные задания:
Самостоятельная работа Баллы
Задание 1- Задание 2
Все задания + Сам. работа 1
Все задания + Сам. работа 2 3 балла
4 балла
5 баллов
Передача параметров PHP-программ. Методы GET и POST
Практическая работа по предмету «Web-программирование»