[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

Beitragvon T40 » 04.01.2018 16:22

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
Supporter
Supporter
Beiträge: 1460
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] $_POST abrufen

Beitragvon canonknipser » 04.01.2018 16:41

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

Beitragvon T40 » 04.01.2018 16:55

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
Ehemaliger
Beiträge: 11300
Registriert: 17.11.2005 22:33
Wohnort: Esslingen (Neckar)
Kontaktdaten:

Re: [3.2] $_POST abrufen

Beitragvon Mahony » 04.01.2018 16:56

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

Beitragvon T40 » 04.01.2018 17:03

Was ist eigentlich die Überlegung hinter der Deaktivierung der Superglobals?

Benutzeravatar
Mahony
Ehemaliger
Beiträge: 11300
Registriert: 17.11.2005 22:33
Wohnort: Esslingen (Neckar)
Kontaktdaten:

Re: [3.2] $_POST abrufen

Beitragvon Mahony » 04.01.2018 17:11

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
Supporter
Supporter
Beiträge: 1460
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] $_POST abrufen

Beitragvon canonknipser » 04.01.2018 18:04

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

Beitragvon T40 » 04.01.2018 20:38

Danke!

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

Re: [3.2] $_POST abrufen

Beitragvon T40 » 23.01.2018 12:03

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


Zurück zu „Extension Bastelstube“