Hi!
Ich hab da mal ne grundsätzliche frage. Was sollte man bei eigenen Scripten nutzen?
$_GET
$_POST
$_REQUEST
$_GET oder $_POST oder doch $_REQUEST?
- itst
- Ehrenadmin
- Beiträge: 7418
- Registriert: 21.08.2001 02:00
- Wohnort: Büttelborn bei Darmstadt
- Kontaktdaten:
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

$_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
phpBB.de Ehrenadministrator

- itst
- Ehrenadmin
- Beiträge: 7418
- Registriert: 21.08.2001 02:00
- Wohnort: Büttelborn bei Darmstadt
- Kontaktdaten:
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
phpBB.de Ehrenadministrator

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)
.
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'])))

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'])))