Zum Inhalt springen

Websiteentwicklung: PHP: $ GET

Aus Wikibooks

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]