Websiteentwicklung: PHP: $ GET

Der Array $_GET[] enthält den Inhalt von Variablen aus der URL. Diese Variablen werden vom User mit der Syntax

...phpdateiname.php?variablenname=variablenwert

in der Adresszeile des Browsers eingegeben, und von PHP in dem Array $_GET[] bereitgestellt.


$PHPVariable = $_GET['Variablenname'];


Beispiel: Kreisberechnung mit PHP

Bearbeiten

Ein einfaches Beispiel Kreis.php könnte wie folgt aussehen:

<!DOCTYPE html>
<html>
<head>
<title>Kreisberechnung mit PHP</title>
<?php
  // Default-Wert setzen und durch Benutzereingabe überschreiben, falls diese gültig ist
  $radius = 0;
  if (isset($_GET['r'])) { // wurde überhaupt ein Wert angegeben…
    if (is_numeric($_GET['r'])) { // und ist er eine Zahl?
      if (0 < $_GET['r']) { // und ist der Radius positiv?
        $radius = $_GET['r']; // dann den Wert übernehmen
      }
    }
  }
?>
</head>
<body>
<?php
// In einem weiteren PHP Codebereich wird dann die Verarbeitung und Ausgabe durchgeführt.
if (0 != $radius) {  // die ganze Berechnung soll nur ausgeführt werden, wenn wir eine Eingabe übernommen haben 
$umfang = 2*$radius*3.14;//Berechnung des Umfangs (2∏r), für ∏ wird 3,14 als Näherungswert genutzt
$flaeche = $radius *$radius*pi();//Berechnung der Fläche (r*r*∏), für ∏ wird die (genauere) Funktion pi() genutzt
?>
Hier kommt das Ergebnis:<br>
Der Umfang des Kreises ist: <?php echo $umfang;?><br>
Die Fläche des Kreises ist: <?php echo $flaeche;
}
else {
echo 'Kein gültiger Wert für den Radius r angegeben'; 
}
?>
</body>
</html>

Erläuterung

Bearbeiten

Die Methode $_GET[]; übernimmt die Variablen aus der Kommandozeile (Adresszeile des Browsers)

Beispiel:

 http://servername/ordner/dateiname.php?variablenname=variablenwert

und schreibt sie in ein Array. Dieses kann dann ausgelesen werden um den Inhalt dieser Arrays in PHP-Variablen zu schreiben b.z.w. diesen zuzuweisen.

Diese Zuweisung kann auch in der selben Zeile wie die Übernahme erfolgen z.B.:

Beispiel:

$variable = $_GET['variable'];
$variable2 = $_GET['variable2'];

Im weiteren Verlauf des PHP Documentes kann dann der Inhalt der PHP Variablen verarbeitet, und in einem vom Interpreter generiertem HTML-Document mit

echo "auszugebender String als HTML code";

ausgegeben werden s.o.

Die Übergabe von mehr als einem Parameter

Bearbeiten

Es ist möglich, mehr als eine Variable zu übergeben. Dafür muss die bestehende URL einfach um ein &, gefolgt von variable=Wert, erweitert werden.

Beispiel:

kreis.php?r=15&einheit=cm&name=Hans

$_GET enthält nun folgende Schlüssel/Werte:

  • $_GET['r'] mit dem Wert '15'
  • $_GET['einheit'] mit dem Wert 'cm'
  • $_GET['name'] mit dem Wert 'Hans'

Setzen der Werte

Bearbeiten

Die Werte der Variablen können dann mit dem Zuweisungsoperator einer gültigen PHP-Variablen zugewiesen werden:

Beispiel:

$r = $_GET['r'];// Der Radius wird der PHP-Variablen $r zugewiesen.
$e = $_GET['einheit'] // Die Einheit wird der PHP-Variablen $e zugewiesen.
$n = $_GET['name']// Ein Name wird der PHP-Variablen $n zugewiesen.

Aufruf per Adressleiste des Browsers

Bearbeiten

In diesem Beispiel muss die Variable r wie folgt in der Adresszeile des Browsers eingegeben werden:

....Kreis.php?r=123.1234

Für den Fall, dass der Wert von r eine Fließkommazahl sein sollte, ist es zwingend notwendig, diese mit dem Punkt als Dezimalzeichen einzugeben.

Strings werden als solche übergeben und in das Array von

$_GET['Hans'];

geschrieben.

Bearbeiten

Da die Parameter als Teil einer URL übergeben werden, ist es natürlich möglich, einen Link mit bereits gesetzten Werten auf einer anderen Seite einzubinden:

 
<!DOCTYPE html>
<head>
<title>Aufruf über einen Link</title>
</head>
<body>
<a href="kreis.php?r=15">Berechne Umfang und Fläche für einen Kreis mit dem Umfang 15</a>
</body>
</html>

funktioniert (gegebenenfalls ist der Pfad zur Datei anzupassen).

Aufruf über ein Formular

Bearbeiten

Enthält ein HTML-Formular im form-Tag das Attribut method="get", so erzeugt PHP beim Submit automatisch für alle Formularelemente in der globalen Array-Variable $_GET einen Eintrag. Der Wert eines Formularelementes <input name="eingabe"> ist also nach Submit über $_GET["eingabe"] zugreifbar.

Nachteile von $_GET

Bearbeiten

Da es bei

$_GET['Variablenname'];

notwendig ist die Variablen in der Adresszeile des Browsers einzugeben, und hierbei auch noch eine definierte Syntax eingehalten werden muss (...dokumentenname.php?Variablenname=Variablenwert&Variablenname2=Variablenwert2), deren Kenntnis nicht von allen Usern vorausgesetzt werden kann, ist für das Übernehmen von Variablenwerten die Methode

$_POST['Variablenname'];

besser geeignet, weil der User hier nicht wissen muß wie die Daten übergeben werden.

Escapen von Zeichen

Bearbeiten

Sollen bei der Ausgabe Zeichen erzeugt werden, die in der Sprache PHP als Steuerzeichen vorkommen, müssen diese mit einem vorangestellten escape auskommentiert werden.

Beispiel:

echo "Dieses ist ein ausgegebener \"Text\" bei dem das Wort \"Text\" in Redezeichen ausgegeben werden soll!";

Hier ermöglicht das escape(Flucht)-Zeichen - oder auch Backslash genannte Zeichen - die vorübergehende Flucht aus dem Quellcode für ein Zeichen, das nicht interpretiert, sondern als normales Char angezeigt wird. Die Ausgabe würde das wie folgt aussehen:

Dieses ist ein ausgegebener "Text" bei dem das Wort "Text" in Redezeichen ausgegeben werden soll!

Sinnvoller Einsatz

Bearbeiten