[3.2] $_POST abrufen
[3.2] $_POST abrufen
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?
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?
- canonknipser
- Ehemaliges Teammitglied
- Beiträge: 2053
- Registriert: 10.09.2011 11:14
- Kontaktdaten:
Re: [3.2] $_POST abrufen
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
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived

Kein Support via PN, nur im Board und (manchmal) im IRC
Re: [3.2] $_POST abrufen
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:
$post ist dann der neue Array.

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);
- Mahony
- Ehemaliges Teammitglied
- Beiträge: 12179
- Registriert: 17.11.2005 22:33
- Wohnort: Ostfildern Kemnat
- Kontaktdaten:
Re: [3.2] $_POST abrufen
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Re: [3.2] $_POST abrufen
Was ist eigentlich die Überlegung hinter der Deaktivierung der Superglobals?
- Mahony
- Ehemaliges Teammitglied
- Beiträge: 12179
- Registriert: 17.11.2005 22:33
- Wohnort: Ostfildern Kemnat
- Kontaktdaten:
Re: [3.2] $_POST abrufen
Hallo
Grüße: Mahony
Der Hauptgrund war wohl, Sicherheitsrisiken zu minimieren.T40 hat geschrieben:Was ist eigentlich die Überlegung hinter der Deaktivierung der Superglobals?
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.
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
- canonknipser
- Ehemaliges Teammitglied
- Beiträge: 2053
- Registriert: 10.09.2011 11:14
- Kontaktdaten:
Re: [3.2] $_POST abrufen
Das
sollte reichen - außer du willst zusätzlich noch eine Variable 
@mahony: Klar kann man die ausschalten, aber sauberer ist es, die entsprechenden Funktion zu verwenden
Code: Alles auswählen
$post = $request->get_super_global(\phpbb\request\request_interface::POST)
$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
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived

Kein Support via PN, nur im Board und (manchmal) im IRC
Re: [3.2] $_POST abrufen
Danke!
Re: [3.2] $_POST abrufen
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:
Nun erhalte ich folgende Fehlermeldung:
Auf den anderen Seiten klappt die Navigation einwandfrei. Kann mir jemand weiterhelfen?
Code: Alles auswählen
$srv = $request->get_super_global(\phpbb\request\request_interface::SERVER);
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