$_GET oder $_POST oder doch $_REQUEST?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

$_GET oder $_POST oder doch $_REQUEST?

Beitrag von Fabse »

Hi!

Ich hab da mal ne grundsätzliche frage. Was sollte man bei eigenen Scripten nutzen?

$_GET
$_POST
$_REQUEST
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Kommt drauf an [tm] ;)

$_GET enthält nur URL-Parameter
$_POST enthält nur Parameter, die per POST übertragen wurden (oft sind das Formulare, method="post")
$_REQUEST enthält sowohl als auch und außerdem noch Cookie-Parameter (aus $_COOKIE):

Siehe auch http://de2.php.net/en/language.variables.predefined
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von Fabse »

Ja, das weiß ich ja.

Nur welches sollt ich eurer meinung verwenden. Ich benutz jetzt immer $_REQUEST für mein CMS. Aber in vielen anderen Scripten wird immer $_GET genommen. Deshalb hab ich jetzt mal nachgefragt.

Gruß, Fabse
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Benutz das Array, in dem die Daten drin sind, die Du brauchst. Wenn Du Cookie-Vars brauchst, nimm $_COOKIE, wenn Du URL-Parameter brauchst, nimm $_GET usw. Das sorgt für sauberen Code und weniger Fehlerquellen.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

ich würde über eine zentrale funktion $_REQUEST und ggfs. zusätzlich noch $_FILES aus den GPC-daten ziehen...
prinzipiell solltest du dich allerdings auch um input-validierung kümmern, man kann in deinem CMS derzeit recht einfach eine sql-injektion vornehmen :roll:
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Wenn Du nur $_REQUEST benutzt, könnte es Dir passieren, das Variablen überschrieben werden, siehe http://de2.php.net/manual/en/ini.sect.d ... bles-order
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von Fabse »

Oki, danke euch für die schnellen Antworten!

Gruß, Fabse
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Ich bevorzuge $_REQUEST, sofern die Möglichkeit besteht, daß die Daten sowohl per POST als auch per GET reinkommen könnten. Also z.B. wenn ein Formular standardmäßig per POST übertragen wird, man aber auch eine direkte Verlinkung ermöglichen will. Bei der phpBB-Suche beispielsweise ist dies nicht bei allen Parametern der Fall - dadurch kann man z.B. nicht auf eine Suche verlinken, die nach Themen statt Beiträgen sucht (und iirc auch nicht nach dem zu durchsuchenden Forum einschränken) :roll:.

Wenn man diese Verlinkung jedoch gewollt verhindern möchte oder die Verwendung von POST-Formularen nicht vorgesehen oder gar unangebracht ist (z.B. wenn es warscheinlich ist, daß jemand die Seite per F5 aktualisieren möchte), macht jedoch auch $_GET Sinn. $_POST verwende ich eigentlich nur, um zu prüfen ob ein Formular abgesendet wurde (à la if(isset($_POST['submit'])))
Antworten

Zurück zu „Coding & Technik“