Variablen
In PHP werden Texte oder auch Zahlen in sogenannten PHP Variablen bzw. einfach nur Variablen gespeichert, um diese dann später mit Hilfe von echo wieder auszugeben.
Variablen in PHP beginnen immer mit einem Dollarzeichen ($),
direkt gefolgt vom Variablen-Namen, danach ein „Gleichheitszeichen“ (=) und anschließend der Text in Anführungszeichen („) eingebunden. Am Ende das Semikolon als Befehlsabschluss(;).
Den Variablen kann man einen beliebig passenden Namen geben, allerdings muss auf Groß- und Kleinschreibunggeachtet werden.
Ich würde die Variablen immer klein schreiben, damit kein Durcheinander und damit auch keine Fehlerquellen entstehen können.
Eine Variable in PHP kann z.B. so aussehen:
<?php $name ="Nils Reimers";?>
In diesem Beispiel wird die Variable $name mit dem InhaltNils Reimers definiert.
Zu beachten dabei ist, dass Variablennamen mit einem Buchstaben oder einem Unterstrich beginnen. Zahlen dürfen als Anfangszeichen nicht benutzt werden.
Wenn wir eine Variable doppelt „definieren“, so überschreiben wir den Inhalt der Variable. Per Echo wird dann nur der aktuelle Inhalt ausgegeben.
Natürlich muss der echo-Befehl nach der Variable-Definition stehen, da PHP eine Interpreter-Sprache ist und den Code zeilenweise von oben nach unten abarbeitet.
Wenn echo vor der Variable steht, so versuchen wir eine nicht definierte Variable auszugeben und erhalten eine leere Ausgabe.
Sofern bestimmte Einstellungen gesetzt sind, kann es sogar passieren, dass ein Angreifer beliebigen Text einschleusen kann.
Zur Ausgabe benötigt man natürlich wieder den Befehlecho.
Das Script für dieses Beispiel sieht dann so aus:
<?php $name ="Nils Reimers"; echo "Mein Name ist $name";?>
Als Ausgabe erhalten wir:
Mein Name ist Nils Reimers
Wir können den Inhalt von einer Variable natürlich auch wieder überschreiben, dazu weisen wir der Variable einfach den neuen Wert zu:
<?php $name ="Paul Meier"; echo "Zuerst heiße ich $name <br>"; $name ="Stefan Müller"; echo "Dann ist mein Name $name";?>
Die Ausgabe wäre dann:
Zuerst heiße ich Paul Meier
Dann ist mein Name Stefan Müller
Bisher wäre diese Funktion nur bei sehr langen Texten interessant, möchte man z.B. eine Person an 10 verschiedenen Stellen ansprechen.
Wenn wir jedoch mit echo nur eine Variable abrufen (keinen weiteren Text), dann können (müssen aber nicht) wir die Anführungszeichen weglassen.
Der Code:
<?php $name ="Nils Reimers"; echo $name;?>
Man kann auch an eine bereits vorhandene Variable eine weitere Variable, oder einen Text anhängen.
<?php $name ="Nils "; $name .="Reimers"; echo $name;?>
Ausgabe: Nils Reimers
Soll eine Variable oder ein Text an eine bereits bestehende Variable „angehängt“ werden, geschieht dies mit einemPunkt vor dem Gleichheitszeichen. Dadurch erkennt PHP, dass der nach dem Gleichheitszeichen folgende Text oder die folgende Variable an die bestehende Variable angehängt werden soll.
Eine Variable kann theoretisch unendlich oft verlängert werden.
Dies können wir auch direkt in dem echo benutzen:
<?php $name ="Nils"; echo "Mein Name ist ".$name." Reimers";?>
Hier haben wir eine zusammengesetzte Ausgabe. Zuerst geben wir Mein Name ist aus, nach den Anführungszeichen setzen wir einen Punkt und dann die Variable.
Nach der Variable können wir entweder mit Semikolon die Ausgabe beenden, aber hier haben wir noch den TextReimers angehängt.
Dies geht selbstverständlich auch mit Variablen:
<?php $farbe ="rotes"; $text ="Wir haben ein ".$farbe." Haus"; echo $text;?>
Diese Methode wird später noch des öfteren benutzt.
Rechnen mit Variablen
Natürlich kann man mit PHP auch rechnen.
Weist man einer Variable eine Zahl zu, so dürfen im Gegensatz zum Text hier keine Anführungszeichen benutzt werden, da PHP dieses sonst als Text behandeln würde.
<?php $zahl1 =10; $zahl2 =5;?>
In diesen Variablen sind jetzt die Zahlen 10 und 5gespeichert.
Jetzt lassen wir mal rechnen:
<?php echo $zahl1 + $zahl2;?>
Als Ergebnis erhalten wir die Summe der beiden Zahlen. Natürlich könnten wir dies einfach auch so schreiben:
<?php echo 10+5;?>
Falls aber diese Zahlen zu einem späteren Zeitpunkt nochmals benutzt werden sollen, speichert man diese am besten in Variablen.
<?php $zahl =1; $ergebnis = $zahl +5; echo $ergebnis;?>
Hier einige weitere Beispiele:
<?php echo $zahl1 + $zahl2;//addieren echo $zahl1 - $zahl2;//subtrahieren echo $zahl1 * $zahl2;//multiplizieren echo $zahl1 / $zahl2;//teilen/dividiern echo pow($zahl1,$zahl2);//Zahl1 hoch Zahl2 (102) echo sqrt(64);// Wurzel von 64?>
Natürlich können auch diese Ergebnisse wieder in extra Variablen gespeichert werden.
;
?>
Wir erinnern uns an das Input-Feld mit dem Namenvorname auf seite1.html, genau diese Eingabe rufen wir jetzt mit $_POST[„vorname“]; ab.
Klicken wir auf der Formularseite auf Absenden, so wirdseite2.php aufgerufen, dabei werden die Daten übermittelt und von dieser ausgegeben.
Mit $_POST[„vorname“]; können wir also die gesendeten Daten wieder abfragen.
[„vorname“] gibt den Namen des abgefragten Inputfeldes aus der Formularseite an (hier vorname).
Diese Abfrage kann auch in einer Variable gespeichert werden, um diese dann später flexibler weiterverarbeiten zu können.
Der Code dafür würde so aussehen:
<?php $vorname = $_POST["vorname"]; echo $vorname;?>
Soll $_POST[„vorname“]; in einer Variable ($vorname) gespeichert werden, darf $_POST[„vorname“]; nicht in Anführungszeichen stehen, da dieses sonst als Text interpretiert wird.
Natürlich können wir damit mehrere Eingaben abrufen. Dazu müssen die Befehle untereinander stehen.
<?php $vorname = $_POST["vorname"]; $nachname = $_POST["nachname"];?>
Neben der POST Methode gibt es auch noch die GETMethode.
Bei der GET Methode werden die zu übergebene Daten an die URL angehängt.
Würden wir unser Formular mit der Methode GET verschicken, so würde die URL am Ende etwa so aussehen.
seite2.php?vorname=Nils
Mit dem ? bestimmt der Browser, dass an die URL bestimmte Eingaben angehängt werden.
Das erste Wort nach dem Fragezeichen (vorname) ist der Feldname des Input-Feldes.
Alles was nach dem Gleichheitszeichen steht, ist die Eingabe (Nils).
Möchte man jetzt mehr als ein Feld übertragen, so werden die weiteren Feldnamen mit einem Und-Zeichen (&)angehängt.
Das sieht dann so aus:
seite2.php?nachname=Reimers&vorname=Nils
Werden diese Eingaben abrufen, sieht das so aus:
<?php echo $_GET["nachname"]; echo $_GET["vorname"];?>
Natürlich können wir diese Daten jeweils auch wieder in einzelne Variablen speichern.
[url=““%5D
ältere Versionen
Falls ihr eine ältere Version als 4.1.0 benutzt, müsst ihr noch die Langform der Befehle schreiben. Anstatt$_POST%5B“feldname“]; müsst ihr dann$HTTP_POST_VARS[„Feldname“]; und aus$_GET[„Feldname“]; wird$HTTP_GET_VARS[„Feldname“];.
Die Langformen werden genauso angewendet, wie die Kurzformen.
Allerdings sollte man, sofern es funktioniert, die Kurzform benutzen.
POST oder GET?
Wann benutzt man POST und wann GET ?
Die Frage ist leicht zu beantworten. Wenn man Eingaben aus einem Formular übergeben möchte, so sollte man immer POST benutzen.
Warum ?
Mit GET werden die Eingaben der URL angehängt, dadurch ist die Textlänge eingeschränkt, außerdem kann jeder im Browser-Verlauf an der URL erkennen, was als Daten übermittelt wurde, und bei einer Passworteingabe ist das nicht so schön.
Vorteil von GET
GET wird benutzt, wenn man einfache Informationen übergeben möchte. Soll zum Beispiel mit dem Klick auf einen Link eine Auswahl übergeben werden, so benutzt man die Methode GET
Ein Link in einer aufrufenden Seite könnte dann so aussehen:
<a href=“buch.php?seite=1″>Seite 1</a>
In diesem Beispiel würde die Eingabe 1 übermittelt werden.
Solche Links werden in PHP zur Programmierung dynamischer Seiten benutzt (z.B. Foren).
Wozu brauche ich später Variablen?
Nun haben wir jetzt die ersten Grundlagen über Variablen kennen gelernt.
Fragt man Einträge aus einer Datenbank oder Datei ab, werden diese zur besseren übersicht erst in Variablen gespeichert, dann aufbereitet (selektiert, sortiert, oder berechnet) und erst danach mit echo wieder ausgegeben.
Außerdem werden wir später kennen lernen, wie man Variablen überprüfen kann, also ob z.B. der Name Nils war oder ähnliches. Falls ihr hier Probleme habt, solltet Ihr diesen Abschnitt noch mal lesen.
Denn alles was jetzt folgt, fragt, überprüft und gibt Variablen aus.