Содержание:
Методы передачи данных форм в php
Использование методов GET и POST
Get – данные из формы передаются на сайт, указанный в поле адреса браузера, с помощью знака «
?
» и «&
»
POST — используется для передачи больших объемов данных или когда нужно скрыть значения передаваемых параметров
Переданные сценарию параметры не отображаются в окне браузера
Суперглобальные переменные
При передачи данных формы на сервер формируются суперглобальные переменные — ассоциативные массивы, содержащие передаваемые значения:
- $_GET[] — ассоциативный массив, который содержит все значения, передаваемые в сценарий с помощью метода формы
GET
. - $_POST[] – ассоциативный массив, который содержит все значения, передаваемые в сценарий с помощью метода формы
POST
. - $_REQUEST[] – ассоциативный массив, который содержит все значение, передаваемые в сценарий с помощью методов
POST
иGET
.
Рассмотрим пример использования метода GET
index.html
находится форма для заполнения данных пользователем. В файле abswer.php
разработать скрипт обработки данных формы с выводом введенных пользователем значений (использовать метод GET
)Выполнение:
Файл index.html
1 2 3 4 5 6 | <form action="answer.php" method="get"> Имя <br><input type="text" name="Firstname" ><br> Фамилия <br> <input type="text" name="Lastname" ><br> E-mail<br> <input type="text" name="email"><br> <input type="submit" name="submit" value="Отправить"> </form> |
Файл answer.php
1 2 3 4 5 | <?php echo "<br> Ваше имя" . $_GET['Firstname']; echo "<br> Ваша фамилия" . $_GET['Lastname']; echo "<br> Ваш электронный адрес" . $_GET['email']; ?> |
Рассмотрим вариант безопасной обработки данных:
1 2 3 4 5 | <?php If (isset($_GET['Firstname']) { $firstname=trim (strip_tags($_GET['Firstname'])); echo "<br> Ваше имя" .$firstname;} ?> |
Рассмотрим тот же самый пример с использованием метода POST
index.html
находится форма для заполнения данных пользователем. В файле abswer.php
разработать скрипт обработки данных формы с выводом введенных пользователем значений (использовать метод POST
)Выполнение:
Файл index.html
1 2 3 4 5 | <form action="answer.php" method="post"> Имя <br><input type="text" name="Firstname"><br> Фамилия <br> <input type="text" name="Lastname"><br> E-mail<br> <input type="text" name="email"><br> <input type="submit" name="submit" value="Отправить"> </form> |
Файл answer.php
1 2 3 4 5 6 | <?php <?php echo "<br> Ваше имя" . $_POST['Firstname']; echo "<br> Ваша фамилия" . $_POST['Lastname']; echo "<br> Ваш электронный адрес" . $_POST['email']; ?> |
Итерации по массиву $_Request
index.html
находится форма для заполнения данных пользователем. В файле abswer.php
разработать скрипт обработки данных формы с выводом введенных пользователем значений (использовать метод REQUEST
)Выполнение:
Файл index.html
1 2 3 4 5 | <form action="answer.php" method="post"> Имя <br><input type="text" name="Firstname"><br> Фамилия <br> <input type="text" name="Lastname"><br> E-mail<br> <input type="text" name="email"><br> <input type="submit" name="submit" value="Отправить"> </form> |
Файл answer.php
<?php foreach($_REQUEST as $key => $value) { echo $key; echo ": " .$value; echo "<br/>"; } ?> |
Формируемый при передачи массив имеет вид:
$_Request['Firstname']="…" $_Request['Lastname']="…" $_Request['email']="…"
Функции для обработки данных формы
- is_string(string) – определяет, является ли переменная
string
строкой. Возвращает значениеtrue
илиfalse
. - is_int(string) или is_integer(string) – определяет, является ли переменная
string
целым числом. Возвращает значениеtrue
илиfalse
. - is_numeric(string) – определяет, является ли переменная
string
числовой строкой. Возвращает значениеtrue
илиfalse
. - is_double(string) или is_float(string) – определяет, является ли переменная
string
числом с плавающей точкой. Возвращает значениеtrue
илиfalse
Проверить:
- был ли отправлен запрос при щелчке на кнопке
- были ли поля заполнены цифрами, а не другими символами
Алгоритм выполнения:
- Создайте файл calculator.php
- Для построения формы воспользуйтесь конструкцией:
- Проверьте, была ли корректно отправлена форма (ф-ция
isset ()
) - Если она была отправлена, отфильтруйте полученные значения (
is_numeric
) - В зависимости от оператора производите различные математические действия
- В случае деления, проверьте, делитель на равенство с нулем (на ноль делить нельзя)
- Сохраните полученный результат вычисления в переменной
- Если результат существует, выведите его.
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> |
Написать интерфейс, который позволял бы создавать html-формы. Пользователь выбирает, какие элементы и в каком количестве нужно создать, придумывает им названия, а программа сама генерирует требуемую форму.
Результат:
ask_names.php:
При создании двух элементов типа «текстовая строка» и одного элемента типа «текстовая область» получим (рис. 8). Введем в эту форму, например, строки «Название», «Автор» и «Краткое содержание». Эти данные будет обрабатывать скрипт task.php.
Результатом работы скрипта с входными данными, приведенными выше, будет следующая форма:
Средствами PHP разработать простой валютный калькулятор, который конвертирует различные валюты в рубли (см. рисунок). Форму калькулятора и скрипт обработки поместить в один файл, используя функцию:
<form action="<?php echo $_SERVER['PHP_SELF'];?>"> |
Заменить фреймовую структуру с меню, на работу с одним файлом php.
- Откройте файл в котором формируется меню.
- Измените значения всех элементов массива на index.php
- Добавьте к значению
"index.php"
параметрid
, передаваемый методомGET
- Добавьте к параметру
id
уникальные значения. - Заключите все ссылки в тег
form
с параметромaction =
- Откройте файл с таблицей общей структуры сайта. Переименуйте его в index.php
- Создайте переменную
id
- Присвойте переменной
id
значение параметраid
переданного при запросе методомGET
- Создайте несколько html-страниц с шаблонным текстом (1.html, 2.html, 3.html)
- В файле index.php с помощью конструкции
switch
, в зависимости от значения переменнойid
, выводите содержимое области основного контента страницы в ячейку для контента. (еслиpage1
, то загружаем 1.html, еслиpage2
, — загружаем 2.html и т.д.)
ПРИМЕР:
index.php?id=page1 |
action="<?php echo $_SERVER['PHP_SELF']; ?>" |
Привед
Hello. And Bye.
Hello. And Bye.
Подскажите пожалуйста как эффективнее учить язык — с преподавателем или можно и самостоятельно?