Методы передачи данных GET и POST

GET POST

Отправляет скрипту всю собранную информацию формы как часть URL

https://www.site.ru/script.php?page=1&name=user

Пользователь сайта не видит передаваемые скрипту данные

https://www.site.ru/script.php
Ограничивает объем передаваемой информации (максимальная длина URL — 1024 символа) Позволяет передавать файлы
Может пагубно повлиять на безопасность данных Относительно безопасен
Можно сделать закладкой Нельзя сделать закладкой
Требует настройки SEO Не требует настройки SEO

GET — удобен для создания страниц с выводом отфильтрованной информации. Например: поиск, сортировка, текущий пост и т.п.

POST — для передачи форм с конфиденциальной информации о логинах, паролях, номерах кредиток и т.п.

Мануал по массиву GET

Мануал по массиву POST

Стандартные методы передачи GET:

// Передача параметра с использованием ссылки
<a href="site.ru?page=5&num=10"></a>

// Передача параметра с использованием формы
<form action="" method="get">
    <input name="say" id="say" value="Hi">
    <button>Отправить</button>
</form>

Примеры обработки в PHP:

// Установка значения без использования форм и ссылок
$_POST['text'] = 'value';

// Пример получения значения
$param = empty($_GET['param']) ? '' : $_GET['param'];

// Получить значение не указывая принадлежность к тому или иному массиву
$param = $_REQUEST['param']

Установка параметров с помощью JQ:

// путем переадресации на страницу
var param1 = 2;
var param2 = 3;
$(location).href("http://site.ru/?a=" + param1 + "&b=" + param2);

// путем ajax запроса с параметрами в теле data
$.get('site.ru',
       {
         a: 2,
         b: 3
       },
       function Success(data) {...}
);

// или вставкой в ссылку
$.get('http://site.ru/action.php?a=2&b=3');

Работа с методами GET и POST в MODX

Для быстрого вывода из массивов GET и POST в MODX удобно использовать возможности компонента FastField из pdoTools

<!-- Узнать какие данные находятся внутри массива -->
[[#GET]]
[[#POST]]

<!-- Вывести значение переданное через метод -->
[[#GET.key]]
[[#POST.key]]

<!-- Передать значение в параметрах сниппета -->
[[!pdoPage?
	&parents=`0`
	&sortby=`[[!#get.sort:default=`id`]]`
	&sortdir=`[[!#post.dir:default=`asc`]]`
	&showLog=`1`
]]

При необходимости можно создать сниппет принимающий значение

<?php
$param = empty($_GET['param']) ? '' : $_GET['param'];

Или устанавливающий и возвращающий значение

<?php
return isset($_GET[$param])
	? $modx->stripTags($_GET[$param])
	: '';

// вызов сниппета 
[[!GET?param=`key`]]