전체 $ _POST를 얻는 적절한 방법은 무엇입니까?


26

줌라에서! 2.5.x Joomla에서 더 이상 사용되지 않는 JRequest::get('post');것처럼 간단하게 실행할 수 JRequest있습니다. 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객체 의 인스턴스를 얻었습니다 .


답변:


31
$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();

하지만 당신은해야 되지 않도록 필터링없이 사용자가 데이터에 액세스의이 스타일을.


1
종종 내가 얻을 필요가 $_POST있는 vars의 이름을 모르고 전체를 가져와야하는 경우가 종종 있습니다. 따라서 그런 JInput객체를 사용 하는 것이 많은 경우에 유용하지 않습니다. 그래도 좋은 대답입니다.
Spunkie

2
참고로 The $app->input->post->getArray();Joomla 3.2.0 이상에서만 유효합니다. 그리고 이전 버전 (2.5 포함)에서는 다음을 사용해야합니다.$app->input->getArray($_POST)
George Wilson

3

이것을 달성하는 또 다른 방법은 단순히 빈 배열을 전달하는 것입니다.

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

이렇게하면 수퍼 JInput에 액세스하는 것처럼 데이터 변수의 모든 것을 검색 합니다 $_REQUEST.

Joomla에서는 작동하지 않습니다! JInput그래도 2.5.x 버전 .


-3

이것이 효과가 있기를 바랍니다.

JRequest :: get ( 'post');

이것은 PHP에서 $ _POST 상당의 데이터를 가져 오는 데 도움이됩니다.


2
질문에 따르면이 방법은 더 이상 사용되지 않으므로 OP는 JInput을 사용하여 업데이트 된 방법을 찾고 있습니다.
David Fritsch

@Harald이 특권으로이 답변을 제거 하시겠습니까? 이 사용자는 "오래 지나간"것 같습니다.
mickmackusa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.