Variablen übergeben

Übergabe per Get

Ein anderer Weg Daten von einer Seite zu einer anderen zu Übertragen ist die GET-Methode.

Es gibt zwei Möglichkeiten: Entweder überträgt man die GET-Daten per Formular oder man hängt die Daten gleich an die URL an.

Will man ein Formular zur Übertragung nutzen, dann funktioniert das so ziemlich genauso wie bei der POST-Methode, nur dass man im HTML Formular method=„get“ schreiben muss. Wollen wir also GET-Daten (in diesem Fall den Inhalt von „eingabefeld“) an die Seite „formular_auswertung.php“ schicken, schreiben wir:

formular_absenden.php:

<form action="formular_auswertung.php" method="get">
  Name: <input type="text" name="eingabefeld"><br/>
  <input type="submit" value="Abschicken">
</form>

Doch wie lesen wir die Daten aus?

formular_auswertung.php:

<?php
$variable = $_GET['eingabefeld'];
echo $variable;
?>

(Bitte Sicherheitshinweis ganz unten beachten!)

Doch wo ist nun der Unterschied zu POST?

Wie ihr, wenn ihr den Code selbst getestet habt, vielleicht bemerkt habt, wird der Inhalt des Formulars an die URL abgehängt, sodass sie in diesem Fall so aussieht:

 formular_auswertung.php?eingabefeld=inhalt_des_eingabefeldes

Der Vorteil

Wir können nun Daten per Link übergeben, indem wir schreiben:

<a href="seite_anzeigen.php?seite=2">Seite 2 anzeigen</a>

Will man mehrere Variablen auf einmal übermitteln, verbindet man sie mit einem & zwischen den Angaben.

<a href="seite_anzeigen.php?seite=2&template=red">Seite 2 anzeigen</a>

Die übertragenen Daten können wir dann ganz einfach so auslesen:

<?php
$seite = $_GET['seite'];
$template = $_GET['template']
?>

Der Nachteil

Die URLs(GET) werden von manchen Servern und Browsern in ihrer Länge begrenzt(Max. 255 Zeichen). Es kann also zu Problemen bei größeren Daten kommen.

Größere Datenmengen sollte man deshalb per POST übertragen.

Sicherheitshinweis

Der User ist grundsätzlich „böse“. Alles Daten, die der User eingibt bzw. ändern kann können falsch oder gar schädlich sein. Dazu zählen sowohl GET-Daten (die einfach in der URL geändert werden können) als auch per POST übermittelte Daten (auch POST-Daten kann man verändern, zum Beispiel mit dem Firefox Addon Tamper Data).

Deshalb sollte man alle übermittelten Daten unbedingt überprüfen und, bevor sie in einer Datenbank gespeichert oder ausgegeben werden, eventuell schädliche Teile entfernen (z.B. mit „mysql_real_escape_string($variable);“).