Каков правильный способ получить весь $ _POST?

В Joomla! 2.5.x Я мог бы просто запустить JRequest::get('post');, но просмотр как JRequest устарел в Joomla! 3.x Я должен использовать JInput.

В этот момент это код, который я использую для получения всего $_POST:

$app = JFactory::getApplication();
$postData = $app->input->getArray(array_flip(array_keys($_POST)));

Но это кажется довольно громоздким, и я сталкиваюсь с проблемами при использовании в сочетании с $app->input->set(); Я думаю, что было бы лучше?

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

$app = JFactory::getApplication();
$postData = $app->input->post;

Но когда я это пробовал, я просто получил экземпляр объекта JInput.

25 голосов | спросил Spunkie 22 PMpTue, 22 Apr 2014 23:02:23 +040002Tuesday 2014, 23:02:23

4 ответа


30
$app = JFactory::getApplication();
$postData = $app->input->post;

Это путь, вы получите объект JInput и можете использовать его как JRequest

$var = $postData->get('varname', 'defaultvalue', 'filter');

Фильтр может быть «int», «cmd» или многими другими. Полный список можно найти в этой функции: https://github.com/joomla/joomla-cms/blob/a3df15f1ddad6d9051d53f939b6afd2f5fca60b7/libraries/joomla/filter/input.php#L138

Если вам нужен только массив, вы можете сделать

$array = $app->input->post->getArray();

Но вы должны избегать этого стиля доступа к пользовательским данным без фильтрации.

ответил Harald Leithner 22 PMpTue, 22 Apr 2014 23:12:14 +040012Tuesday 2014, 23:12:14
3

попробовать

JFactory::getApplication()->input->post->getArray()
ответил csbenjamin 22 PMpTue, 22 Apr 2014 23:10:55 +040010Tuesday 2014, 23:10:55
3

Кажется, еще один способ выполнить это - просто передать пустой массив:

$app = JFactory::getApplication();
$postData = $app->input->getArray(array());

Это приведет к восстановлению всего в JInput данных var, как если бы вы обращались к $_REQUEST super.

Это не работает в Joomla! 2.5.x версия JInput хотя.

ответил Spunkie 22 PMpTue, 22 Apr 2014 23:16:41 +040016Tuesday 2014, 23:16:41
-3

Надеюсь, что это сработает,

JRequest :: Get ( 'сообщение');

Это поможет вам получить данные из эквивалента $ _POST в PHP.

ответил goggler 13 Mayam14 2014, 08:09:41

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132