In Joomla! 2.5.x Ich könnte einfach laufen JRequest::get('post');
, sehe aber, wie JRequest
es in Joomla veraltet ist! 3.x sollte ich verwenden JInput
.
Im Moment ist dies der Code, mit dem ich das Ganze bekomme $_POST
:
$app = JFactory::getApplication();
$postData = $app->input->getArray(array_flip(array_keys($_POST)));
Aber das scheint ziemlich umständlich und ich stoße auf Probleme, wenn $app->input->set();
ich in Verbindung mit denke, dass es einen besseren Weg geben würde?
Wenn ich danach suche, bevor ich Leute finde, die sagen, du kannst einfach rennen
$app = JFactory::getApplication();
$postData = $app->input->post;
Aber als ich das ausprobierte, bekam ich einfach eine Instanz des JInput
Objekts.
Antworten:
Ist der Weg zu gehen, erhalten Sie ein JInput-Objekt und können es wie JRequest verwenden
Der Filter kann "int", "cmd" oder viele andere sein - die vollständige Liste finden Sie in dieser Funktion: https://github.com/joomla/joomla-cms/blob/a3df15f1ddad6d9051d53f939b6afd2f5fca60b7/libraries/joomla/filter/input .php # L138
Wenn Sie nur das Array möchten, können Sie dies tun
Sie sollten diese Art des Zugriffs auf Benutzerdaten jedoch vermeiden, ohne zu filtern.
quelle
$_POST
das Ganze abrufen, ohne die Namen der Vars zu kennen, die ich abrufen muss. DeshalbJInput
ist es in vielen Fällen nicht sinnvoll , das Objekt so zu verwenden. Trotzdem eine gute Antwort.$app->input->post->getArray();
ist nur für Joomla 3.2.0 und höher gültig. Und in jeder früheren Version (einschließlich 2.5) müssen Sie verwenden$app->input->getArray($_POST)
Eine andere Möglichkeit, dies zu erreichen, besteht darin, einfach ein leeres Array zu übergeben:
Dadurch wird alles in der
JInput
Datenvariable abgerufen, als ob Sie auf die$_REQUEST
Super zugegriffen hätten.Dies funktioniert nicht in der Joomla! 2.5.x Version von
JInput
obwohl.quelle
Hoffe, das wird funktionieren,
JRequest :: get ('post');
Dies wird Ihnen helfen, die Daten aus dem Äquivalent $ _POST in PHP abzurufen.
quelle