Was kann man mit PHP machen?

Die Seite wird erstellt Emil Hansen
 
WEITER LESEN
Was kann man mit PHP machen?
Artikel: Was ist PHP?

Möchte man dynamische Seiten erstellen, so braucht man PHP. PHP steht für "PHP: Hypertext
Preprocessor".
PHP Befehle kann man direkt bei den HTML-Befehlen hinschreiben, allerdings muss die Dateiendung
.php (oder .php3 / .php4) sein, sonst kann der Befehl nicht ausgeführt werden.

PHP ist eine serverseitige Programmiersprache. Sie wird am Server "geparsed", das heißt, der Code
wird vom Server direkt in z.B. einen HTML-Code umgewandelt und nur der HTML-Code wird dann an
den Browser des Besuchers geschickt. Der Besucher kann also den PHP-Code niemals einsehen. Er
kann ihn auch nicht runterladen (per Downloadmanager), außer wenn er ein FTP-Programm benutzt
(dann braucht er aber das Passwort vom Server).
Deswegen ist PHP ideal geeignet, Passwörter zu verstecken, weil diese Passwörter dann keiner
Einsehen kann.

Weil PHP eine serverseitige Programmiersprache ist, kann man sie auch nicht so einfach mit dem
Browser aufrufen. Um einen PHP-Script aufzurufen, muss man sich erst auf dem eigenem PC einen
virtuellen Server installieren. Dieser virtuelle Server muss den sogenannten PHP Intepreter enthalten,
dieser führt die PHP Scripts aus und das Ergebnis, z.B. eine HTML-Seite, wird dann an den Besucher
gesendet.

PHP-Triad

Um einen Virtuellen Server auf die eigene Festplatte zu kommen, muss man eigentlich einige Sachen
Installieren und diese auch noch Konfigurieren. Dies ist sehr schwer, und zum Glück gibt es da noch
PHP-Triad. PHP-Triad installiert einen Apache Server mit PHP und MySQL Unterstützung. Leider kostet
die neuste Version davon Geld, aber die älteren Version findet man dennoch im Netz, und die einzelnen
Sachen kann man leicht updaten.
Siehe: Anfang

Auch ein Vorteil ist, das PHP nicht Browser abhänig ist, also wenn der Script mit ihrem Browser
funktioniert, dann funktioniert er auch bei allen anderen Browsern. Dadurch muss man seinen Code
nicht mehr aufwendig testen.
Dies bedeutet aber nicht, dass das Ergebnis des Codes bei allen gleich Aussieht, denn jeder Browser
wandelt die HTML-Befehle anders um.

PHP ist ein sogenannter Interpreter, dies bedeutet, das PHP den Code von oben nach unten liest.
Deswegen muss man beim Schreiben des Codes immer auf die zeitliche Abfolge achten.

PHP ist frei verfügbar und lizenzfrei benutzbar. Entwickelt werden Sprache und Interpreter von der so
genannten PHP Group, einem Projektzusammenschluss von Programmierern.

Was kann man mit PHP machen?

Mit PHP kann man viel machen, auch wenn man die Sprache kaum beherrscht, kann man sie dennoch
sinnvoll in eine Seite einbauen.

Fast jedem ist bekannt, das man für ein Forum oder ein Gästebuch PHP braucht, aber mit PHP kann
man auch News-Scripts, Links-Verwaltungen, Userbereiche, Chat-Systeme, Suchmaschinen,
Statistiken, Rechnungen und vieles mehr machen.
Es ist sogar möglich, dass eine super große Homepage aus 1 PHP-Seite besteht, aber dennoch aus
unendlich Seiten besitzt.
So etwas kann man per Datenbank (z.B MySQL) machen. Der User ruft dann nur bestimmte Einträge
aus der Datenbank auf.
Auch wenn man keine Datenbank besitzt, ist dies dennoch möglich, allerdings verliert man dann leicht
den Überblick.

                                               Seite: 1
Was kann man mit PHP machen?
PHP installieren

PHP ist eine serverseitige Scriptsprache, das heißt, damit man PHP Programme bzw. die PHP Scripts
ausführen kann, benötigt man einen Webserver. Zum Glück geht das installieren leichter als es sich
anhört.
Mit XAMPP installieren wir einen Apache Server auf den eigenen Rechner, dazu noch PHP, MySQL und
vieles mehr.
Lad dir auf der angegeben Seite die Installer-Version für Windows (sofern dies dein Betriebssystem
sein sollte) runter.

Solltest du keinen Breitbandanschluss besitzen, reicht auf die Lite-Version von XAMPP. Diese bietet
allerdings keinen Installer an, deswegen musst du nach dem Entpacken der Archives (entweder Zip
oder Exe-Archiv) die setup_xampp.bat aufrufen.

Der Installer von XAMPP fragt, wohin man das Packet installiert haben möchte. Ich habe z.B.
c:\xampp\ angegeben, andere Pfade sind auch möglich.
Möchten wir jetzt unsere PHP-Scripts anschauen, so kopieren/speichern wir sie in den htdocs Ordner,
z.B. liegt er so: c:\xampp\xampp\htdocs.
Anschließend starten wir Xampp, das geht, indem wir die xampp_start.exe aufrufen und rufen unsere
Scripts dann mit dem Internet Browser auf.
Wenn wir den normalen Dateipfad (c:\xampp\...) benutzen wird der enthaltene PHP-Code nicht
ausgeführt, deshalb müssen wir die Scripts über den Webserver abrufen.

Dort wählen wir dann die PHP Datei aus und schon wird der Script ausgeführt.
Tipp: Lösche die enthaltenen Dateien im Ordner htdocs, die Ordner können erhalten bleiben. So
werden die PHP Dateien in einer Liste angezeigt.

Wenn eine Fehlermeldung erscheint, dann versuche mal die komplette URL zur Seite anzugeben. Wenn
ihr Unterordner im htdocs Ordner habt, dann muss der Name auch in der URL angegeben werden.

Das war schon das ganze Geheimnis der Server Installation.

Wenn man jetzt Xampp installiert hat, und den Apache Server startet, so ist dort normalerweise die
aktuellste PHP Version installiert.

Erste Schritte

Um zu sehen, ob auf einem Server überhaupt PHP installiert ist, benötigt man eine PHP-Datei (z.B.
phpinfo.php) mit folgendem Inhalt:

Diesen Code kannst du einfach in einem Texteditor, z.B. Notepad einfügen. Danach klickst du auf
speichern, und gibst als Dateinamen phpinfo.php an.
Bitte achte darauf, dass Notepade diese Datei nicht als Textdatei speichert.
Dann kopierst du die Datei in den Ordner htdocs.

Ruft man diese Seite jetzt auf (http://localhost/phpinfo.php), wird angezeigt, ob auf diesem Server
PHP installiert ist oder nicht. Ist PHP installiert, werden mehrere Tabellen angezeigt, in welchen

                                               Seite: 2
Was kann man mit PHP machen?
aufgelistet wird, was installiert ist und was nicht, unter anderem welche PHP-Version auf dem Server
installiert ist (steht ganz oben).
Ist kein PHP Installiert, wird entweder nichts angezeigt oder eine Fehlermeldung wird ausgegeben, evt.
wird uns die Datei auch zum Download angeboten.

PHP-Einbinden
In einer PHP-Datei können sowohl HTML-Befehle, als auch PHP-Befehle enthalten sein. Die HTML-
Befehle schreiben wir wie gewohnt in die PHP-Datei, so wie wir es aus den HTML-Dateien kennen.

Möchte man jetzt in die PHP-Datei PHP-Befehle einbinden, so muss man erst mit einer Einleitung
bestimmen, dass jetzt ein PHP-Script folgt.

Dafür gibt es 3 Möglichkeiten.
Die kürzeste Möglichkeit ist .

Es gibt auch eine längere Version, diese sieht so aus:
 PHP-Anweisungen 
Diese Variante würde ich nicht empfehlen, da sie keine Vorteile bringt und einfach nur länger ist.

Text ausgeben
Als erstes lernen wir, wie man einen normalen Text mit PHP ausgibt.

Dies geht mit Hilfe von echo bzw. print. Bei unseren Scripts wird immer echo benutzt.

Wir legen eine neue Datei an (z.B. hallo.php) und geben in diese folgenden Inhalt ein:

Wird nun diese Datei mit dem Browser aufgerufen, so erscheint als Ausgabe: Hello World.
Dies steht auch genauso im Browser-Quelltext (Quelltext anzeigen), aber ohne die PHP-Anweisungen.
(die spitzen Klammern und was so dazugehört).
Dies bedeutet, der eigentliche PHP-Code ist nicht sichtbar und kann somit auch nicht kopiert und
geklaut werden.

Wie schon oben erklärt, rufen wir ein PHP-Script immer in der ersten Zeile mit  beenden wir das PHP-Script.

                                                Seite: 3
Was kann man mit PHP machen?
Alles zwischen den Anführungszeichen gilt als Text und kann frei definiert werden, auch HTML-Befehle
sind möglich z.B.
echo "Hello World";

Damit würde das Hello World als Fett ausgegeben werden.

Möchte man jetzt Hello "World" ausgeben lassen, dann denkt man zuerst an folgende Schreibweise:

Allerdings erhalten wir dann die folgende Fehlermeldung:

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in
C:\xampp\xampp\htdocs\hallo.php on line 2

Diese Fehlermeldung ist sehr brauchbar, denn daran ist erkennbar, wo der Fehler begangen wurde und
meistens auch welcher.
on line 2 zeigt an, dass der Fehler in Zeile 2 liegt.
In dieser Zeile steht diese Anweisung:
echo "Hello "World"";

Also muss hier irgendetwas falsch sein!
Eigentlich ist es ganz logisch.
Der Befehl echo startet die Ausgabe immer ab dem 1. Anführungszeichen und gibt alles bis zum 2.
Anführungszeichen aus.
Da aber in dieser Befehlszeile insgesamt 4 Anführungszeichen zur Textausweisung benutzt werden, ist
keine klare Definition gegeben. Deshalb erfolgt diese Fehlermeldung und nicht die gewünschte
Ausgabe.

Also müssen wir die Anführungszeichen bei "World" mit einem Maskierungszeichen versehen.
Dazu benutzen wir den Backslash (\).

Das Script sieht dann so aus:

Dieses Maskierungszeichen muss vor jedem Anführungszeichen stehen, das als Text ausgegeben
werden soll.

Aber was ist wenn wir jetzt einen Backslash ausgeben möchten ? Auch dies geht, allerdings
wird dafür wieder ein Maskierungszeichen benötigt. Dazu nehmen wir einfach ein zweiten Backslash.

Dies sieht dann so aus:

                                               Seite: 4
Was kann man mit PHP machen?
Die Ausgabe ist dann: c:\xampp

PHP Seiten können aus PHP Scripts und HTML Befehlen bestehen, z.B. so:

Herzlich Willkommen

Dies war auch schon alles, was man über den Befehl echo wissen muss.

Wozu brauche ich denn diesen echo Befehl?
Man kann doch einen Text ja auch einfach mit HTML ausgeben.
Der Nachteil von HTML ist, dass keine dynamischen Texte ausgegeben werden können.
Anders bei PHP.

Auch wenn man PHP perfekt beherrscht, alle Texte werden mit echo (o.ä.) ausgegeben.
Das Besondere daran ist, dass diese Texte dann meistens dynamisch, z.B. aus einer Datenbank,
erzeugt werden.

Allerdings steuert man dann die Ausgabe, mit Hilfe von bestimmten Variablen. Der Besucher
bestimmt dann meistens selbst, welchen Text er erhält.

So ist das auch bei einem Forum. In der Titelzeile stehen bei Foren fast immer Werte (z.B.
?id=131&seite=2). Diese Werte bestimmen, welche Ausgabe der Besucher erhält.

Kommentare
Um in einem PHP-Script einen Kommentar einzufügen, oder um einen Befehl zu deaktivieren, benutzt
man # (Raute) oder // (2 Shlashs)

Alles was nach diesen Zeichen steht, wird nicht ausgeführt und ist in der Ausgabe auch nicht sichtbar.
Durch einen Zeilenumbruch beenden wir den Kommentar.

Kommentare sollten öfters benutzt werden, da man dadurch die Möglichkeit hat, den Überblick zu
bewahren. Auch wenn man z.B. nach zwei Monaten an dem Script etwas ändern möchte, helfen diese.

Manchmal ist es auch sinnvoll ein Kommentar über mehrere Zeilen zu haben, wenn man z.B. einen
Programmabschnitt auskommentieren möchte.
Solch ein Kommentar startet mit /* und endet mit */:

                                               Seite: 5
Was kann man mit PHP machen?
  PHP 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
Kleinschreibung geachtet 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:

In diesem Beispiel wird die Variable $name mit dem Inhalt Nils 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 Befehl echo.
Das Script für dieses Beispiel sieht dann so aus:

  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:

  Die Ausgabe wäre dann:
  Zuerst heiße ich Paul Meier
  Dann ist mein Name Stefan Müller

                                                 Seite: 6
Was kann man mit PHP machen?
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:

Man kann auch an eine bereits vorhandene Variable eine weitere Variable, oder einen Text anhängen.

Ausgabe: Nils Reimers

Soll eine Variable oder ein Text an eine bereits bestehende Variable "angehängt" werden, geschieht
dies mit einem Punkt 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:

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 Text Reimers angehängt.

Dies geht selbstverständlich auch mit Variablen:

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.

                                               Seite: 7
Was kann man mit PHP machen?

In diesen Variablen sind jetzt die Zahlen 10 und 5 gespeichert.

Jetzt lassen wir mal rechnen:

Als Ergebnis erhalten wir die Summe der beiden Zahlen. Natürlich könnten wir dies einfach auch so
schreiben:

Falls aber diese Zahlen zu einem späteren Zeitpunkt nochmals benutzt werden sollen, speichert man
diese am besten in Variablen.

Hier einige weitere Beispiele:

Natürlich können auch diese Ergebnisse wieder in extra Variablen gespeichert werden.

Decrementieren und incrementieren
Um den Wert einer Variable um 1 zu erhöhen bzw. um 1 zu verkleinern, gibt es einen einfachen Trick:

Ausgabe ist 2

Ausgabe ist 1

Wird an den Variablen-Namen (einer Zahlenvariable) ein doppeltes Pluszeichen in Form von ++
angehängt, so wird der Inhalt dieser Variable, also die Zahl incrementiert, das heißt um 1 erhöht.

                                               Seite: 8
Was kann man mit PHP machen?
Wird dagegen ein -- verwendet, wird der Wert decrementiert, also um 1 gesenkt.

Variablentypen
Da PHP den Typ von Variablen selber festlegt, brauchen wir diesen Aspekt beim Programmieren nicht
zu betrachten. Aber in Foren (o.ä.), werden immer bestimmte Fachausdrücke benutzt, um
Variablentypen zu beschreiben.
Ein Variablentyp legt fest, welchen Inhalt eine Variable haben soll.
Da aber wie gesagt, PHP den Typen selber festlegt, kann sich der Typ der Variable auch ändern.

Es gibt dabei folgende Typen:
Integer: Eine Integer-Variable enthält nur Ganzzahlen, d.h. Zahlen ohne Komma.
String: Dies ist eine Variable, die einen Text/Satz/Wort enthält.
Float: Eine Dezimalzahl, d.h. eine Zahl mit Komma. Man verwendet aber einen Punkt als Komma.
Double: Das gleiche wie float, nur mit mehr Nachkommastellen.
bool: Dies sind die Werte true und false

Bsp:

Variablen übergeben
Diese Möglichkeit ist ein sehr wichtiges Detail von PHP, denn damit ist es möglich, z.B. vom Besucher
eingegebene Texte oder berechnete Daten auf die nächste Seite zu übertragen.

Es gibt zwei Methoden um Variablen zu übergeben,
POST und GET.

Als erstes schauen wir uns POST an.

Als Beginn erstellen wir eine Seite mit einem ganz normalen Formular.

Dieses könnte zum Beispiel so aussehen:

Ihr Vorname:

Für dieses Formular benötigen wir kein PHP, also können wir das Formular auch in einem normalen
HTML-Dokument speichern (z.B. seite1.html).

Es ist auch wichtig, dass wir allen Eingabefeldern einen einzigartigen Namen zuweisen, damit wir sie
nach dem Absenden auf der zweiten Seite auch korrekt abfragen können.
Haben zwei Felder den selben Namen, so wird nur das letztere Feld übertragen, da die vorige Eingabe
überschrieben wird (entspricht einer Neudefinition dieser Variable)

                                               Seite: 9
Was kann man mit PHP machen?

Als nächstes erstellen wir seite2.php, an welche die Eingaben (hier: Ihr Name) gesendet wird.

Der Inhalt der seite2.php sieht dann so aus:

Wir erinnern uns an das Input-Feld mit dem Namen vorname auf seite1.html, genau diese Eingabe
rufen wir jetzt mit $_POST["vorname"]; ab.
Klicken wir auf der Formularseite auf Absenden, so wird seite2.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:

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.

Neben der POST Methode gibt es auch noch die GET Methode.

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:

                                               Seite: 10
Was kann man mit PHP machen?
seite2.php?nachname=Reimers&vorname=Nils

Werden diese Eingaben abrufen, sieht das so aus:

Natürlich können wir diese Daten jeweils auch wieder in einzelne Variablen speichern.

Ältere Versionen
Falls ihr eine ältere Version als 4.1.0 benutzt, müsst ihr noch die Langform der Befehle schreiben.
Anstatt $_POST["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:

Seite 1

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.

Im nächsten Teil lernen wir die PHP if-Anweisung kennen.

                                               Seite: 11
Was kann man mit PHP machen?
PHP: if Anweisungen

Bisher brachte PHP noch keinen großen Vorteil gegenüber HTML. Dies wird sich jetzt aber mit der if-
Anweisung ändern.

Mit if können wir überprüfen, ob bestimmte Bedingungen erfüllt bzw. nicht erfüllt sind.

Das Gerüst für eine if-Anweisung in PHP sieht so aus:

Die Bedingung, die überprüft werden soll, wird in Klammern direkt nach dem einleitenden if gesetzt.
Danach folgt in geschwungenen Klammern die auszuführende Anweisung, wenn die Bedingung
erfüllt (wahr/true) ist.

Schauen wir uns einmal ein kleines Beispiel an:

Die IF-Anweisung überprüft, ob die Variable $user als Inhalt Nils hat. Trifft dies zu, so gibt die
Bedingung wahr (true) zurück und als Ausgabe erhalten wir: Hallo Nils.

Zu beachten ist hier, dass zwei Ist-Gleich Zeichen benutzt werden. Mit nur einem Gleichheitszeichen
würde diese if-Anweisung nicht funktionieren, denn dort würde der Variable den Wert Nils
zugewiesen werden.
Außerdem darf kein Semikolon (;) hinter der if-Anweisung stehen.

Wenn die Variable $user nicht den Inhalt Nils hätte, so würde if false (falsch) zurückgeben und wir
würden keine Ausgabe erhalten.

Möchten wir aber auch eine Ausgabe erhalten wenn die Variable $user nicht den Inhalt Nils hat, so
benötigen wir die else-Anweisung.

Das Grundgerüst sieht dafür so aus:

Das else tritt immer dann ein, wenn wir false (falsch) erhalten.

Zum besseren Verständnis hier ein kleines Beispiel:
Was kann man mit PHP machen?
$user = "Klaus";

if($user=="Nils")
   {
   echo "Hallo Nils";
   }
else
   {
   echo "Du bist nicht Nils!";
   }
?>
Hat die Variable $user den Inhalt Nils, so erhalten wir als Ausgabe Hallo Nils, bei jedem anderen
Inhalt erhalten wir als Ausgabe Du bist nicht Nils!.

Hiermit können wir schon eine einfache, aber dennoch sichere Passwortabfrage erstellen.

Als erstes benötigen wir wieder ein Formular:

In diesem Formular geben wir dann das Passwort ein. Beim Klick auf "Absenden", wird die Seite
seite2.php aufgerufen und gleichzeitig an diese das Passwort übergeben.
- Genau wie es im Abschnitt Variablen unter Variablen übergeben beschrieben wurde.

seite2.php muss dann so aussehen:

Mit $passwort = $_POST["passwort"]; weisen wir der Variable den Inhalt des Passwortfeldes im
Formular zu.
Mit der if-Anweisung wird nun abgefragt, ob die Variable $passwort das Wort geheim als Inhalt
hat, also ob im Formular das Wort geheim auch eingegeben wurde.

Bei richtiger Eingabe, kommt man in den internen (Passwortgeschützen) Bereich.
Eine falsche Eingabe bewirkt die Ausgabe Das Passwort ist leider falsch.

Wir können natürlich auch if-Anweisungen innerhalb einer if-Anweisung erstellen. (verschachteln)

Dies sieht dann z.B. so aus:
Was kann man mit PHP machen?
   if($nachname=="Reimers")
       {
       echo "Reimers";
       }
   }
else
   {
   echo "Du bist nicht Nils";
   }
?>
Zuerst wird überprüft, ob die Variable $vorname den Inhalt Nils hat. Trifft dies zu, so wird Hallo Nils
ausgegeben.
Danach wird innerhalb der if-Anweisung mit einer weiteren if-Anweisung überprüft, ob die Variable
$nachname den Inhalt Reimers hat. Trifft dies ebenfalls zu, wird auch noch Reimers ausgegeben.

Wenn die Variable $vorname nicht den Inhalt Nils hat, so wird Du bist nicht Nils ausgegeben.
Es ist dann auch egal, ob $nachname Reimers ist oder nicht.

Genauso kann eine zweite if-Anweisung auch im else Teil stehen:

Wenn die Variable $user den Inhalt Nils hat, wird Hallo Nils ausgegeben.

Hat sie diesen Inhalt nicht, wird überprüft, ob der Inhalt Reimers ist. Hat sie diesen Inhalt, so wird
Hallo Herr Reimers ausgegeben.

Falls die Variable $user weder den Inhalt Nils, noch den Inhalt Reimers hat, dann wird Du bist nicht
Nils Reimers ausgegeben.

Des weiteren könnten man dies auch per else if lösen. Dies ist eine weitere if-Anweisungen, wenn die
vorherige nicht Zutrifft:
Was kann man mit PHP machen?
   {
   echo "Hallo Herr Meier";
   }
else
   {
   echo "Du bist weder Herr Reimers noch Herr Meier";
   }

?>
Man kann auch mit einer if-Anweisung abfragen, ob etwas nicht erfüllt ist.
Dies erreichen wir mit != (ungleich).

Ein kleines Beispiel hierfür:

Wenn die Variable $user einen anderen (ungleichen) Inhalt als Nils hat, so wird Du bist nicht Nils
ausgegeben.
Wenn sie aber doch diesen Inhalt (Nils) hat, so wird Hallo Nils ausgegeben.

Zwar könnte man hierfür auch die Abfrage == (Ist-Gleich) benutzen, aber wenn man überprüfen
möchte, ob überhaupt etwas im Formular eingegeben wurde, ist es besser, != zu benutzen.

Dies würde dann einfach so aussehen:

Als erstes fragen wir die übertragenen Daten wieder ab.
Wenn $user ungleich "" (leer) ist, erhalten wir Herzlich Willkommen $user.
Wurde das Eingabefeld nicht ausgefüllt, erhalten wir Das Feld User wurde nicht ausgefüllt.

Bei if-Anweisungen ist unbedingt darauf zu achten, dass alle geschwungenen Klammern wieder
geschlossen werden, da sonst das Script nicht funktioniert.

Manchmal möchte man auch mehrere Bedingungen überprüfen, dafür brauchen wir logische
Operatoren

Logische Operatoren

                                               Seite: 15
Was kann man mit PHP machen?
Oft reicht es nicht aus, nur eine Bedingung zu überprüfen. Wenn man z.B. eine Passwortabfrage
macht, möchte man wissen ob der Benutzername und das Passwort richtig sind.

Deshalb kann man in PHP mehrere Bedingungen miteinander verknüpfen. Natürlich kann man mehrere
if-Anweisungen benutzen, aber wenn man z.B. 5 Bedingungen überprüfen möchte, wäre dies doch sehr
unübersichtlich.

Für diesen Zweck gibt es die logischen Operatoren.
Hiermit können wir beliebig viele Bedingungen verschiedenst miteinander Verknüpfen.

Eine Passwortabfrage zum Beispiel würde dann so aussehen:

Hier werden $username und $passwort gemeinsam überprüft. Nur wenn beide Eingaben stimmen,
wird der Zugriff erlaubt.

Die Verbindung der beiden Bedingungen erfolgt über den Operator AND (und). Das selbe Ergebnis
erzielt man mit &&. Welche Schreibweise man letztendlich verwendet ist egal. Ich bevorzuge AND, da
es intuitiver aussieht.

Es gibt immer wieder Fälle, wo es reicht, dass nur eine Bedingung erfüllt ist.
Dafür gibt es den Operator OR (oder), manchmal wird er auch als || geschrieben:

Diese IF-Anweisung ist auch dann erfüllt, wenn nur eine der beiden Bedingungen erfüllt ist.
Zugegeben für eine Passwortabfrage macht das eher weniger Sinn, aber dazu später mehr.

Auch wenn bei OR beide Bedingungen erfüllt sind, erhalten wir als Ausgabe Zugriff erlaubt.

Man könnte eine Passwortabfrage auch für mehrere Personen erstellen, dazu verknüpfen wir die
verschiedenen Operatoren einfach:

Hier hätten nur Nils mit dem Passwort php-einfach oder Paul mit dem Passwort geheim zugriff. Ein Nils
der als Passwort z.B. geheim eingibt, hätte keinen Zutritt.

                                             Seite: 16
Was kann man mit PHP machen?
Es gibt jedoch noch die dritte Variante des logischen Operators, dabei darf nur eine Bedingung
wahr sein.

Diese Variante nennt sich exklusives oder und wird wie folgt geschrieben:

Jetzt wird nur dann die Anweisung ausgeführt, wenn die Variable $username den Inhalt Reimers hat,
oder die Variable $passwort den Inhalt php-einfach hat. Sind beide Inhalte richtig angeben, erfolgt
kein Zugriff.

Dieses "entweder oder" wird XOR geschrieben.

Noch mal:
Bei AND müssen beide Bedingungen erfüllt sein
Bei OR muss mindestens eine Bedingung erfüllt sein
Bei XOR darf nur eine Bedingungen erfüllt sein

Für eine echte Passwortabfrage würde man die Variablen $username und $passwort per Formular
eingeben.

Dazu benötigen wir zuerst wieder ein Formular mit zwei Input-Feldern.

Username:

Passwort:

In diesem Formular gibt man dann den Username und das Passwort ein. Klickt man danach auf
Absenden, wird seite2.php aufgerufen und an diese beiden Eingaben übergeben.

seite2.php muss dann so aussehen:

Als erstes Fragen wir die eingegebenen Daten ab.
Diese Eingaben werden in den Variablen $username und $passwort gespeichert.

Mit einer if-Anweisung und dem logischen Operator AND wird abgefragt, ob $username den Inhalt

                                             Seite: 17
Was kann man mit PHP machen?
Nils und $passwort den Inhalt php-einfach hat.
Nur wenn beide Eingaben richtig sind, kommen wir in den internen Bereich.

Übung

Dann wollen wir das Gelernte mal etwas anwenden.

Als erstes machen wir eine Passwortabfrage, bei der das Passwort verschlüsselt wird.

Zuerst brauchen wir wieder ein Formular.

Das sieht ungefähr so aus:

Benutzername:

Passwort:

Passwortabfragen sollten immer mit post übermittelt werden, denn wenn es mit get übermitteln
wurde, würde jeder später im Verlauf sehen können, welches Passwort man benutzt.

Jetzt kommen wir zum PHP Teil

Als erstes fragen wir die übertragenden Daten ganz einfach wieder ab.

Mit md5 verschlüsseln wie jetzt das Passwort. Benutzt man dafür md5 so kann dieser Verschlüsselung
nicht wieder rückgängig gemacht werden.

Ein Wort das mit md5 verschlüsselt wurde, sieht dann ca. so aus:
fd0d9cdefd5d42dfa36c74a449aa8214 (php-einfach)

Damit wir jetzt eine if-Anweisung machen können, müssen wir zuerst das Passwort in einen md5-
String (Text) umwandeln.

Dafür können wir den md5-Generator benutzen, oder wir machen einen eigenen Generator.

Unseren Code müssen wir dann so abwandeln.

                                              Seite: 18
Was kann man mit PHP machen?
Drücken wir auf Absenden bei dem Formular, erhalten wir das eingegebene Wort als md5-String (Text)
wieder ausgegeben. Diesen Code kopieren wir uns dann.

Achtung: Die md5-Funktion unterscheidet zwischen Groß- und Kleinschreibung.

clanwissen sieht umgewandelt so aus:
c6a7fa7d60010437e84ad75cae1fa928

Clanwissen sieht umgewandelt so aus:
5d959937101f826b0b67bb3a8c1cbb27

Jetzt kommt die if-Anweisung. Damit überprüfen wir, ob das verschlüsselte Passwort das gleiche ist,
das wir gespeichert haben.

Unser Code sieht dann so aus:

In der if-Anweisung schreiben wir jetzt unseren md5-String (Text) hinein.

Drückt man bei dem Formular auf Absenden, so werden diese Daten an seite2.php gesendet.
seite2.php fragt diese Eingaben ab, und verschlüsselt das Textfeld passwort in einen md5-String.
Die if-Anweisung fragt dann ab, ob das eingegebene, verschlüsselte Passwort das gleiche ist, das in
der if-Anweisung steht.

Was habe ich jetzt davon?
Wenn jemand jetzt deinen Quelltext sieht, kann er nicht sofort erkennen, welches Passwort man
braucht, um in den internen Bereich zu kommen.
Die md5-Funktion ist auch wichtig, wenn man später Datenbanken benutzt, bei dem sich der User mit
Passwort und Benutzername einträgt.

Wenn man ein Passwort in einer Variable speichert, dann kann man bei manchen Free-Webspace
Anbietern ganz einfach diese Variable "ausspionieren". Diese Person hat dann ihr Passwort.
Wenn es aber verschlüsselt abgespeichert wurde, erhält er nur den md5-String, und weil man diesen
nicht entschlüsseln kann, ist ihm dieser Code so gut wie nutzlos.

Als nächstes überprüfen wir, ob alle Felder ausgefüllt wurden.

Wieder brauchen wir ein Formular:

E-Mail:

                                               Seite: 19
Was kann man mit PHP machen?
Kommentar:

In diesem Formular gibt man seine E-Mail Adresse an und ein Kommentar.

Diese Daten werden an seite2.php geschickt:

Wie immer fragen wir zuerst die übermittelten Daten ab.
Mit der if-Anweisung schauen wir, ob beide Felder ausgefüllt wurden, dazu brauchen wir OR.

Wenn ein oder beide Felder leer sind, erhält der Besucher eine Fehlermeldung.
Wenn er sie aber ausgefüllt hat, werden seine Eingaben gespeichert.
Wie das speichern geht, erfahrt ihr später.

Solch eine if-Anweisung braucht man ziemlich oft, z.B. bei Gästebüchern wird eine solche if-
Anweisung fast immer eingebaut.

Wie bereits versprochen, kann man mit PHP mehrere (unendlich) HTML-Dokumente in einer PHP-Datei
speichern.

Dies geht ganz einfach mit der GET Methode.

Deswegen braucht unser PHP-Dokument eine GET-Abfrage.

Die sieht so aus:

Damit haben wir jetzt als Eingabefeldnamen seite benutzt. Dieser Wert ist in der Variable $seite
gespeichert. Natürlich könnt ihr auch andere Namen benutzen, dann müsst ihr aber später aufpassen.

Wie wir bereits gelernt haben, werden Daten, die mit GET übermittelt werden, an die URL angehängt.
Also brauchen wir kein Formular, um bestimmte Eingaben zu senden, sondern hängen wir diese
einfach an die URL dran und drücken dann Enter.

Danach brauchen wir eine IF-Anweisung, die prüft was eingegeben wurde.

Diese kann so aussehen:
Was kann man mit PHP machen?
?>
Rufen wir dann im Browser diese Datei auf, erhalten wir zuerst eine leere Seite. Hängen wir aber jetzt
an die URL ?seite=index dran, erhalten wir die Ausgabe, die zwischen unserer IF-Anweisung steht.

Somit können wir jetzt beliebig viele Unterseiten einfügen.

Das sieht dann ca. so aus:

Rufen wir jetzt unsere URL mit dem Anhang ?seite=index auf, erhalten wir als Ausgabe nur
Indexseite, rufen wir allerdings diese Seite mit dem Anhang ?seite=start auf, erhalten wir als
Ausgabe nur Startseite.

Somit können wir viele Unterseiten in einer PHP-Datei speichern.

Wenn man möchte, das der Browser eine bestimmte Seite aufruft, wenn man nichts an die URL
drangehängt, brauchen wir isset. Damit können wir überprüfen, ob eine Variable (z.B. $seite) einen
Inhalt besitzt. Falls wir überprüfen möchten, ob eine Variable leer ist, benutzen wir !isset

Das Ausrufungszeichen ! steht für NOT. Die Funktion isset(); gibt entweder TRUE, sofern die Variable
existiert, sonst FALSE. Das NOT davor dreht das Ergebnis um.
Dies bedeutet, wenn die Variable existiert, wir aber !isset(); schreiben, erhalten wir ein FALSE. Wenn
sie nicht existiert, ein TRUE.

Der Script sieht dann so aus:

Wenn wir die Datei ohne Anhang aufrufen, erhalten wir die Ausgabe von ?seite=index.

Links könnten dann so aussehen:

                                               Seite: 21
Was kann man mit PHP machen?
Indexseite
Startseite
Natürlich könnten die Links auch in einer der if-Anweisungen stehen, ca. so:

Formulare können wir auch innerhalb einer Datei verschicken, dafür müssen wir nur bei action den
richtigen Anhang eintragen.

Ungefähr so:

Wenn das Formular innerhalb eines Dokumentes verschickt werden soll, reicht der Anhang, wenn wir
das aber an eine andere Seite schicken möchten, dann müssen wir auch den Dateinamen angeben.

Wozu braucht man dies?
Klar könnten wir alles in verschiedenen Dateien speichern, aber hat man z.B. bei einer Registration
mehrere Schritte (z.B. 10), dann müsste man 10 Dateien anlegen, mit diesem Prinzip aber nur 1 Datei.

Als nächstes Speichern wir etwas in eine Datei

PHP: Dateien

Bisher sind wir in der Lage, mit Variablen zu arbeiten, und diese zu überprüfen.
Zwar können wir so schon einen geschützten Bereich programmieren, aber oft möchte man ja
bestimmte Werte auch abspeichern. Dies können z.B. Daten aus einem Formular oder ähnliches sein.
Das abgespeicherte möchte man dann später natürlich auch wieder ausgeben. Für solche Aufgaben
verwendet man in PHP Dateien. In Dateien speichert man per PHP seine Werte und kann sie an
anderer Stelle wieder auslesen

Zunächst ist zu beachten, dass das Arbeiten mit Dateien immer in drei Schritten abläuft. Eine Datei
wird geöffnet, danach wir der Inhalt in die Datei geschrieben oder aus der Datei gelesen (oder auch
beides) und zum Schluss wird sie wieder geschlossen. Das öffnen von einer Datei ist eigentlich recht
einfach:

Der PHP-Befehl fopen öffnet die Datei Dateiname, der Modus bestimmt, was wir mit der Datei machen
möchten (lesen bzw. schreiben).
Außerdem müssen wir darauf achten, ab welcher Zeile PHP anfängt zu lesen (Anfang oder Ende der
Datei).

                                                 Seite: 22
Was kann man mit PHP machen?
Auch wichtig ist, ob PHP eine Datei anlegt oder nicht, sofern diese noch nicht existiert. Wenn man mit
PHP neue Dateien erstellen möchte, dann sollte man nicht r bzw. r+ benutzen.

Folgende Modi kann man benutzen:

                     Modus         Funktion         Dateizeiger Datei anlegen

                     r        Lesen                 Anfang         Nein

                     r+       Lesen und Schreiben Anfang           Nein

                     w        Schreiben             Anfang         Ja

                     w+       Lesen und Schreiben Anfang           Ja

                     a        Schreiben             Ende           Ja

                     a+       Lesen und Schreiben Ende             Ja

Wenn w / w+ benutzt wird, musst du darauf achten, dass der Inhalt des Dokuments ohne Nachfrage
überschrieben wird.

Für das Anlegen eines Logfiles benutzt man den Modus a, da der neue Eintrag immer am Ende
angehängt wird.

Wir machen jetzt als Beispiel einen simplen Textcounter (ohne Reloadsperre), denn an diesem Beispiel
lernen wir so gut wie alles, was wir später brauchen.

Zu erst öffnen wir eine Datei, ich empfehle eine Textdatei (counter.txt) zu benutzen, aber man kann
auch jedes andere Format benutzen.

Bei dem Modus r+ müssen wir darauf achten, das es diese Datei bereits vorhanden ist.

Dann wollen wir ja abfragen, wie viele Personen diese Seite schon aufgerufen haben, deswegen lesen
wir die Datei zuerst aus.

Mit fgets lesen wir eine Datei, der erste Wert in der Klammer gibt an, welche Datei wir lesen, der
zweite Wert wie viele Zeichen wir lesen.
In diesem fall 10 Zeichen, weil ein Counter i.d.R. nicht mehr als 10 Zeichen hat.
Das gelesene Speichern wir in der Variable $counterstand.

Aber was ist wenn diese Datei leer ist?
Dazu benutzen wir eine einfache if-Anweisung.

Hier wird überprüft, ob die Datei einen Inhalt hat, wenn sie keinen Inhalt hat, so wird der Counterstand
auf 0 gesetzt.

Wir wollen ja, wenn der Besucher die Site besucht, den Counterstand um 1 erhöhen.
Dies geht mit $counterstand++;.

                                               Seite: 23
Was kann man mit PHP machen?
Dabei wird der Wert von $counterstand um 1 erhöht. Der neue Wert ist wieder in $counterstand
gespeichert.

Danach müssen wir dem Besucher die Zahl ausgeben, das machen wir ganz einfach mit echo.

Durch das lesen des Counterstandes/der Datei, ist der 'Dateizeiger' nicht mehr am Anfang der Datei.
Würden wir jetzt den neuen Wert speichern, so würde der alte Wert nicht überschrieben werden. So
würde aus dem Counterstand 1 plötzlich eine 12 werden.

Mit rewind setzten wir den Dateizeiger wieder an den Anfang der Datei.

Und anschließend tragen wir den neuen Wert wieder in die Datei ein.

Mit fwrite (man kann auch fputs benutzen) tragen wir in die Datei ($datei) den neuen Counterstand
(der in der Variable $counterstand ist) ein.

Zum Schluss schließen wir noch die Datei:

Unser gesamte Code sieht dann so aus:

Durch die Arbeit mit Dateien sind auch noch viele weitere Anwendungen möglich, z.B. Logfiles,
Newsscripts, Gästebücher und sogar Foren.

Allerdings sind diese Sachen dann meistens alle recht Simpel gehalten und bieten kaum weitere
Funktionen, da dies sehr schwer zu realisieren ist.
Deswegen sollten wir uns nicht solange damit aufhalten, sondern lieber mit Datenbank (MySQL)
arbeiten.

Wichtig:
Wenn ihr mit diesen Prinzip auf eurem Server (Webspace) arbeitet, dann müsst ihr den Dateien, in
denen ihr etwas schreiben möchtet, die Schreibrechte CHMOD(unix) 777 geben.
Wie das geht erfahrt ihr hier.

Um eine Datei komplett auszugeben brauchen wir als erstes eine PHP Schleife.

PHP: Schleifen

                                             Seite: 24
Was kann man mit PHP machen?
While-Schleife
In manchen Fällen ist es notwendig, eine Anweisung so lange auszuführen, bis ein bestimmtes
Ergebnis eintritt.
Dies benutzt man z.B. auch um den Inhalt von Datenbanken (z.B. MySQL) oder einfach den Inhalt von
Dateien auszugeben.

PHP bietet dafür die while-Schleife und auch die for-Schleife an.
while-Schleifen werden vorallem in Verbindung mit Datenbanken verwendet, während for-Schleifen
meistens nur zum Hoch- bzw. Runterzählen von Werten verwendet werden.

Unser PHP Script enthält eine Schleife, die solange zählt, bis eine bestimmte Zahl erreicht ist.

Dafür brauchen wir als erstes ein Formular, indem wir die Zahl eingeben.

Eine Zahl zwischen 1 und 25:

Der nächste Schritt ist die while-Schleife.

Zuerst fragen wird selbstverständlich unseren Zahlenwert ab.

Bei while-Schleifen arbeitet man meistens mit einem "internen Counter", der zunächst initialisiert wird
- in diesem Fall mit dem Wert 0.

Diese Zahl speichern wir in der Variable $a.
Wir könnten natürlich auch jede andere Variable benutzen.

Der Wert entscheidet darüber, ab wann PHP anfangen soll zu zählen, wir könnten auch von -10 zählen
lassen.

Dann brauchen wir unsere while-Schleife.

Direkt nach dem einleitenden while wird innerhalb der runden Klammer die Bedingung gestellt.
Solange diese Bedingung zutrifft, wird jetzt die Anweisung, der Code innerhalb der geschwungenen
Klammern, ausgeführt.

Zum Anfang erhöhen wir den Wert von $a um eins, denn wir wollen dort als erste Zahl eine 1 stehen
haben.
Wir können natürlich auch am Schluss $a++ schreiben, dann wäre aber die erste Ausgabe eine Null.

                                                Seite: 25
Was kann man mit PHP machen?

Das erhöhen der Variable $a ist ganz wichtig, sonst würde sich PHP dumm und dämlich zählen, denn
die Bedingung wäre dann immer wahr.

Zwischen den geschwungenen Klammern geben wir die Zahl und ein Komma aus, damit es besser
aussieht.

Der ganze Script sieht dann so aus:

for-Schleife

Neben der while-Schleife gibt es auch noch die for-Schleife. Diese ist etwas komplizierter und mit
ihr lässt man nur Werte Hoch- bzw. Runterzählen.

Wir benutzen wieder das Beispiel mit dem Zählen.

Der erste Teil bleibt gleich:

Doch jetzt brauchen wir die for-Schleife.

Bei der for-Schleife geben wir die Variable $a innerhalb der runden Klammern an.
Dort geben wir nach dem erstem Semikolon (;) die Bedingung an. Zum Schluss (auch durch ein
Semikolon ; getrennt) erhöhen wir den Wert von $a um 1.

                                             Seite: 26
Was kann man mit PHP machen?

Wir benutzen als Startwert 0, und die Schleife läuft insgesamt $zahl (max. 25) mal durch. Die erste
Ausgabe wird eine 0 sein.

Schleifen braucht man sehr oft, wenn man mit Datenbanken oder Dateien arbeitet.

Als nächstes schauen wir uns die Array Funktion an.

PHP: Array

Um verschiedene Werte in nur einer Variable zu speichern, verwendet man in PHP ein Array.

Bisher konnte jede Variable nur einen Wert speichern, in PHP können in einem Array beliebig viele
Werte gespeichert werden, auch von unterschiedlichen Typen. So kann ein PHP Array z.B. eine
Zeichenkette (String/Text), eine Ganzzahl und eine Zahl mit Kommastellen enthalten und auf jeden
dieser Werte kann man separat zugreifen.
Aber PHP kann noch mehr mit Arrays anstellen.

Das hört sich jetzt alles recht kompliziert an, ist aber ganz einfach, darum hier ein Beispiel:

Einem PHP Array wird ganz normal ein Variablenamen zugeordnet, hier wochentage, allerdings erfolgt
die Zuweisung der Daten nicht einfach durch das Gleichheitszeichen, sondern danach kommt noch der
Befehl: array();.
In diesem Befehl sind jetzt die verschiedenen Werte gespeichert, bei uns die ausgeschriebenen
Wochentage.

Das Zugreifen auf solch einen Wert ist auch relativ simpel:

Ausgabe: Montag

Wir geben zuerst wieder den Variable-Namen (wochentage) an und danach das Element bzw. den
Wert, auf das wir zugreifen möchten.
Ein Array hat dabei die enthaltenen Werte durchnummeriert, und fängt bei 0 an zu zählen.
Also mit $wochentage[0]; würden wir den Wert Sonntag erhalten, Montag hat die Nummer (bzw. den
Index) 1 und so weiter.

Bei großen Arrays wird es natürlich irgendwann umständlich, zu wissen, welche Nummer/Index zu
welchem Wert gehört, darum gibt es assoziative PHP Arrays.
Das heißt, man kann für einen Wert einen Schlüssel/Key zuweisen, dies kann z.B. eine andere
Zeichenkette sein.
Die Zuweisung erfolgt per: =>

                                               Seite: 27
Was kann man mit PHP machen?
Dies ist wieder ein Array mit unseren Namen der Wochentage. Dabei wurde dem Schlüssel so der Wert
Sonntag zugewiesen, dem Schlüssel mo dem Wert Montag.
Der Vorteil ist, dass man jetzt bequemer auf das Array zugreifen kann:

Ausgabe: Montag

Anstatt jetzt die Nummer/Index des Elementes anzugeben, gibt man hier den Schlüssel für das
Element an, also so für Sonntag, mo für Montag und sa für Samstag.

Selbstverständlich kann man nachträglich auch Werte in einem Array verändern:

Ausgabe: Monday

Das selbe gilt für Arrays mit Nummer/Indexen.

Ein weiterer Vorteil ist, dass man einem Array neue Werte hinzufügen kann, diese Werte könnten z.B.
aus einer Datenbank stammen.
Das ganze Funktioniert so:

Ausgabe: Lisa

Mit $mitarbeiter[] wird automatisch ein neues Element in unserem Array erstellt, und diesem wird der
Wert Lisa zugewiesen.

Wir könnten unser Array sogar so erstellen:

Hier wird zuerst ein leeres Array erstellt und danach werden die Mitarbeiter hinzugefügt.

Mit assoziativen PHP Arrays funktioniert dies ähnlich, aber wir müssen den Schlüssel mit angeben:

Ausgabe: Lisa Müller

Wenn der Schlüssel schon vergeben wurde, dann wird der Wert für die Schlüssel überschrieben.

Anzahl der Elemente

                                               Seite: 28
Was kann man mit PHP machen?
Wenn wir in einem Array dynamisch neue Elemente hinzufügen können, dann ist es sehr wichtig zu
wissen, wie viele Elemente das Array überhaupt enthält, dies funktioniert mit:
count($names_des_array);:

Ausgabe: 2

Wir erhalten als Ausgabe 2, denn in dem Array sind 2 Mitarbeiter gespeichert, der letzte Index ist
allerdings 1, weil bei 0 angefangen wird zu zählen.
Um den letzten Eintrag auszugeben, müssen wir von dem Wert einfach 1 abziehen.

Elemente ausgeben

Zum Ausgeben aller Elemente in einem Array benutzt man gewöhnlich eine Schleife, dies kann eine for
oder eine while Schleife sein:

Beide Varianten funktionieren einwandfrei, aber es gibt noch eine 3. Schleife: foreach

Im Schleifenkopf definieren wird, dass die Werte in $name gespeichert werden soll. Unter dieser
Variable können wir dann innerhalb der Schleife auf den jeweiligen Namen des Mitarbeiters zugreifen.

Suchen & Sortieren

Ein weiteres Feature ist, dass wir ein Array durchsuchen und sortieren können.
Zuerst die Suchfunktion, dies geht mit in_array($suche,$array);:
Was kann man mit PHP machen?
   }
?>
Hier überprüfen wir, ob Bob in dem Mitarbeiter-Array vorhanden ist, wenn ja, gibt die Funktion true
zurück, und ein Text wird ausgegeben (das Bob in dem Array vorhanden ist).

Das war auch schon das Gröbste zum Suchen, jetzt das Sortieren. Oft herrscht in so einem Array
'Chaos', dass z.B. die Mitarbeiter wild hinzugefügt wurden. Möchte man jetzt eine alphabetische Liste
der Mitarbeiter ausgeben, dann muss man das Array zuerst sortieren. PHP bietet dafür viele
Möglichkeiten.

Möchte man die Werte sortieren, verwendet man die Funktionen asort oder arsort, wobei asort eine
aufsteigende Reihenfolge (a,b,c,d) liefert und arsort eine absteigende (d,c,b,a).

Beispiel:

Hier wird per asort() das Array in aufsteigender Reihenfolge sortiert und danach mit foreach
ausgegeben.

Um die Schlüssel (mit deren Werte), zu sortieren, verwendet man ksort oder krsort. Beispiel:

Mehrdimensionale Arrays

In einem Array kann man ein weiteres Array, und in diesem Array wieder ein Array speichern, und so
weiter. Solche Arrays nennt man dann mehrdimensionale Arrays.
Die Dimension gibt dabei an, wie Tief diese Verschachtelung geht. Ein normales Array wäre ein 1-
dimensionales Array, wenn jetzt in dem Array ein weiteres Array gespeichert ist, ist dies ein 2-
dimensionales Array.

Dafür hier ein Beispiel:

                                              Seite: 30
Was kann man mit PHP machen?

Ausgabe: Vorname: Klaus Nachname: Zabel

Wie wir sehen, gibt man jetzt nicht nur einen Index an, sondern zwei. Der erste Index gibt an, welchen
Mitarbeiter wir aus der Liste haben möchte, und der zweite Index ob wir den Vornamen, oder den
Nachnamen ausgeben möchten.

Dies geht natürlich auch mit assoziativen Arrays und der 'anderen' Schreibweise:

Da wir jetzt in einem normalem Array ein assoziatives Array (also eins mit Schlüssel) speichern,
müssen wir als zweiten Wert auch den Schlüssel für Vor/Nachname angeben.

Dies geht natürlich auch mit noch mehr Dimensionen, z.B. so:

                                              Seite: 31
Was kann man mit PHP machen?
Dies ist schon etwas schwerer zu verstehen, aber wenn man es verstanden hat, sollte es eigentlich
keine weiteren Fragen zu Arrays geben.

Also zuerst haben wir wieder unser Array mit dem Mitarbeiter Klaus. Dabei benutzen wir diesmal gleich
ein assoziatives Array.
Für Klaus wurde jetzt der Vorname und der Nachname gespeichert, dies sollte ja noch bekannt sein.
Unter dem Schlüssel Kinder fügen wir jetzt ein weiteres Array hinzu, wobei jedes Element dieses
Arrays den Namen eines Kindes von ihm enthält.
Dieses Array mit den Kindernamen können wir ganz normal per foreach ausgeben.

Das war's auch schon was man über Arrays wissen muss.

Jetzt können wir Dateien komplett ausgeben.

Datei auslesen

Jetzt lernen wir, wie wir mit PHP eine Datei komplett auslesen können.

Dafür gibt es in PHP zwei Möglichkeiten, die erste Möglichkeit ist es, die Datei zeilenweise in ein Array
einzulesen.

Die erste Möglichkeit ist zu überprüfen, ob der Dateizeiger am Ende der Datei ist. Sobald der
Dateizeiger am Ende der Datei ist, hört der Script auf zu lesen.

Dies geht so:

Zuerst öffnen wir die Datei datei.txt mit dem Lesemodus r.

Die while-Schleife läuft solange bis, der Dateizeiger am Ende der Datei steht. Dies überprüfen wir mit
!feof.
Danach lesen wir einfach die nächsten 1024 Zeichen aus der Datei aus und geben diese aus.
Man kann natürlich auch einen anderen Wert benutzen, aber man sollte nicht so kleine Werte
benutzen, denn wenn ihr dort z.B. 2 eingebt, und eure Datei 1000 Zeichen hat, so muss die Schleife
500 mal durchlaufen. Dies dauert natürlich viel länger, als wenn PHP auf einmal z.B. 1024 Zeichen
liest.
Ihr könnt auch größere Werte benutzen, z.B. 5000.

Wenn der Dateizeiger am Ende angekommen ist, ist die while-Schleife beendet und die Datei wird
wieder geschlossen.

                                                Seite: 32
Was kann man mit PHP machen?

Die zweite Möglichkeit ist deutlich leichter, und zwar benutzt man dann den Befehl file:

Danach können wir den Inhalt des Arrays wieder mit einer geeigneten Schleife ausgeben. Entweder mit
einer while-Schleife, for-Schleife oder auch mit foreach.

Wir können den Inhalt jetzt so wie ein Array behandeln, also nach Werten suchen (in_array), diese
Werte sortieren oder auch Werte hinzufügen.

Ich würde die Funktion file() empfehlen.

Wir haben auch die Möglichkeit per implode() ein Array anhand eines Trennzeichen zu einem
String/Text zusammenzufügen:

Dabei wird als Trennzeichen "" (leer) benutzt. Man kann sich dieses aneinander hängen so vorstellen:
Zuerst wird das erste Arrayelement ($array[0]) in der Variable gespeichert, dann folgt das
Trennzeichen, danach kommt dann das zweite Arrayelement und dann wieder ein Trennzeichen und so
weiter.

Möchte man z.B. dass jede Zeile in der Datei auch eine neue Zeile im Browser ist, so wird als
Trennzeichen ein  benutzt:

Explode
Die explode Funktion ist sehr wichtig, wenn man mit Dateien arbeitet.
explode trennt einen Text an bestimmten Stellen (diese werden vom Programmierer bestimmt) und
speichert die Textabschnitte in einem Array. So können wir das Array wieder speziell Abfragen.

Diese Funktion bringt uns viele Vorteile, so können wir z.B. einen Login-Script basteln, das den
Benutzername und das Passwort in einer externen Datei speichert.
So können wir aber auch Texte viel leichter formatieren, z.B. die aus einem Gästebuch-Script.
Möchte man später das Design des Gästebuches verändern, so muss man nicht den ganzen Inhalt der
Datei verändern (in der die Einträge gespeichert sind), sondern man muss nur ein paar Zeilen im PHP-

                                               Seite: 33
Was kann man mit PHP machen?
Code verändern.

Die Funktion kann man sowohl bei Texten, als auch bei Inhalten von gelesenen Dateien benutzen.

Als Ausgabe erhalten wir folgendes Erhalten:
24.12.2006, Weihnachten Frohes Fest

Wir schreiben unseren Text in die Variable $zeile und trennen dann die einzelnen Abschnitte mit | (Alt
Gr +
Was kann man mit PHP machen?

foreach($datei AS $ausgabe)
   {
   $zerlegen = explode("|", $ausgabe);

     echo "Von $zerlegen[0]
     $zerlegen[1]";
     }
?>
Da wir einen Zeilenumbruch als Trennzeichen der einzelnen Einträge benutzt haben, empfiehlt es sich
hier, diese Datei per file() einzulesen.
Danach kommt eine foreach-Schleife. Jede Zeile aus der Datei wurde ja als eigenes Arrayelement
gespeichert, und mit der foreach-Schleife gehen wir diese nacheinander durch.

Dabei haben wir das aktuelle Arrayelement per AS in die Variable $ausgabe gespeichert. Mit explode
trennen wir die einzelnen Abschnitte voneinander, anhand des Trennzeichen | und speichern dies in
dem Array $zerlegen

Danach geben wir mit echo den Inhalt der Datei aus.

Die Ausgabe würde so aussehen:

Von PHP-Einfach
Wie geht es euch?

Von Andavos
Super Site

Von Peter Pan
Hier kann man echt viel lernen
Man kann natürlich auch eine for- oder while-Schleife benutzten, dies würde dann so aussehen:

                                             Seite: 35
Was kann man mit PHP machen?
Mit dieser Funktion können wir schon komplexe Scripts erstellen, die nur Textdateien
benötigen, darunter gehören auch recht sichere Login-Systeme.

Als nächstes schauen wir uns die Datum und Uhrzeit Funktion von PHP an.

Datum und Uhrzeit

Oft ist es interessant zu wissen, wann etwas gespeichert wurde, deswegen unterstützt PHP auch
Datums- und Uhrzeitangaben.

Das Datum und die Zeit werden von der Server Uhr abgelesen und können somit nicht von dem
Anwender manipuliert werden, allerdings sollte die Server Uhr dann auch richtig gehen.

In PHP ermittelt man die Uhrzeit zuerst mit einem UNIX-Timestamp. Dieser beinhaltet alle Sekunden
seit dem 1.1.1970 um 0:00 Uhr. Dadurch entsteht so ein Wert: 1266929979

Mit diesem Wert können wir noch nicht viel Anfangen, aber PHP darum um so mehr.

Aber zuerst brauchen wir den Timestamp, das geht so:

Mit dem Befehl time() ermitteln wir den aktuellen Timestamp und dieser wird in der Variable
$timestamp gespeichert.

Jetzt gibt es die Funktion date(format, timestamp)

Um jetzt ein Datum auszugeben, wenden wir den Befehl date mal an:

Das Ergebnis sieht so aus:
23.02.2010 - 13:59 Hier sind ein paar Formate die Ihr benutzen könnt.

                  Format                       Funktion                  Beispiel

                  d        Tag des Monats, zweistellig                  04, 15

                  j        Tag des Monats                               5, 23

                  m        Nummer des Monats, zweistellig               05, 12

                  n        Nummer des Monats                            4, 11

                  y        Jahr, zweistellig                            98, 05

                                                Seite: 36
Sie können auch lesen