Массивы $_GET и $_POST

<form action="script.php" method="GET">
       Введите Ваше имя
        <input type="text" name="my_name">
        <input type="submit" value="Отправить">
</form>
  • В action мы указываем куда форма будет передавать данные.
  • В method у нас есть два основных варианта - это методы GET и POST

Если кратко и грубо, метод GET больше подходит для передачи небольшого количетсва информации. Полный набор отличий будет приведен ниже

После передачи данных из формы, в script.php наши данные будут доступны через массив $_GET ($_POST, если бы использовали POST как метод). Название указанное в атрибуте name будет доступно в качестве ключа $_GET["my_name"]; В script.php выведем введенное имя echo $_GET["my_name"];

isset

Если мы хотим проверить, был ли нам передан GET-параметр, мы можем это сделать через функцию isset. Например:

if (isset($_GET["color"])){
      // в наш скрипт был передан GET-параметр color
}

Особенности методов GET-POST

  1. GET параметры передаются через адресную строку
  2. Как следствие через GET параметры нельзя передавать большие объемы данных
  3. Поскольку данные передаются через адресную строку, не стоит передавать пароли через GET-параметры
  4. Формат GET-запроса script.php?a=5&b=7
  5. Как следствие GET-запросы можно передать через гиперссылки
  6. Нельзя выводить GET-параметры напрямую на страницу (потому что тогда можно создать ссылку, которая будет выводить на Вашем сайте сообщения злоумышленника)
  7. Нельзя оставлять пользователя с POST параметрами на странице (потому что при обновлении будет выскакивать всплывающее окно )
  8. Нельзя оставлять пользователя на странице с параметрами, которые приводят к действиям.

Пример echo-сервера

Создадим простейший вариант echo-сервера в файле hello.php, который получает на вход GET-параметр name и отображает его.

<?php
echo 'Hello '.$_GET["name"];

Теперь попробуем в через адресную строку в браузере обратиться к нему

hello.php?name=Vasya

На выходе должны получить Hello Vasya

Модифицируем наш сервер, так чтобы он просил указать имя в GET-параметре, если оно не было передано. Для этого нам понадобится проверка наличия GET-параметра через isset

<?php
      if (isset($_GET["name"])) {
            echo 'Hello '.$_GET["name"];
      } else {
            echo 'Please add your name to the address line';
      }

Теперь, если наш GET-параметр не был передан, то сервер скажет нам об этом.

Практика:

  1. Попробуйте сделать форму и скрипт, которые выводили бы сумму двух чисел.
  2. Есть массив имен. Скрипт на сервере по номеру должен возвращать имя.
  3. Серый блок под ним три квадрата с цветом. При клике на квадрат, серый блок окрашивается в цвет
  4. Сделать трехстраничный сайт с навигационным меню, используя только один php-файл

results matching ""

    No results matching ""