GET - Teil 1

Eine der Möglichkeiten unserem PHP-Programm Informationen zu übergeben, ist es, diese an die URL (Internetadresse) anzuhängen. Dazu wird an die Adresse ein Fragezeichen angehangen. Damit wird signalisiert, dies gehört nicht zum Dateinamen / Verzeichnisnamen, sondern es werden Daten übergeben.

Dahinter können wir nun mit einem Namen, Gleichheitszeichen und dem gewünschtern Wert Daten übermitteln. Zum Beispiel möchten wir unter den Namen "quadratvon" den Wert "2" an unser PHP-Programm "index.php" übergeben:

http://localhost/index.php?quadratvon=2

Schön und gut, wo kriegen wir das jetzt aber in unserem Programm raus? PHP übergibt solche übertragenen Informationen in dem Array $_GET. Lassen wir uns den Inhalt dieses Arrays anzeigen, unsere index.php:

<?PHP

echo  '<pre>';
print_r($_GET);
echo 
'</pre>';

?>

Die Ausgabe würde nun, wenn wir die oben angegebene URL nutzen, wie folgt aussehen:

Array
(
    [quadratvon] => 2
)

Nun ist das nicht schön für Besucher, die möchten es ja einfach haben. Also stellen wir Links bereit, mit welchen wir dann alle Daten mitgeben.

<?PHP

echo  'Quadrat  von:  ';
echo 
'<a  href="index.php?quadratvon=1">1</a>,  ';
echo 
'<a  href="index.php?quadratvon=2">2</a>,  ';
echo 
'<a  href="index.php?quadratvon=3">3</a>';

//  Hier  auch  gleich  unsere  Ausgabe  vom  Ergebnis
echo  '<p>Ergebnis:  ';
echo 
$_GET['quadratvon']  *  $_GET['quadratvon'];

?>

Fehler

Wenn die Seite ohne Parameter aufgerufen wird, kann es jetzt zu einer Fehlerausgabe kommen (je nach Einstellung des Servers). Denn in diesem Fall würde es keinen Array "$_GET['quadratvon']" geben. Wir sagen aber dem Programm, dass es damit rechnen soll. Klar, dass es dann meckert.

Lösung: Wir prüfen ob die Variabel überhaupt existiert, und nur wenn dem so ist, soll unser Programm die Berechnung vornehmen. Mit der Funktion "isset()" kann geprüft werden, ob eine Variabel existiert. Wenn ja gibt sie "true" zurück, wenn nicht "false". Damit können wir dann die Berechnung verhindern, und es kann nicht zum Fehler kommen.

<?PHP

echo  'Quadrat  von:  ';
echo 
'<a  href="index.php?quadratvon=1">1</a>,  ';
echo 
'<a  href="index.php?quadratvon=2">2</a>,  ';
echo 
'<a  href="index.php?quadratvon=3">3</a>';

//  Hier  auch  gleich  unsere  Ausgabe  vom  Ergebnis
echo  '<p>Ergebnis:  ';

if  (isset(
$_GET['quadratvon']))  {
    echo 
$_GET['quadratvon']  *  $_GET['quadratvon'];
}

?>

Gedanken

Obwohl wir nun Links als Auswahl für den Besucher bereit stellen, kann natürlich der schlaue Besucher die URL selber manipulieren. Somit kann er andere Werte eingeben, als wir bereitstellen. Nun ist die Frage, ob das gewünscht bzw. erlaubt sein soll. Denn wenn nicht, müssen Kontrollstrukturen programmiert werden, welche andere Werte verhindern.

Weiterhin beinhaltet jede Art von Benutzereingaben potentielle Gefahren, da eventuell Schadcode eingeschleust werden könnte.