[3.2] $_POST abrufen

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
T40
Mitglied
Beiträge: 9
Registriert: 10.12.2007 19:50
Wohnort: Schweiz

[3.2] $_POST abrufen

Beitrag von T40 »

In phpbb 3.2 sind ja bekanntlich die Superglobals deaktiviert. Ich habe mein phpbb Forum in meine Seite eingebunden und dies hat zur Folge, dass ich auch dort in meinen Skripts nicht auf die Superglobals zugreifen kann.

Ich möchte gerne ein Formular verarbeiten. Mir ist klar, dass ich mit $request->variable('feldname', '') die einzelnen Formularfelder erhalte, was dem bisherigen $_POST['feldname'] entspricht. Doch wie bekomme ich alle Felder in einem Array, wie das zuvor mit $_POST möglich war?
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] $_POST abrufen

Beitrag von canonknipser »

Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
T40
Mitglied
Beiträge: 9
Registriert: 10.12.2007 19:50
Wohnort: Schweiz

Re: [3.2] $_POST abrufen

Beitrag von T40 »

Danke. :)

Auf diese Seite bin ich auch schon gestossen, brauchte aber einige Anläufe um herauszufinden, wie dieser Request nun aussehehen muss, um den $_POST Array zu erhalten. Für Eilige, die künftig dasselbe Problem haben:

Code: Alles auswählen

$post = $request->get_super_global($super_global = \phpbb\request\request_interface::POST);
$post ist dann der neue Array.
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: [3.2] $_POST abrufen

Beitrag von Mahony »

Hallo
Oder eben so >>> Was tun bei Illegal use of $_SERVER Fehlermeldung

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
T40
Mitglied
Beiträge: 9
Registriert: 10.12.2007 19:50
Wohnort: Schweiz

Re: [3.2] $_POST abrufen

Beitrag von T40 »

Was ist eigentlich die Überlegung hinter der Deaktivierung der Superglobals?
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: [3.2] $_POST abrufen

Beitrag von Mahony »

Hallo
T40 hat geschrieben:Was ist eigentlich die Überlegung hinter der Deaktivierung der Superglobals?
Der Hauptgrund war wohl, Sicherheitsrisiken zu minimieren.

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] $_POST abrufen

Beitrag von canonknipser »

Das

Code: Alles auswählen

$post = $request->get_super_global(\phpbb\request\request_interface::POST)
sollte reichen - außer du willst zusätzlich noch eine Variable $super_global mit dem Interface-Objekt bestücken ;)

@mahony: Klar kann man die ausschalten, aber sauberer ist es, die entsprechenden Funktion zu verwenden ;)
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
T40
Mitglied
Beiträge: 9
Registriert: 10.12.2007 19:50
Wohnort: Schweiz

Re: [3.2] $_POST abrufen

Beitrag von T40 »

Danke!
T40
Mitglied
Beiträge: 9
Registriert: 10.12.2007 19:50
Wohnort: Schweiz

Re: [3.2] $_POST abrufen

Beitrag von T40 »

Auf den externen Seiten klappt das mit dem request interface ganz gut, jetzt wollte ich aber in der Navigation, die ich auch im Forum eingebunden habe, die SERVER Variable abfragen:

Code: Alles auswählen

$srv = $request->get_super_global(\phpbb\request\request_interface::SERVER);
Nun erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

Fatal error: Uncaught Error: Call to a member function get_super_global() on null in ***SERVERPFAD***/layout/navigation.php:10 Stack trace: 
#0 ***SERVERPFAD***/forum/cache/production/twig/b5/b50304cb1f98e524053af098979b932520063d3b9f09bbb8d7dc9cbb572eb2eb.php(292): include() 
#1 ***SERVERPFAD***/forum/vendor/twig/twig/lib/Twig/Template.php(432): __TwigTemplate_caed0ad3432c55c0d8f0f90b0ade1aeca11598c85e5590a79be22d4a99492f20->doDisplay(Array, Array) 
#2 ***SERVERPFAD***/forum/vendor/twig/twig/lib/Twig/Template.php(403): Twig_Template->displayWithErrorHandling(Array, Array)
#3 ***SERVERPFAD***/forum/cache/production/twig/24/24825afb6c33a5adb07886c26cece644ad236417b2bba4166269e7c715c4a0ad.php(46): Twig_Template->display(Array) 
#4 ***SERVERPFAD***/forum/vendor/twig/twig/lib/Twig/Template.php(432): __TwigTemplate_e7125bf368bbe81a8309be5317ea41521f3936b0ffc699d350e23c8771e0d325->doDisplay(Array, Array) 
#5 in ***SERVERPFAD***/layout/navigation.php on line 10
Auf den anderen Seiten klappt die Navigation einwandfrei. Kann mir jemand weiterhelfen?
Verschoben von Support-Forum nach Extension Bastelstube am 23.01.2018 12:20 durch Dr.Death

Antworten

Zurück zu „Extension Bastelstube“