Bei der Übergabe von Daten eines Eingabeformulares an ein PHP-Skript legt man sich im Normalfall auf eine Art (GET / POST) der Datenübergabe fest. Werden die Daten von dem Formular nach der GET Spezifikation (Übergabe im URL) übergeben, so nutzt man beim Empfängerscript in PHP für gewöhnlich die Schreibweise $_GET['parameter'] für den Zugriff auf die Daten. Bei Übergabe per POST wird der Wert entsprechend mit $_POST['parameter'] ermittelt.
Wenn nicht klar ist, welche Art der Parameterübergabe vom Aufrufer benutzt wird – oder wenn (aus welchen Gründen auch immer) beide Methoden berücksichtigt werden müssen, dann kann die Abfrage über $_REQUEST['parametername'] eine Alternative sein. Bei der Nutzung von $_REQUEST ist es egal, über welche Methode der Wert übergeben wurde.

Beispiel:

Man nehme folgendes Formular als HTML/PHP Eingabeseite:

<html>
<title>Test $_REQUEST</title>
<head></head><body>
<form action="test_request.php" method="get">
Eingabe <input type = "text" name="fancy_param" value="">
<input type = "submit" value="go">
</form></body>
</html>

und die PHP-Datei test_request.php

<?PHP
echo "Übergebener Wert (REQUEST): ".$_REQUEST['fancy_param']."<br />";
echo "Übergebener Wert (GET)    :".$_GET['fancy_param']."<br />";
echo "Übergebener Wert (POST)   : ".$_POST['fancy_param']."<br />";
echo "--------------------------<br />";
echo "Manipulation von \$_GET...<br />";
$_GET['fancy_param']="0987654321";
echo "Übergebener Wert (REQUEST): ".$_REQUEST['fancy_param']."<br />";
echo "<del>Übergebener</del> Wert (GET): ".$_GET['fancy_param']."<br />";
echo "Übergebener Wert (POST): ".$_POST['fancy_param']."<br />";
?>

Bei Eingabe von „12345“ im Eingabefeld erhalten wir folgende Ausgabe:

Übergebener Wert (REQUEST): 12345
Übergebener Wert (GET) :12345
Übergebener Wert (POST) :
————————–
Manipulation von $_GET…
Übergebener Wert (REQUEST): 12345
Übergebener Wert (GET): 0987654321
Übergebener Wert (POST):

Hier wird gleichzeitig deutlich, daß eine Manipulation des Wertes in $_GET[‚fancy_param‘] sich zur Laufzeit nicht in $_REQUEST[‚fancy_param‘] auswirkt. Nach der Manipulation der Daten innerhalb des PHP Scriptes haben beide Ausdrücke unterschiedliche Werte.

Um die POST Methode zu testen, ist im HTML-Code das Attribut ‚method‘ des form-Tags auf method="post" zu ändern.

« »