Материал: Web-дизайн. лабораторный практикум. Суворов А.П., Проценко В.Н

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

if(isset($_POST['login']) && isset($_POST['password'])){ $login=strip_tags($_POST['login']);

$password = strip_tags($_POST['password']);

echo "Ваш логин: $login <br> Ваш пароль: $password";

}

Результатом ее работы при том же вводе будет следующий вывод:

1.8.2. Получение данных из строки запроса

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

Итак, создадим простой скрипт get.php со следующим содержимым:

<?php

$login = "не определен"; $age = "не определен"; if(isset($_GET['login'])){

$login = $_GET['login'];

}

if(isset($_GET['age'])){

$age = $_GET['age'];

}

echo "Ваш логин: $login <br> Ваш возраст: $age"; ?>

В PHP по умолчанию определен глобальный ассоциативный массив $_GET, который хранит все значения, передаваемые в строке запроса. Его действие

100

подобно массиву $_POST: также по ключу мы можем получить передаваемое значение.

Теперь обратимся к этому скрипту, например, так http://localhost:8080/get.php ?login=mailcom&age=22:

Все параметры передаются на сервер в следующей форме: get.php?параметр1=значение1&параметр2=значение2&параметрN=з начениеN. Чтобы передать список параметров, после названия скрипта ставится знак вопроса, за которым идут наборы параметров и их значений. Название параметра и будет ключом в массиве $_GET. Наборы параметрзначения отделяются друг от друга знаком амперсанда (&)

Данные формы мы также можем передать через запрос GET. Для этого достаточно у формы указать атрибут method="get", и тогда все значения полей формы также будут передаваться через строку запроса:

<form method="GET">

Логин: <input type="text" name="login" /><br><br> Пароль: <input type="text" name="password" /><br><br> <input type="submit" value="Отправить">

</form>

1.8.3. Работа с полями ввода форм

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

Флажки или чекбоксы checkbox могут находиться в двух состояниях: отмеченном (checked) и неотмеченном. Например:

Запомнить: <input type="checkbox" name="remember" checked="checked" />

Если флажок находится в неотмеченном состоянии, например:

Запомнить: <input type="checkbox" name="remember" />

101

то при отправке формы значение данного флажка не передается на сервер. Если флажок отмечен, то при отправке на сервер для поля remember будет передано значение on:

$remember = $_GET['remember'];

Если нас не устраивает значение on, то с помощью атрибута value мы можем установить нужное нам значение:

Запомнить: <input type="checkbox" name="remember" value="1" />

Иногда необходимо создать набор чекбоксов, где можно выбрать несколько значений. Например:

ASP.NET: <input type="checkbox" name="technologies[]" value="ASP.NET" /> PHP: <input type="checkbox" name="technologies[]" value="PHP" />

RUBY: <input type="checkbox" name="technologies[]" value="Ruby" />

В этом случае значение атрибута name должно иметь квадратные скобки. И тогда после отправки сервер будет получать массив отмеченных значений:

$technologies = $_POST['technologies']; foreach($technologies as $item) echo "$item<br />";

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

несколькими взаимоисключающими вариантами:

<input type="radio" name="course" value="ASP.NET" />ASP.NET <br> <input type="radio" name="course" value="PHP" />PHP <br> <input type="radio" name="course" value="Ruby" />RUBY<br>

На сервер передается значение атрибута value у выбранного переключателя. Получение переданного значения:

if(isset($_POST['course']))

102

{

$course = $_POST['course']; echo $course;

}

Список

Список представляет элемент select, который предоставляет выбор одного или нескольких элементов:

<select name="course" size="1">

<option value="ASP.NET">ASP.NET</option> <option value="PHP">PHP</option> <option value="Ruby">RUBY</option> <option value="Python">Python</option> </select>

Элемент <select> содержит ряд вариантов выбора в виде элементов <option>:

Теперь получим выбранный элемент:

if(isset($_POST['course']))

{

$course = $_POST['course']; echo $course;

}

Но элемент select также позволяет множественный выбор. И в этом случае обработка выбранных значений изменяется, так как сервер получает массив значений:

<select name="courses[]" size="4"multiple="multiple"> <option value="ASP.NET">ASP.NET</option> <option value="PHP">PHP</option>

<option value="Ruby">RUBY</option> <option value="Python">Python</option> </select>

Такие списки имеют атрибут multiple="multiple". Для передачи массива также указываются в атрибуте name квадратные скобки:name="courses[]"

103

Теперь получим в PHP выбранные значения:

<?php if(isset($_POST['courses']))

{

$courses = $_POST['courses']; foreach($courses as $item) echo "$item<br>";

}

?>

1.8.4. Пример обработки форм

Рассмотрим комплексный пример обработки форм, в которой объединим обработку различных элементов html. Определим следующую форму:

<h2>Анкета</h2>

<form action="input.php" method="POST"> <p>Введите имя:<br>

<input type="text" name="firstname" /></p> <p>Форма обучения: <br>

<input type="radio" name="eduform" value="очно" />очно <br> <input type="radio" name="eduform" value="заочно" />заочно </p> <p>Требуется общежитие:<br>

<input type="checkbox" name="hostel" />Да</p> <p>Выберите курсы: <br>

<select name="courses[]" size="5" multiple="multiple"> <option value="ASP.NET">ASP.NET</option> <option value="PHP">PHP</option>

<option value="Ruby">RUBY</option> <option value="Python">Python</option> <option value="Java">Java</option> </select></p>

<p>Краткий комментарий: <br>

<textarea name="comment" maxlength="200"></textarea></p> <input type="submit" value="Выбрать">

</form>

104

Источник: https://studfile.net/preview/16568571/