Изучаем PHP 7.№12. Передача данных — GET и POST. Отправка данных с форм.

Изучаем PHP 7.№12. Передача данных - GET и POST.
Проще говоря GET используется для передачи небольших данных между страницами, а POST для отправки больших данных на сервер или для отправки данных с форм.
Все передаваемые данные имеют имя и значение, которые хранятся в глобальном массиве GET или POST. Получить доступ к значениям можно обратившись к имени: $_GET[‘имя’] или $_POST[‘имя’]. Но как отправить данные мы рассмотрим ниже.

Начнем с метода GET. Отправка гет запроса может выполняться как простой ссылкой, так и через форму. Например, нам нужно отправить данные name=test на страницу result.php. Чтобы передать запрос GET в ссылку, нужно в конце url поставить знак ? и написать сам запрос:

<a href="result.php?name=test">Передаем значение test</a>

А на самой странице result.php мы эти данные должны считать:

<?php 
//----------------------------------------
//Отслеживаем значение name
if ($_GET['name']){
  //присвоим значение из get в переменную
  $name = $_GET['name'];
  //выведем результат
  echo $name;
}
?>

Данные переданные методом POST отлавливаются аналогичным способом.

Если нам нужно будет передать несколько значений, то мы разделяем их символом &:

<a href="result.php?one=1&two=slovo&three=слово">Можно передавать несколько параметров с любым значением</a><br>

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

Метод POST передает данные, нигде их не отображая. Поэтому его и спользуют для передачи данных из форм.

Давайте посмотрим небольшой пример. Создадим на сервере два файла index.php и result.php с таким содержимым:

index.php:

<meta charset="utf-8">

<a href="result.php?name=test">Передаем значение test</a><br>
<a href="result.php?name=куку">Меняем значение на куку</a><br>
<a href="result.php?some_word=some_value">Можно передавать любые параметры с любым значением</a><br>
<a href="result.php?one=1&two=slovo&three=слово">Можно передавать несколько параметров с любым значением</a><br>

<!-- Отправляем данные методом GET -->

<br><hr>
<h4>Отправляем данные методом GET</h4>
<form action="result.php" method="GET" >
  <input type="text" name="name" placeholder="Введите имя">
  <input type="submit" name="send" value="Отправить">
</form>

<!-- Отправляем данные методом POST -->

<br><hr>
<h4>Отправляем данные методом POST</h4>
<form action="result.php" method="POST" >
  <input type="text" name="name" placeholder="Введите имя">
  <input type="text" name="lname" placeholder="Введите фамилию">
  <input type="email" name="email" placeholder="Введите e-mail">
  <input type="submit" name="send" value="Отправить">
</form>

 result.php

<meta charset="utf-8">
<?php 
//----------------------------------------
//Отслеживаем значение name
if ($_GET['name']){
  //присвоим значение из get в переменную
  $name = $_GET['name'];
  //выведем результат
  echo $name;
}

//----------------------------------------
//Отслеживаем значение some_word
if ($_GET['some_word']){
  $some = $_GET['some_word'];
  echo $some;
}

//----------------------------------------
//Отслеживаем значение нескольких данных
if ($_GET['one'] || $_GET['two'] || $_GET['three']){
  $one = $_GET['one'];
  $two = $_GET['two'];
  $three = $_GET['three'];
  echo $one.', '.$two.', '.$three;
}
//----------------------------------------
?>

<?php 
//отслеживаем данные переданные методом POST
if($_POST['send']){
  $name = $_POST['name'];
  $lname = $_POST['lname'];
  $email = $_POST['email'];
  echo 'Имя: '.$name.'<br>';
  echo 'Фамилия: '.$lname.'<br>';
  echo 'E-mail: '.$email.'<br>';
}

?>


<br><hr><a href="/">Назад</a>


<br><hr>
<h4>Вид массива запроса</h4>
<?php 
if ($_GET) print_r ($_GET);
if ($_POST) print_r($_POST);
 ?>

 

Попробуйте разобраться в коде и придумайте свои примеры запросов. И советую посмотреть сюда http://codrob.ru/lesson/15

Одна идея о “Изучаем PHP 7.№12. Передача данных — GET и POST. Отправка данных с форм.

  1. Дитьрий

    Что за фигня? Говорите что это PHP 7 а по факту написано на PHP 4.
    На PHP 7 как минимум используют filter_input()

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.