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.
Aufruf über einen Link
[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!