Beiträge von Paule

    Größere Programme oder Skripte werden meist unübersichtlich und oft führen sie die gleichen oder zumindest ähnliche Aufgaben wiederholt aus. Funktionen ermöglichen die Modularisierung des Quelltextes und können mehrfach aufgerufen werden, ohne dass deren Code dabei doppelt oder dreifach im Skript vorkommt. Funktionen haben wir sogar schon genutzt: "echo" zur Ausgabe ist beispielsweise eine vordefinierte Funktion, welche wir praktischerweise schon gleich am Anfang verwendet haben. (beispiel_14.php) 01: <?php 02: 03: function trennlinie() 04: { 05: echo "****************************************"; 06: } 07: 08: trennlinie(); 09: echo "PHP ist toll!"; 10: trennlinie(); 11: 12: ?> Auch wenn Beispiel 14 noch keinen richtigen Sinn ergibt, da die Funktion selbst nur einen Befehl enthält, ist es doch ein mögliches Skript. Bevor wir eine Funktion benutzen können, muss die Funktion definiert werden. Dies geschieht in Beispiel 14 in der Zeile 3 bis 6. Die Definition beginnt mit "function", anschließend folgt der Bezeichner (hier ist es "trennlinie") und zwei Klammern "()", zu denen ich später nochmal zurückkomme. Zwischen den geschweiften Klammern kommt der Anweisungsblock der Funktion. Damit wäre die Funktion auch schon definiert. In Zeile 8 sowie 10 wird die Funktion aufgerufen (mit den noch mysteriösen Klammern): Einfach der Bezeichner und wie am Ende jeder PHP-Zeile ein Strichpunkt. Beim Ausführen springt PHP also von der aufrufenden Zeile zur Definition der Funktion, führt deren Anweisungsblock aus und arbeitet die folgenden Zeilen nach dem Aufruf ab. Ein Funktionsaufruf ist überall möglich, auch von anderen Funktionen heraus. Kurz in diesem Zusammenhang etwas zum Programmierstil: PHP ist es grundsätzlich egal, wo die Funktionen im Quelltext definiert werden (außer innerhalb Verzweigungen, Schleifen oder anderen Funktionen), als Quasi-Standard ist es allerdings üblich, die Funktion ganz am Anfang direkt nach "<?php" zu definieren. Der Bezeichner einer Funktion ist gleichsam einem Variablen-Namen zu wählen: Erlaubt sind Buchstaben (außer Umlaute und scharfes S), Zahlen und als Sonderzeichen nur der Unterstrich "_". Das erste Zeichen des Bezeichners muss ein Buchstabe sein, zudem darf die Funktion nicht wie eine bereits vorhandene Funktion lauten. (beispiel_15.php) 01: <?php 02: 03: function trennlinie() 04: { 05: for(1=1; 1<=40; 1++) echo ""; 06: echo " "; 07: } 08: 09: trennlinie("*"); 10: echo "PHP ist toll!"; 11: trennlinie("*"); 12: 13: ?> Beispiel 15 demonstriert eine Funktion mit Parameterübergabe. Der Unterschied zur Funktion in Beispiel 14 zeigt sich im Kopf der Funktion. In den Klammern wird nämlich jetzt ein Parameter definiert. Dazu wird ein Variablennamen im Kopf festgelegt, der sich innerhalb der Funktion weiterverarbeiten lässt. Mehrere Parameter schreiben Sie einfach mit Kommata getrennt hintereinander. Beim Aufruf der Funktion lässt sich nun ein Wert übergeben. Mehrere Parameter müssen auch, wie beim Funktionskopf definiert, in der korrekten Reihenfolge und durch Kommata getrennt angegeben werden. Beispiel 16 zeigt schließlich noch eine Funktion mit Rückgabewert. Um einen Wert zurückzugeben, wird üblicherweise in der letzten Zeile der Funktion "return", gefolgt von einer Variable oder einem konstanten Wert, geschrieben. Aber auch ein Ausdruck ist möglich (Zeile 7). (beispiel_16.php) 01: <?php 02: 03: function trennlinie(, ) 04: { 05: = ""; 06: for(1=1; 1<=; 1++) = . ; 07: return . " "; 08: } 09: 10: echo trennlinie("*", 40); 11: echo "PHP ist toll!"; 12: echo trennlinie("*", 40); 13: 14: ?> Ohne Beispiel: Bei der Übergabe der Werte als Parameter an eine Funktion werden diese bei Änderung nur innerhalb der Funktion geändert (lokal). Global, also außerhalb der Funktion, bleibt der Parameter unverändert. Möchtest Du das Gegenteil erreichen, hilft ein Verweis durch vorstellen des kaufmännischen Unds "&" vor den Variablennamen im Funktionskopf für alle Aufrufe der Funktion oder im Aufruf selbst für nur diesen einen Aufruf.

    Auch Schleifen gehören zu Kontrollstrukturen einer Programmiersprache, PHP bietet wie die meisten Programmiersprachen drei verschiedene Schleifen an. Und obwohl alle drei Schleifen ähnliche Aufgaben wiederholt ausführen sollen, gibt es gewisse Unterschiede, die die einzelnen Schleifen im Besonderen auszeichnen. (beispiel_10.php) 01: <?php 02: <#$>i = 1; 03: while(<#$>i <= 10) 04: { 05: echo <#$>i++; 06: if(<#$>i <= 10) echo ", "; 07: } 08: ?> In Beispiel 10 haben wir zunächst die einfache While-Schleife. In Zeile 2 wird die Variable "<#$>i" auf den Wert "1" gesetzt. Die folgende Schleife von Zeile 3 bis 7 hat die Aufgabe die Zahlenfolge 1, 2, 3, ..., 10 auszugeben. Die Eintrittsbedingung der Schleife steht in Klammern gleich hinter "while" und lässt sich folgendermaßen übersetzen: Solange "<#$>i" kleiner oder gleich "10" ist, wiederhole folgendes. Was die Schleife wiederholt ausführen soll, steht als Block in gescheiften Klammern. In unserem Beispiel wird "<#$>i" ausgegeben und nachfolgend um eins erhöht, letzteres wird durch "$i++" bewerkstelligt (Zeile 5). Dann kommt noch eine Verzweigung, die die Kommata zwischen den Zahlen setzt, aber verhindert, dass dies auch nach der letzten ausgegebenen Zahl geschieht. "<#$>i" wird also bei jedem Schleifendurchlauf um eins erhöht bis "<#$>i" den Wert "11" trägt, dann wird die Schleife nicht noch einmal durchlaufenm, denn die Bedingung ergibt false. (beispiel_11.php) 01: <?php 02: <#$>i = 1; 03: do 04: { 05: echo <#$>i++; 06: if(<#$>i <= 10) echo ", "; 07: } 08: while(<#$>i <= 10) 09: ?> Die Do-While-Schleife bringt uns das Beispiel 11 näher. Der Unterschied zur vorherigen Schleife ist, dass die Bedingung anstatt am Anfang nun am Ende steht. Ich möchte darauf hinweisen, dass eine Schleife solange durchlaufen wird, wie die Bedingung wahr (true) zurückgibt. Sie sollten zudem beim Programmieren unbedingt darauf achten keine Endlosschleifen zu schaffen, bei der also die Bedingung niemals falsch (false) ergibt und somit das Programm oder PHP-Skript ohne Eingriff des Benutzers nie beendet werden kann. In unserem Beispiel etwa bräuchten Sie für eine Endlosschleife nur "<#$>i--" anstatt "<#$>i++" einzugeben: "<#$>i" wird dann nicht mehr um eins erhöht sondern dekremeniert. Die Schleifenbedingung gibt immer true zurück. Das Beispiel 11 erledigt die selbe Aufgabe wie Beispiel 10 und doch gibt es einen entscheidenen Unterschied wenn wir in beiden Beispielen in Zeile 2 der Variable "<#$>i" den Wert "100" zuweisen. Bei Beispiel 10 wird nichts ausgegeben, die Schleife aus dem Beispiel 11 wird jedoch einmal durchlaufen und 100 ausgegeben. Die Do-While-Schleife wird also auf jeden Fall einmal durchlaufen, denn hier steht die Bedingung am Ende und diese wird auch erst nach dem ersten Schleifendurchlauf auf ihr Ergebnis hin überprüft. (beispiel_12.php) 01: <?php 02: for(<#$>i = 1; <#$>i < 11; <#$>i++) 03: { 04: echo <#$>i; 05: if(<#$>i < 10) echo ", "; 06: } 07: ?> Die dritte Schleife im Bunde ist auch die komplizierteste. Bei der For-Schleife in Beispiel 12 lässt sich genau bestimmen wie oft sie durchlaufen werden soll, da sie ihren eigenen Zähler mit sich führt. Zunächst wird der For-Schleife ein Startwert übergeben, in diesem Fall ist es "<#$>i = 1". Durch jeweils einem Strichpunkt getrennt folgen die Schleifenbedingung ("<#$>i < 11") und eine Anweisung die nach jedem Schleifendurchlauf ausgeführt werden soll (<#$>i++). Beim ersten Schleifendurchlauf wird also zunächst "<#$>i" auf 1 gesetzt und die Bedingung überprüft. Lautet das Ergebnis dabei true wird der nachstehende Schleifenblock abgearbeitet und am Ende die Variable "<#$>i" um eins erhöht (gemäß "<#$>i++"). Dann geht das Spielchen wieder von vorne los: Das Ergebnis der Bedingung wird ausgewertet, bei true wird der Block der Schleife durchlaufen und am Ende die Anweisung ausgeführt, bei false wird die For-Schleife verlassen. Alle Parameter der For-Schleife (Startwert, Bedingung und Anweisung) sind optional und müssen nicht angegeben werden. Dadurch lässt sich relativ einfach eine Endlosschleife programmieren, die nur durch "break;" beendet werden kann. Beispiel 13 zeigt eine, zugegeben missbrauchte, For-Schleife ohne jegliche Parameter. (beispiel_13.php) 01: <?php 02: $i = 1; 03: for(;;) 04: { 05: if($i == 10) { echo $i; break; } 06: echo $i . ", "; 07: $i++; 08: } 09: ?>

    Durch Verzweigungen kann ein Programm oder Skript unter Vorgabe bestimmter Bedingungen, die wir im vorherigem Kurs-Teil bereits besprochen haben, auf Ereignisse während des Ablaufes reagieren. PHP bietet verschiedene Verzweigungen an, einige sogar in verschiedenen Schreibweisen. (beispiel_07.php) 01: <?php 02: $x = 5; 03: $y = 7; 04: $z = 6; 05: if($x < $y) 06: { 07: echo "x = $x"; 08: echo "y = $y"; 09: echo "x ist kleiner als y"; 10: if($x < $z) 11: { 12: echo "x = $x"; 13: echo "z = $z"; 14: echo "x ist auch kleiner als z"; 15: } 16: } 17: if($y < $z) 18: { 19: echo "y = $y"; 20: echo "z = $z"; 21: echo "y ist kleiner als z"; 22: } 23: else 24: { 25: echo "y = $y"; 26: echo "z = $z"; 27: echo "y ist größer als oder gleich z"; 28: } 29: ?> In Beispiel 7 steht zunächst die uns schon bekannte if-Verzweigung. Im Kurs-Teil 4 enthielt die if-Verzweigung nur eine Anweisung, diese kannst du also direkt hinter der Verzweigung schreiben. Soll eine Verzweigung mehrere Anweisungen enthalten, dann fasst man die Anweisungen zu einem Block zusammen, dessen Anfang und Ende mit geschweiften Klammern markiert wird. Außerdem ist es möglich if-Verzweigungen zu schachteln: Der Anweisungsblock der ersten if-Verzweigung beinhaltet im Beispiel eine weitere if-Verzweigung (Zeile 10), die dann natürlich auch wiederum ihren eigenen Anweisungsblock haben kann. Die zweite Verzweigung ist eine if-else-Verzweigung. Wenn die Bedingung der Verzweigung wahr ist, dann wird der Block direkt unter "if()" ausgeführt, wenn der Ergebniswert der Bedingung aber unwahr (false) ist, dann wird immer der Block unter "else" ausgeführt. Sollte direkt hinter "else" wieder eine if-Anweisung kommen, dann kannst du dafür auch als andere Schreibweise "elseif" benutzen. "else if()" und "elseif()" verhalten sich quasi identisch, eine Mehrfachverzweigung ist damit auch möglich. Zu beachten ist aber, dass die elseif-Anweisung nur ausgeführt wird, wenn die Bedingung der vorherigen if- oder elseif-Anweisung false ergab. (beispiel_08.php) 01: <?php 02: $x = 2; 03: $y = 7; 04: if ($x < $y): 05: echo "x = $x"; 06: echo "y = $y"; 07: echo "x ist kleiner als y"; 08: else: 09: echo "x = $x"; 10: echo "y = $y"; 11: echo "y ist größer als oder gleich x"; 12: endif; 13: switch($x) 14: { 15: case 1: 16: echo "x ist 1."; 17: break; 18: case 2: 19: echo "x ist 2."; 20: break; 21: case 3: 22: echo "x ist 3."; 23: break; 24: default: echo "x ist kleiner 1 oder größer 3."; 25: } 26: ?> Eine if-Verzweigung mit mehreren enthaltenen Anweisungen zeigt das Beispiel 8 nochmal in Zeile 4 bis 12 in einer anderen Schreibweise. Anstatt der geschweiften Klammern kann der Block am Anfang mit ":" nach "if()" oder "else" sowie "elseif" und am Ende mit "endif;" des Blockes markiert werden. In Zeile 13 bis 25 sehen wir eine switch-Verzweigung. Hier wird in jeder Bedingung mit "case" der genaue Wert mit der bei "switch()" angegebenen Variablen verglichen. "default" wird ausgeführt, wenn alle vorherigen Anweisungen mit "case" false ergaben. Wichtig ist zu wissen, dass PHP die switch-Verzweigung Zeile für Zeile abarbeitet, wenn eine Bedingung wahr ist, wird deren Anweisungen abgearbeitet und auch alle folgenden, "case" spielt dann keine Rolle mehr. Möchten Sie dies hingegen vermeiden, müssen Sie mit "break;" (Zeile 17, 20 und 23) das Verlassen und damit den Abbruch der Verzweigung erzwingen. x ist 2, stände bei "case 2:" kein "break;", dann würde PHP also auch die Anweisungen unter "case 3:" ausführen. Das folgende Beispiel 9 verdeutlicht die switch-Verzweigung schließlich in einer anderen Schreibweise, angelehnt an die alternative if-Verzweigung. Die schließende Klammer wird hier allerdings durch ein "endswitch;" ersetzt. (beispiel_09.php) 01: <?php 02: $x = 2; 03: switch($x): 04: case 1: 05: echo "x ist 1."; 06: break; 07: case 2: 08: echo "x ist 2."; 09: break; 10: case 3: 11: echo "x ist 3."; 12: break; 13: default: echo "x ist kleiner 1 oder größer 3."; 14: endswitch; 15: ?>

    Unsere kleinen PHP-Skripte wurden bis jetzt nacheinander abgearbeitet. Damit ein Skript oder auch Programm bei Ereignissen reagieren kann, gibt es Verzweigungen und Schleifen, die bei bestimmten Bedingungen durchlaufen werden. Zunächst geht es an dieser Stelle um die Bedingungen am Beispiel der if-Verzweigung. In den folgenden Kurs-Teilen dann speziell um Verzweigungen und danach um Schleifen. (beispiel_05.php) 01: <?php 02: $x = 5; 03: $y = 6; 04: if($x< $y) echo "$x ist kleiner als $y."; 05: ?> Wir haben im Beispiel also erst einmal wieder die übliche Einleitung mit "<?php", danach werden zwei Variablen definiert. In Zeile 4 kommt dann eine Verzweigung. In diesem Falle handelt es sich um die if-Verzweigung, in den Klammern steht die Bedingung und dahinter der oder die Befehle, die ausgeführt werden sollen, wenn die Bedingung erfüllt bzw. der Wahrheit entspricht. Die Bedingung selber ist wie Mathematik: x kleiner y. Damit lässt sich die Verzweigung folgendermaßen in Worte fassen: Wenn x kleiner y ist, dann gebe aus... . Das Kleiner-als-Zeichen ist hier der Operator, die Variablen und die zu vergleichenden Objekte. Operatoren und ihre Bedeutung: "==" - ist gleich "!=" - ist ungleich ">" - ist größer "<" - ist kleiner ">=" - ist größer oder gleich "<=" - ist kleiner oder gleich. Alle Operatoren lassen sich auf Zahlen als auch auf Zeichenketten anwenden, wobei es bei den letzten vier Operatoren im Bezug auf Zeichenketten einige Fallstricke gibt. Ein Problem stellen hier meist die deutschen Umlaute und das scharfe s (ß) dar. (beispiel_06.php) 01: <?php 02: $a = "Klaus"; 03: $b = "Hans"; 04: if($a == "Klaus") echo "Das ist Klaus."; 05: if($b != "Klaus") echo "Das aber nicht."; 06: if($a == "Klaus" && $b == "Hans") echo "Das sind Klaus und Hans."; 07: $b = "Dieter"; 08: if($a == "Klaus" || $b == "Hans") echo "Klaus oder Hans ist da und noch jemand."; 09: if(!($b == "Klaus")) echo "Klaus ist nicht da."; 10: ?> Beispiel 6 zeigt nochmal, dass Sie nicht nur Variablen in einer Bedingung miteinander vergleichen können, sondern auch Variablen mit einer Konstante, in Zeile 4 ist es beispielsweise "Klaus". In Zeile 6, 8 und 9 habe ich noch logische Operatoren mit hinein genommen. Logische Operatoren und ihre Bedeutung: "&&" - logisches Und"||" - logisches Oder"!" - logisches Nicht. Zeile 6 bedeutet dann also: Wenn a gleich "Klaus" ist und b gleich "Hans", dann gebe aus... . Während Sie das logische Und und das logische Oder zwischen zwei Teilbedingungen setzen, kommt das logische Nicht vor die Bedingung, es kehrt die Bedingung nämlich einfach um (Zeile 8): Wenn nicht b gleich Klaus ist, dann gebe aus... . Die Teilbedingung b gleich "Klaus" steht in Klammern, damit diese Bedingung (wie in der Mathematik) zuerst überprüft wird. Damit eine Verzweigung oder eine Schleife durchlaufen wird, muss die Bedingung wahr sein. Beim Programmieren heißt es auch true (wahr) zurückgeben. Wenn sich nicht wahr ist (false), dann wird die Verzweigung oder Schleife nicht ausgeführt.

    Üblicherweise werden PHP-Skripte in Dateien mit der Endung *.php gespeichert, allerdings kamen mit der Zeit auch einige Abwandlungen aufgrund verschiedener PHP-Versionen zustande, also etwa Dateien mit der Endung *.php3 oder *.php4. Bei Problemen mit PHP-Skripten auf Ihrem Server sollten Sie deshalb überprüfen ob Sie die richtige Dateiendung verwenden, da es hier und da bei den Webhostern Unterschiede gibt. Ich verwende in diesem kleinen Kurs für die Beispiele nur die Endung *.php. Wir beginnen zunächst mit einem kleinen und einfachen Skript, das lediglich die Aufgabe hat, "PC-Special" im Fenster des Browsers auszugeben. Die vor den vier Zeilen stehenden Nummern kennzeichnen nur die Zeile und gehören natürlich nicht zum PHP-Skript. (beispiel_01.php) 01: <?php 02: // Kommentar 03: echo "PC-Special"; 04: ?> Das PHP-Skript bzw. die gesamte Datei wird von oben nach unten abgearbeitet: In der ersten Zeile wird mit "<?php" eingeleitet um festzulegen, dass nachfolgend PHP-Syntax zu finden ist. In der dritten Zeile geben wir mit der Funktion "echo" das Wort "PC-Special" im Browser aus. Schließlich wird der PHP-Block mit "?>" wieder geschlossen. Zu beachten ist, dass jede PHP-Zeile abgesehen von einzelnen Ausnahmen mit einem Semikolon abgeschlossen wird. Kommentare in einem PHP-Skript, wie in der zweiten Zeilen, lassen sie mit "//" oder "/*" sowie "*/" realisieren. Bei "//" wird das gesamte Ende einer Zeile, also alles nach "//", als Kommentar gekennzeichnet. Mit "/*" und "*/" lässt sich ein mehrzeiliges Kommentar einklammern. In einer PHP-Datei darf neben der PHP-Syntax auch HTML vorkommen. Der PHP-Interpreter unterscheidet selbst zwischen PHP und HTML, allerdings sind trotzdem ein paar Regeln zu beachten. (beispiel_02.php) 01: <html> 02: <head> 03: <title>PC-Special</title> 04: </head> 05: <body> 06: <?php 07: /* Kommentar über 08: mehrere Zeilen */ 09: echo "<b>PC-Special - "; 10: ?> 11: Kostenlose PC-Hilfe in 24h! 12: </body> 13: </html> In der ersten Zeile sehen wir die übliche Einleitung in eine HTML-Datei mit "<html>", es folgt der Kopfteil mit der "<title>"-Angabe und schließlich der HTML-Körper und die End-Tags "</body>" sowie "</html>". Im HTML-Körper ist ein PHP-Skript: Es wird eingeleitet mit "<?php" und abgeschlossen mit "?>", dazwischen steht das eigentliche Skript. Diesmal finden wir ebenfalls die Funktion "echo", welche nun allerdings "PC-Special" mit HTML-Tags ausgibt. Im Browser sehen wir jedoch nicht "<b>PC-Special</b>" sondern ein fett gedrucktes "PC-Special". Die Ausgabe von "echo" erfolgt demnach im Quelltext der an den Browser gesendeten HTML-Datei. Nachfolgend beinhaltet die PHP-Datei noch eine normale Zeile in HTML. Damit können wir sagen, dass PHP und HTML miteinander "vermischt" werden können. Für HTML gelten die üblichen Regeln, PHP muss jedoch mit "<?php" eingeleitet und mit "?>" abgeschlossen werden. Zudem kann mit PHP auch HTML ausgegeben werden, welches vom Browser wie normales HTML interpretiert wird.

    PHP steht für »PHP: Hypertext Preprocessor« und ist eine serverseitige Skriptsprache, dass heißt die Skripte werden nicht auf dem Rechner des Besuchers (Client) ausgeführt (wie bei JavaScript) sondern auf dem Server. Die Software PHP selbst ist kostenlos und kommt meist zusammen mit dem ebenfalls frei verfügbaren Webserver Apache zum Einsatz. Damit sind wir ohne große Umschweife bei den Voraussetzungen um eine Website mit PHP realisieren zu können: Der Server bzw. der Webspace, auf dem Ihre Internetseite liegt, muss überhaupt erst einmal PHP unterstützen, um Ihre PHP-Skripte verarbeiten zu können. Meist sind Server mit solchen Leistungen kostenpflichtig. Zum Erstellen von PHP-Skripten brauchen Sie ansonsten nur einen einfachen Texteditor, bei größeren Projekten lohnt sich auch ein Editor mit Hervorhebung der Syntax für bessere Übersicht. Da, wie Sie zu Anfang schon gelesen haben, PHP-Skripte auf dem Server ausgeführt werden, erlangen Internetseiten eine gewisse Dynamik. Der Besucher kann sozusagen interaktiv mitagieren: Umfragen, Gästebücher, Foren und Kommentarfunktionen werden etwa meist mit PHP programmiert. Mit PHP-Skripten lassen sich zudem auch relativ einfach Formulare auswerten und die darin enthaltenen Daten weiterverarbeiten. Allerdings haben wir damit auch folgendes Problem: Sie können Ihre PHP-Skripte nicht ohne weiteres auf Ihrem lokalen Computer ausprobieren und testen. Dazu müssen Sie sich selber einen Server installieren. Ein Server ist im eigentlichen Sinne auch nur ein normaler Computer mit spezieller Software, und jetzt kommt wieder das Programm Apache sowie PHP zum Tragen: Das Softwarepaket, was Ihren Rechner zu einem Server macht, ist kurz WAMP bei Windows oder LAMP bei Linux. Wie Sie dies auf Ihrem Rechner einrichten und somit Ihren Computer zu einem Server machen, erfahren Sie in der Rubrik Helpline in der Unterkategorie Tipps & Tricks bei WAMP beziehungsweise LAMP. Ein eigener Server mit dem Softwarepaket WAMP oder LAMP ist zu empfehlen, wenn Sie besonders große Projekte planen. Fehler schleichen sich immer ein und das Beheben dauert auch immer so seine Zeit. Kurzum: Ein WAMP bzw. LAMP erspart Ihnen eventuell teure Internetzeit, die Sie zum Testen meistens einfach benötigen.

    Um Apache mit PHP und MySQL zu benutzen gehen Sie folgendermaßen vor. (1) Starten Sie Apache wie gewohnt. (2) Klicken Sie auf 'Start', 'Programme' und 'MS-DOS-Eingabeaufforderung'. (3) Geben Sie 'cd ' ein und drücken Sie auf 'Enter'. (4) Wechseln sie in das Verzeichnis, in dem Sie MySQL installiert haben, beispielsweise 'C:ProgrammeMySQL'. Sie geben also 'cd programme', 'cd mysql' jeweils gefolgt von einem Druck auf die 'Enter'-Taste ein. (5) Geben Sie 'mysqld.exe' ein und drücken Sie 'Enter'. (6) Starten Sie den Internet Explorer und surfen Sie auf 'http://127.0.0.1/'. Überprüfen Sie mit einem geeigneten PHP-Skript, ob alles funktioniert wie gewünscht. (7) Um MySQL zu beenden, geben Sie an der Eingabeaufforderung 'mysqladmin -u root shutdown' ein und drücken die 'Enter'-Taste. (8) Schließen Sie das Konsolenfenster von Apache, um Apache zu beenden oder klicken Sie auf die eventuell angelegte Verknüpfung auf dem Desktop oder im Startmenü.

    Um MySQL entgültig lauffähig zu machen, müssen Sie noch ein paar Einstellungen vornehmen. (1) Beenden Sie Apache, falls es geöffnet ist. (2) Legen Sie die Datei 'my.ini' mit unten stehendem Inhalt an und speichern Sie die Datei im Verzeichnis 'C:Windows'. Ändern Sie gegebenenfalls die Pfadangaben, wenn Sie MySQL nicht wie im Beispiel gezeigt unter 'C:ProgrammeMySQL' installiert haben. Verwenden Sie statt dem Backslash '' bei Pfadangaben immer den einfach Slash '/'. [mysqld]basedir=C:/Programme/MySQL datadir=C:/Programme/MySQL/data (3) Öffnen Sie die Datei 'php.ini' im Verzeichnis indem Sie PHP installiert haben, etwa 'C:ProgrammePHP', mit einem Doppelklick. (4) Füllen Sie im Abschnitt '[MySQL]' folgende Werte aus. mysql.default_port = 3306 mysql.default_host = localhost mysql.default_user = root

    MySQL wird in einem komprimierten Archiv heruntergeladen. (1) Entpacken Sie MySQL in ein temporäres Verzeichnis. (2) Starten Sie das Programm 'setup.exe' und klicken Sie zweimal auf 'Next'. (3) Wählen Sie das Verzeichnis, in dem Sie MySQL installieren wollen, etwa 'C:ProgrammeMySQL' und klicken Sie auf 'Next'. (4) Markieren Sie den Punkt 'Typical' und klicken Sie auf 'Next', um die Installation durchzuführen.

    Starten Sie wie gewohnt Apache und den Internet Explorer. Ihre PHP-Skripte und -Seiten müssen wie alle anderen über 'http://127.0.0.1/' zugänglichen Dateien im Wurzelverzeichnis des Servers oder tiefer gespeichert sein. Das Aufrufen der PHP-Seiten funktioniert ebenfalls wie gewohnt, etwa 'http://127.0.0.1/php-skript.php'.

    PHP kommt meist in einem komprimierten Archiv daher, welches Sie einfach etwa unter 'C:ProgrammePHP' entpacken. Die folgenden Schritte beschreiben, wie Sie anschließend Apache mit PHP bekannt machen und PHP konfigurieren. (1) Beenden Sie Apache, falls es geöffnet sein sollte. (2) Gehen Sie in das Verzeichnis, in das Sie Apache installiert haben, etwa 'C:ProgrammeApache'. (3) Klicken Sie sich zum Unterverzeichnis namens 'conf'. (4) Doppelklicken Sie auf die Datei 'httpd.conf'. Es öffnet sich eventuell das 'Öffnen mit...'-Fenster, wählen Sie darin 'notepad' aus und klicken auf 'OK'. (5) Suchen Sie die folgenden Zeilen mit Hilfe der Suchfunktion des Windows Editors und ergänzen Sie unter diesen Abschnitten die angegebenen Zeilen. Ändern Sie die in den Zeilen enthaltenden Pfade gegebenenfalls ab, wenn Sie Apache und/oder PHP in anderen Verzeichnissen installiert haben, nutzen Sie bei Pfadangaben aber anstatt Backslashes '' stets einfache Slashes '/'.

    <center><table> <tr> <td width="20%">Abschnitt</td> <td width="80%">[IfModule mod_alias.c] mit der Option 'ScriptAlias' </td> </tr> <tr> <td>Ergänzung</td> <td>ScriptAlias /php/ "C:/Programme/PHP/" </td> </tr> <tr> <td>Abschnitt</td> <td>[IfModule mod_mime.c] mit der Option 'AddType' </td> </tr> <tr> <td>Ergänzung</td> <td>AddType application/x-httpd-php .php AddType application/x-httpd-php .php3 AddType application/x-httpd-php .php4 </td> </tr> <tr> <td>Abschnitt</td> <td>nach [IfModule mod_mime.c]...[IfModule] die Option 'Action' </td> </tr> <tr> <td>Ergänzung</td> <td>Action application/x-httpd-php "/php/php.exe" </td> </tr><br /> <tr> <td>Abschnitt</td> <td>[IfModule mod_dir.c] mit der Option 'DirectoryIndex' </td> </tr> <tr> <td>Ergänzung</td> <td>DirectoryIndex index.html index.php index.php3 index.php4 </td> </tr></table></center> (6) Wechseln Sie in das Verzeichnis in dem Sie PHP installiert haben, etwa 'C:ProgrammePHP'. (8) Speichern Sie dort eine Kopie der Datei 'php.ini-dist' und benennen Sie sie 'php.ini'. (9) Öffnen Sie die Datei 'php.ini' mit einem Doppelklick und suchen Sie die Zeile mit dem Anfang 'doc_root' heraus. (10) Editieren Sie die Zeile in etwa so: 'doc_root = C:Eigene DateienServer'. Das angegebene Verzeichnis sollte das Wurzelverzeichnis Ihres Servers sein, wie Sie es auch bei Apache eingestellt haben.

    Apache sollte jetzt wie gewünscht funktionieren. Bevor Sie es ausprobieren, stellen Sie bitte sicher, dass sich im vorherigen Abschnitt eingestellten Wurzelverzeichnis auch wirklich eine Datei mit dem Namen 'index.html' befindet. (1) Klicken Sie auf 'Start', 'Pogramme', 'Apache httpd Server' und 'Start Apache in Console' um Apache zu starten. (2) Starten Sie den Internet Explorer. (3) Geben Sie in der Adresszeile 'http://127.0.0.1/' ein und drücken Sie die 'Enter'-Taste. Sollten Sie nun Ihre im Wurzelverzeichnis gespeicherte HTML-Seite sehen, dann wurde Apache ordnungsgemäß installiert. Hinweis: Beim Surfen durch 'http://127.0.0.1/' könnte der Internet Explorer mal eine Meldung ausgeben, dass die angeforderte Internetseite Offline nicht verfügbar sei. Klicken Sie dann einfach auf 'Verbindung herstellen'. Sollte es sich also wirklich nicht um eine externe Adresse handeln, dann funktioniert alles wie gewohnt, ansonsten öffnet sich die 'DFÜ-Verbindung' zur Einwahl in das Internet. Den Apache Server beenden Sie durch einen Klick auf das Kreuz rechts oben im Konsolenfenster. Nach einem kurzen Moment schließt sich das Fenster und Apache wurde ordnungsgemäß heruntergefahren. Eine andere Möglichkeit, Apache zu beenden, ist die Benutzung einer Batchdatei, die Sie sich erst erstellen müssen: (1) Starten Sie den Windows Editor. (2) Geben Sie die Zeile 'apache -k shutdown' ein. (3) Speichern Sie die Datei im Hauptverzeichnis von Apache, etwa unter 'C:ProgrammeApache', mit dem Namen 'Apache_herunterfahren.bat'. Wichtig ist dabei, dass die Datei die Endung '.bat' hat. (4) Legen Sie sich eine Verknüpfung zur Batchdatei im Startmenü oder auf dem Desktop an, damit Sie Apache komfortabel und einfach beenden können. Um Apache nun mit der erstellten Batchdatei zu beenden, brauchen Sie nur auf die entsprechende Verknüpfung im Startmenü oder auf dem Desktop klicken und Apache wird heruntergefahren.

    Apache ist nun installiert und kann noch optional konfiguriert werden. (1) Gehen Sie in das Verzeichnis, in das Sie Apache installiert haben, etwa 'C:ProgrammeApache'. (2) Klicken Sie sich zum Unterverzeichnis namens 'conf'. (3) Doppelklicken Sie auf die Datei 'httpd.conf'. Es öffnet sich das 'Öffnen mit...'-Fenster, wählen Sie darin 'notepad' aus und klicken Sie auf 'Ok'. (4) Klicken Sie im Menü des Windows Editors auf 'Suchen' und dann im Untermenü auf 'Suchen...'. (5) Geben Sie bei 'Suchen nach:' den Begriff 'documentroot' ein und klicken Sie auf 'Weitersuchen'. (6) Klicken Sie auf 'Abbrechen', um zum Dokument zurückzukehren. Die Zeile, die der Windows Editor gefunden hat, könnte in etwa 'DocumentRoot "C:/Programme/Apache/Apache/htdocs/"' lauten. Eventuell finden Sie diese Zeile auch weiter unten. Diese Einstellung legt das Wurzelverzeichnis Ihres Servers fest, wo sich später beispielsweise die Datei 'index.html' befindet. (7) Wenn Sie möchten, können Sie diese Zeile auf die eigenen Wünsche anpassen, beispielsweise 'DocumentRoot "C:/Eigene Dateien/Server/"'. Wichtig ist statt Backslashes '' unbedingt einfache Slashes zu verwenden '/'.

    Die Installation von Apache gestaltet sich relativ einfach. (1) Stellen Sie sicher, dass Sie den Windows Installer 2.0 und, falls Sie Windows 95 verwenden, das Windows Socket 2 Update auf Ihrem Rechner installiert haben. Mehr Informationen dazu finden Sie in den vorherigen Abschnitten. (2) Öffnen Sie den Ordner, in dem Sie die Datei beim Herunterladen gespeichert haben. (3) Doppelklicken Sie auf die heruntergeladene Datei, in meinem Fall also auf 'apache_1.3.19-win32-no_src-r2.msi'. Die anschließende Beschreibung trifft eventuell nur auf Apache 1.3.19 zu: (4) Klicken Sie auf 'Next'. (5) Lesen Sie sich die Lizenzbedingungen durch und markieren Sie anschließend den Punkt 'I accept the terms in the license agreement'. Klicken Sie zweimal auf 'Next'. (6) Geben Sie unter 'Network Domain' und 'Server Name' '127.0.0.1' ein. Tragen Sie Ihre E-Mail-Adresse unter 'Administrator's Email Address' ein. (7) Markieren Sie den Punkt 'Run when started manually, only for me (...)' und klicken Sie auf 'Next'. (8) Wählen Sie den Punkt 'Complete' und klicken Sie auf 'Next'. (9) Wählen Sie das Verzeichnis, in dem Apache installiert werden soll, beispielsweise 'C:ProgrammeApache' und klicken Sie auf 'Next'. (10) Klicken Sie auf 'Install', um die Installation durchzuführen. (11) Sie beenden die Installation schließlich mit einem Klick auf 'Finish'.

    Der Windows Installer 2.0 muss unter Windows Me nicht unbedingt installiert werden, es könnte aber sonst eventuell zu Problemen bei der Installation mit Apache kommen, besonders bei zukünftigen Versionen von Apache. (1) Beenden Sie alle geöffneten Programme. (2) Öffnen Sie den Ordner, in dem Sie die Datei beim Herunterladen gespeichert haben. (3) Doppelklicken Sie auf die Datei 'instmsi.exe'. (4) Die Installation wird sofort durchgeführt. Klicken Sie am Ende der Installation auf 'Ja', damit der Rechner neu gestartet wird.

    Das Windows Socket 2 Update brauchen Sie nur auf Computern mit Windows 95 durchzuführen, ansonsten gibt es zu dieser Installation eigentlich nicht viel zu sagen. (1) Beenden Sie alle geöffneten Programme. (2) Öffnen Sie den Ordner, in dem Sie die Datei beim Herunterladen gespeichert haben. (3) Doppelklicken Sie auf die Datei 'krnlupd.exe'. (4) Befolgen Sie anschließend die Anweisungen am Bildschirm und starten Sie nach Fertigstellung der Installation Ihren Rechner neu.

    Die in dieser Anleitung verwendete Version von Apache ist 1.3.19. Die aktuelle Version von Apache für Windows können Sie sich unter http://httpd.apache.org [1] besorgen. Beachten Sie dabei, dass es unterschiedliche Distributionen von Apache gibt, denn da Apache ein sogenanntes Open-Source-Projekt ist, gibt es Distributionen mit Quellcode und ohne. Ich habe eine Distribution ohne Quellcode verwendet, diese haben etwa den Dateinamen 'apache_1.3.19-win32-no_src-r2.msi', wobei 'no_src' auf eine Distribution ohne Quellcode hinweist. Bei der Installation von Apache auf Windows 95 benötigen Sie außerdem das Windows Socket 2 Update welches Sie unter http://download.microsoft.com/... (ca. 338 KB) [2] herunterladen können. Zusätzlich zu Apache benötigen Sie den Windows Installer 2.0 um Apache überhaupt installieren zu können.

    Den Windows Installer 2.0, kurz MSI, können Sie unter http://download.microsoft.com/... (ca. 1.708 KB) [3] herunterladen.

    [1] http://httpd.apache.org

    [2] http://download.microsoft.com/…e/3/W95/EN-US/Krnlupd.exe

    [3] http://download.microsoft.com/…0/W9XMe/EN-US/instmsi.exe

    Da Apache, PHP und MySQL unregelmäßig in neuen Versionen herauskommen, ist es immer schwer, in einer Anleitung zu sagen, welche Versionen der Software gerade die aktuellen sind. Deswegen gebe ich in unten stehender Tabelle einen Überblick der in dieser Anleitung verwendeten Versionen. Apache, PHP und MySQL werden unter ähnlichen Lizenzen wie GNU General Public License veröffentlicht und sind daher kostenlos einsetzbar.

    - http://httpd.apache.org

    - http://www.php.net

    - http://www.mysql.com