Доброго времени суток, арбитраны! В этой статье вкратце расскажу про суперглобальные массивы $_GET и $_POST, а так же об их стандартном применении на проклах и лендах. После прочтения вам станет понятно, как же данные с формы перемещаются в обработчик лидов. А так же о том как собираются метки из URL вашего рекламного объявления, будь то ФБ, пуши или тизерки. Погнали!

Что такое массив в PHP?

Источник информации

Массив в PHP — это упорядоченное отображение, которое устанавливает соответствие между значением и ключом. Этот тип оптимизирован в нескольких направлениях, поэтому вы можете использовать его как собственно массив, список (вектор), хеш-таблицу (являющуюся реализацией карты), словарь, коллекцию, стек, очередь и, возможно, что-то ещё. Так как значением массива может быть другой массив PHP, можно также создавать деревья и многомерные массивы.

Простыми словами: массив — это структура данных, которая позволяет хранить несколько элементов в одной переменной. Это очень удобная штука тк для передачи нескольких переменных достаточно их все запихать в одну и отправить куда нужно. Так же в массив можно вкладывать другие массивы, тем самым создавать дерево массивов. Но в это не вникайте сейчас. Потом поймете. Вот пример синтаксиса:

// Использование классического синтаксиса массива
$array = array(
    'foo' => 'bar',
    'bar' => 'foo'
);

// Использование синтаксиса короткого массива
$array = [
    'foo' => 'bar',
    'bar' => 'foo'
];

Первый вариант — это классический способ. Второй — короткий,  можно использовать начиная с версии PHP 5.4. Суть от написания не меняется. Массив и тот и второй работают одинаково. Если встретите в коде ваших связок такие штуки — сразу поймете что это и с чем это едят)

Так же массив может быть описан без ключей. PHP сам добавит цифровые ключи начиная с 0. Вот пример:

$array = [
    'one',
    'two',
    'three'
];

// запись выше равнозначна следующей

$array = [
    '0' => 'one',
    '1' => 'two',
    '2' => 'three'
];

Если вас устроят метки в виде цифр — можете юзать и такой синтаксис для массива.

А вот пример того, как обычно используются массивы в обработчиках лидов у партнерок:

// Fields to send
    $post_fields = [
        'stream_code'   => $stream_code,    // required
        'client'        => [
            'phone'     => $_POST['phone'], // required
            'name'      => $_POST['name'],
            'surname'   => $_POST['surname'],
            'email'     => $_POST['email'],
            'address'   => $_POST['address'],
            'ip'        => $_POST['ip'],
            'country'   => $_POST['country'],
            'city'      => $_POST['city'],
            'postcode'  => $_POST['postcode'],
        ],
        'sub1'      => $_GET['sub1'],
        'sub2'      => $_GET['sub2'],
        'sub3'      => $_GET['sub3'],
        'sub4'      => $_GET['sub4'],
        'sub5'      => $_GET['sub5'],
    ];

Тут, кстати, используется вложенный массив client. И самые наблюдательные уже заметили те два суперглобальных массива, ради которых мы здесь сегодня и собрались.

Как получить данные из массива?

Получать значения переменных из массива — проще простого. Для этого как раз и используются ключи, которые мы задали при описании. На примере из предыдущего абзаца сейчас попробуем извлечь значение переменной stream_code. Для этого нужно обратиться к описанному массиву $post_fields, в квадратных скобках указав ключ, которому мы присвоили искомую переменную:

$stream_code = $post_fields['stream_code'];

Чтобы получить значения из вложенного массива нужно сделать точно также, только продолжить цепочку из квадратных скобок. Например, мы хотим вынуть ip из массива client. Для этого пишем так:

$ip = $post_fields['client']['ip'];

И так можно докопаться до любой из переменных во вложенном массиве. Все проще простого) Надеюсь, вам все понятно. Идем дальше…

Массив $_GET

Начнем с простых истин. Массив $_GET — ассоциативный массив переменных, переданных скрипту через параметры URL (известные также как строка запроса). Простыми словами — все метки, что вы напихали в URL вашей ссылки на связку после символа «?», помещаются в массив $_GET и становятся доступными скриптам на страничке, которая откроется при переходе юзера по этой URL. Разберем пример:

https://croyman.ru/?fb_pixel=1234567890&sub_id1=pohudalka&sub_id2=zhiruha

Представим, что эта ссылка ведет на связку. Как же нам получить метки на прокле? А все очень просто, ведь мы уже знаем, что все метки после «?» попадут в массив $_GET. И для понимания, если представить, как PHP заворачивает метки в массив:

$_GET = [
  'fb_pixel' => '1234567890',
  'sub_id1'  => 'pohudalka',
  'sub_id2'  => 'zhiruha'
];

Как получить значения переменных из массива мы уже разобрали выше. Создадим три переменных и положим в них значения из массива $_GET:

$fb_pixel = $_GET['fb_pixel'];
$sub_id1  = $_GET['sub_id1'];
$sub_id2  = $_GET['sub_id2'];

Сами переменные можно обозвать как угодно, но я обычно называю так же как метки указал в URL. Так потом понятнее читать код.

Массив $_GET суперглобальный, а это значит, что он доступен в любом месте скрипта. Нет необходимости описывать его как глобальную переменную для доступа в функциях и методах. Нас, как арбитранов, а не кодеров этот факт особо не волнует. Мы просто знаем, что к массиву можем обратиться где угодно в скрипте и вынуть из него все, что там лежит.

Массив $_POST

Переходим к следуещему шагу. После того, как мы выдрали метки из URL, нам нужно их отправить в обработчик. Как это сделать? Здесь вступает в работу суперглобальный массив $_POST. Что такое суперглобальный вы уже знаете)

Немного теории из букваря: массив $_POST — это ассоциативный массив данных, переданных скрипту через HTTP методом POST. Как это понять? Объясню на пальцах. Если вы посмотрите свои связки, то увидите на форме заявки примерно следующую запись:

<form class="form" id="order_form" action="order.php" method="post">

Здесь мы видим, что в order.php (файл обработчика лидов) данные отправляются именно методом POST. Это означает, что данные из всех инпутов на форме, как скрытых, так и не скрытых, после нажатия на кнопку заказа будут помещены в массив $_POST и затем отправятся в обработчик.

Разберем код формы на прокле:

<form class="form" id="order_form" action="order.php" method="post">

  <input name="name" placeholder="Введите ФИО" type="text" value="" required/>
  <input name="phone" placeholder="+7 900 123 45 67" type="tel" value="" required/>
  <input name="sub_id1" type="hidden" value="<?=$_GET['sub_id1'];?>">

  <input name="sub_id2" type="hidden" value="<?=$_GET['sub_id2'];?>">
  <input name="sub_id3" type="hidden" value="<?=$_GET['fb_pixel'];?>">

  <button class="btn">ЗАКАЗАТЬ</button>

</form>

На форме у нас 2 видимых поля для ввода для ФИО и номера телефона. А так же три скрытых поля для передачи меток в обработчик (о том, что поле скрыто говорит type=»hidden»). ФИО и номер вводит юзер ручками, а вот три метки мы собираем из массива $_GET, как я объяснял ранее. Объясню такой момент — вот эта запись:

<?=$_GET['sub_id1'];?>

равнозначна вот такой:

<?php echo $_GET['sub_id1']; ?>

Этим кодом мы просим PHP вывести в HTML код нашего ленда значения соответствующих переменных, которые мы вынимаем из массива $_GET. В нашем примере мы вынимаем 2 метки sub_id1 и sub_id2, а так же фб пиксель fb_pixel из этой URL:

https://croyman.ru/?fb_pixel=1234567890&sub_id1=pohudalka&sub_id2=zhiruha

а затем заносим полученные значения в скрытые поля формы.

И вот мы плавно подошли к $_POST: по нажатию кнопки «ЗАКАЗАТЬ» на форме все эти метки, вместе с ФИО и телефоном юзера, упакуются в массив $_POST и полетят в order.php. Образно массив выглядит так:

$_POST = [
  'name'     => 'Иванов Иван Ивыныч',  // ввел юзер
  'phone'    => '+79001234567',        // ввел юзер
  'fb_pixel' => '1234567890',          // наша метка
  'sub_id1'  => 'pohudalka',           // наша метка
  'sub_id2'  => 'zhiruha'              // наша метка
];

А в обработчике мы сможем его разобрать по кусочкам и переслать в ПП, собрать себе в файл, БД или еще куда. Как разбирать и сохранять в файл я уже писал тут.

Вот и все базовые основы по массивам, которых вам хватит, чтобы понять мои предыдущие статьи) А может, и в будущем пригодится инфа. Всем профита и бешеных РОИ, посоны!