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'];
Inhaltsverzeichnis |
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!