PHP занятие 8. Передача данных

На уроке рассмотрены методы передачи данных форм GET и POST

Методы передачи данных форм в php

Использование методов GET и POST

Атрибуты тега FORM
Атрибуты тега FORM

Get – данные из формы передаются на сайт, указанный в поле адреса браузера, с помощью знака «?» и «&»

Использование метода GET в php
Использование метода 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;}
    ?>
    Безопасная обработка данных php
    Безопасная обработка данных

    Рассмотрим тот же самый пример с использованием метода 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
    Лабораторная работа 8_1:
    Проверить:

    • был ли отправлен запрос при щелчке на кнопке
    • были ли поля заполнены цифрами, а не другими символами

    Алгоритм выполнения:

    • Создайте файл calculator.php
    • Для построения формы воспользуйтесь конструкцией:
    • <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    • Проверьте, была ли корректно отправлена форма (ф-ция isset ())
    • Если она была отправлена, отфильтруйте полученные значения (is_numeric)
    • В зависимости от оператора производите различные математические действия
    • В случае деления, проверьте, делитель на равенство с нулем (на ноль делить нельзя)
    • Сохраните полученный результат вычисления в переменной
    • Если результат существует, выведите его.
    Функции php для обработки данных формы
    Ожидаемый результат
    Лабораторная работа 8_2 (сложный вариант):
    Написать интерфейс, который позволял бы создавать html-формы. Пользователь выбирает, какие элементы и в каком количестве нужно создать, придумывает им названия, а программа сама генерирует требуемую форму.

    • выбор типов элементов ввода и их количества (task_form.html);
    • создание элементов управления php

    • создание названий элементов ввода (ask_names.php);
    • создание элементов управления php

    • обработка полученных данных, т.е. непосредственно генерация формы (task.php).
    • Результат:
      7

    Открыть подсказку:

    task_form.html:
    форма средствами php
    Результат:
    7

    ask_names.php:
    элементы управления php
    При создании двух элементов типа «текстовая строка» и одного элемента типа «текстовая область» получим (рис. 8). Введем в эту форму, например, строки «Название», «Автор» и «Краткое содержание». Эти данные будет обрабатывать скрипт task.php.

    рис. 8. Промежуточные результаты
    рис. 8. Промежуточные результаты

    Task.php:
    7
    7

    Результатом работы скрипта с входными данными, приведенными выше, будет следующая форма:
    7

    Лабораторная работа 8_3 (легкий вариант):
    Средствами PHP разработать простой валютный калькулятор, который конвертирует различные валюты в рубли (см. рисунок). Форму калькулятора и скрипт обработки поместить в один файл, используя функцию:

    <form action="<?php echo $_SERVER['PHP_SELF'];?>">

    Валютный калькулятор на php
    Валютный калькулятор на php
    Лабораторная работа 8_4:
    Заменить фреймовую структуру с меню, на работу с одним файлом php.

    1. Откройте файл в котором формируется меню.
    2. Измените значения всех элементов массива на index.php
    3. Добавьте к значению "index.php" параметр id, передаваемый методом GET
    4. Добавьте к параметру id уникальные значения.
    5. ПРИМЕР:

      index.php?id=page1
    6. Заключите все ссылки в тег form с параметром action =
    7. action="<?php echo $_SERVER['PHP_SELF']; ?>"
    8. Откройте файл с таблицей общей структуры сайта. Переименуйте его в index.php
    9. Создайте переменную id
    10. Присвойте переменной id значение параметра id переданного при запросе методом GET
    11. Создайте несколько html-страниц с шаблонным текстом (1.html, 2.html, 3.html)
    12. В файле index.php с помощью конструкции switch, в зависимости от значения переменной id, выводите содержимое области основного контента страницы в ячейку для контента. (если page1, то загружаем 1.html, если page2, — загружаем 2.html и т.д.)
    13. Результат:
      7

    4 комментария для “PHP занятие 8. Передача данных”

    1. Подскажите пожалуйста как эффективнее учить язык — с преподавателем или можно и самостоятельно?

    Обсуждение закрыто.