Formation Seite 1/31 PHP - Online http://cours.creuter.lu Online-Kurs http://cours.creuter.lu Kurze Beschreibung der einzelnen Lektionen: • Lektion 1 (Theorie) Lektion 2 (Textausgaben und Rechnen) • Lektion 3 (Variablen in PHP) • Lektion 4 (Schleifen und andere Kontrollstrukturen) • Lektion 5 (Formulare und Mailversand • Lektion 6 (Dateiverwaltung) • Lektion 7 (Datenbanken) • Lektion 8 (Weitere Applikationen-Passwortschutz) • Lektion 9 (Weitere Applikationen-Forum) • Lektion 10 (Weitere Applikationen-Bildergallerie) • Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 2/31 PHP - Online Inhaltsverzeichnis Online-Kurs............................................................................................................................................................. 1 http://cours.creuter.lu .............................................................................................................................................. 1 Kurze Beschreibung der einzelnen Lektionen:................................................................................................... 1 Inhaltsverzeichnis.................................................................................................................................................... 2 Lektion1 (Theorie) .................................................................................................................................................. 4 Zur Geschichte von PHP ............................................................................................................................... 4 Was ist PHP? ................................................................................................................................................. 4 Wie funktioniert PHP? .................................................................................................................................. 4 Systemvoraussetzungen................................................................................................................................. 4 Informationen zu PHP ................................................................................................................................... 6 Lektion 2 (Textausgaben und Rechnen).................................................................................................................. 7 PHP Notation................................................................................................................................................. 7 PHP-Version herausfinden ............................................................................................................................ 7 "Hallo Welt"-Skript ....................................................................................................................................... 7 Kommentare .................................................................................................................................................. 7 Escape Zeichen.............................................................................................................................................. 8 Sonderzeichen ............................................................................................................................................... 8 Rechnen mit PHP .......................................................................................................................................... 8 Runden von Dezimalzahlen........................................................................................................................... 9 Zufallszahlen ................................................................................................................................................. 9 Lektion 3 (Variablen in PHP) ............................................................................................................................... 10 Variablen ..................................................................................................................................................... 10 Feldvariablen oder Arrays ........................................................................................................................... 11 Assoziative Arrays....................................................................................................................................... 11 Datumsfunktionen ....................................................................................................................................... 12 Lektion 4 (Schleifen und andere Kontrollstrukturen) ........................................................................................... 14 Blöcke.......................................................................................................................................................... 14 Logische Operatoren ................................................................................................................................... 14 If Else .......................................................................................................................................................... 15 Mehrfachauswertungen mit SWITCH......................................................................................................... 16 Schleifen...................................................................................................................................................... 16 Zählschleifen ............................................................................................................................................... 17 Funktionen................................................................................................................................................... 18 Lektion 5 (Formulare und Mailversand) ............................................................................................................... 19 Formulare .................................................................................................................................................... 19 Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 3/31 PHP - Online Mailversand ................................................................................................................................................. 21 Lektion 6 (Dateiverwaltung) ................................................................................................................................. 22 Lektion 7 (Datenbanken) ...................................................................................................................................... 24 SQL ............................................................................................................................................................. 24 PHPmyadmin............................................................................................................................................... 24 SQL und PHP .............................................................................................................................................. 24 Lektion 8 (Applikation: Passwortschutz).............................................................................................................. 27 Passwortschutz ............................................................................................................................................ 27 Sessions ....................................................................................................................................................... 27 Zum Passwortschutzskript........................................................................................................................... 28 Lektion 9 (Applikation: Forum)............................................................................................................................ 29 Forum .......................................................................................................................................................... 29 Lektion 10 (Applikation: Bildergallerie)............................................................................................................... 30 Bildergallerie ............................................................................................................................................... 30 Dokumentation...................................................................................................................................................... 31 Buchtipps .............................................................................................................................................................. 31 Software ................................................................................................................................................................ 31 Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 4/31 PHP - Online Lektion1 (Theorie) PHP ist eine Skriptsprache um dynamische Websites zu erstellen. Andere häufig benutzte Skriptsprachen sind zum Beispiel ASP, ColdFusion, CGI, ... PHP ist die am weitesten verbreitete Skriptsprache, da sie auf einer OpenSourceLizenz basiert, das heißt, sie ist frei verfügbar (kostet also demnach nichts). Zur Geschichte von PHP PHP wurde im Herbst 1994 von Rasmus Lerdorf entwickelt. Er wollte einige "Server-Befehle" für seine Homepage entwickeln. Diese Befehle nannte er "Personal Home Page Tools" (PHP). Weil Formulare im Web so wichtig sind, entwickelte er im Laufe des Jahres 1995 einen "Form Interpreter" (FI) zur Formularauswertung. Alle seine Entwicklungen stellte er frei ins Netz. Viele begannen sich für PHP/FI zu interessieren und so wuchs das Projekt schnell an. Inzwischen liegt PHP in der Version 4.4.1 und die Version 5 ist auch schon veröffentlicht. Die Entwicklung von PHP wird heute hauptsächlich von anderen Entwicklern weitergeführt. Was ist PHP? PHP ist eine Programmiersprache, oder besser gesagt eine einfache Skriptsprache, die direkt in HTML-Dateien eingefügt wird und vom Webserver interpretiert (ausgeführt) wird. Da sie für das Web entwickelt wurde, enthält sie auch nur solche Befehle, die dort verwendet werden können. Wie funktioniert PHP? PHP wird also vom Webserver interpretiert, das heißt der Webserver liest die HTML-Seite, führt die enthaltenen Skripte aus und liefert dann erst das fertig zusammengesetzte Dokument an den Browser des Clients (des Surfers). Man bekommt also nicht die in der HTML-Seite eingefügten Skripte zu sehen, sondern nur ein einfaches HTML-Dokument. Das ist der große Unterschied zwischen Javascript (und DHTML) zu PHP. Javascript wird auch im HTML-Code eingebettet, doch wird dieser Code erst ausgeführt, nachdem die Seite geladen wurde. Ein Benutzer kann also den Code jederzeit ansehen, bei PHP nicht! Dort liegt auch der große Vorteil von PHP: da leider alle Browser Javascript auf leicht verschiedene Arten interpretieren, kann es oft zu Fehlermeldungen kommen. Da PHP aber serverseitig ausgeführt wird, sind diese Skripte browserunabhängig. Systemvoraussetzungen Um PHP nutzen zu können muss der Webserver also diese Sprache verstehen (interpretieren können). Am häufigsten wird PHP auf Apache-Webservern eingesetzt. Der "Apache" ist der populärste Webserver im Netz, nicht alleine deswegen, weil er auch gratis verfügbar ist (OpenSource Lizenz). PHP kann auch auf Windows-Servern laufen, allerdings wird dort meistens die Skriptsprache ASP (Active Server Pages) benutzt. Die beste Umgebung für die Benutzung PHP's ist ein LAMP-System. LAMP steht für LINUX, Apache, MySQL und PHP. PHP läuft also meistens auf Linux (Unix)-Webservern. LINUX ist ein alternatives Claude Reuter http://www.creuter.lu 12.11.2005 Formation Seite 5/31 PHP - Online http://cours.creuter.lu (und kostenloses) Betriebssystem zu WINDOWS. MySQL ist eine strukturierte Abfragesprache (StructuredQueryLanguage) zur Arbeit mit Datenbanken. Die meisten Provider unterstützen auch PHP und die Kosten für den Benutzer sind auch entsprechend niedrig, da das System ja auf Open-Source Lizenzen basiert, also keine teuren Lizenzgebühren wie bei Microsoft (zum Beispiel) bezahlt werden müssen. Einige Zahlen zur Verbreitung von PHP Verteilung der Betriebssysteme für de Domains Stand April 1999 Betriebssystem Anzahl der Server Prozent Linux 197670 42.7 Solaris/SunOS 104610 22.6 Windows 79790 17.2 95/98/NT BSD Family 36858 8.0 IRIX 24662 5.3 Mac/Apple 4686 1.0 HPUX 3220 0.7 AIX 2437 0.5 Reliant Unix/Sinix 2219 0.5 Novell Netware 1297 0.3 Digital Unix 602 0.1 SCO Unix 559 0.1 Verteilung der Betriebssystem für lu Domains Stand April 1999 Betriebssystem Anzahl der Server Prozent Windows 95/98/NT 591 28.5 Solaris/SunOS 497 23.9 Linux 403 19.4 BSD Family 250 12.0 IRIX 202 9.8 Mac/Apple 54 2.6 Reliant Unix/Sinix 12 0.6 HPUX 10 0.5 AIX 9 0.5 Digital Unix 5 0.3 Novell Netware 3 0.1 SCO Unix 1 0.0 Anteile der ApacheServers weltweit Stand Oktober 2003 Server1 Apache Microsoft Netscape Zeus WebSTAR WebSite Other Claude Reuter September Count 7,979,368 2,853,576 112,352 101,128 94,442 27,543 765,715 September % 66.86% 23.91% 0.94% 0.85% 0.79% 0.23% 6.42% August Count 7,705,536 2,765,375 109,898 99,044 91,315 28,979 711,486 http://www.creuter.lu August % 66.94% 24.02% 0.95% 0.86% 0.79% 0.25% 6.18% Change -0.08% -0.11% -0.01% -0.01% +0.00% -0.02% +0.24% 12.11.2005 Formation http://cours.creuter.lu Seite 6/31 PHP - Online Informationen zu PHP Weitere Informationen zu PHP findest du www.selfphp.info www.php-homepage.de/manual/ www.php.net/download-docs.php 123.koehntopp.de/kris/artikel/php3-einfuehrung/ www.php-center.de/ Claude Reuter unter http://www.creuter.lu anderem an folgenden Adressen: 12.11.2005 Formation Seite 7/31 PHP - Online http://cours.creuter.lu Lektion 2 (Textausgaben und Rechnen) PHP Notation Die PHP-Notation ist nicht schwer. Die Skripte werden einfach in HTML-Dateien eingebettet. Der Beginn eines PHP-Abschnittes beginnt mit <?php oder einfach <? und endet mit ?> <? php-Code ?> PHP-Version herausfinden Um mehr über die auf dem Server installierte PHP-Umgebung herauszufinden benutzt du einfach den Befehl <? phpinfo(); ?> "Hallo Welt"-Skript Nicht besonders kreativ, aber immer wieder benutzt, ist das erste Programmiersprache. Man möchte den Text "Hallo Welt" anzeigen lassen. Skript in jeder In PHP erzeugt man eine Textausgabe mit <? echo "text" ?> Beispiel: <? echo "Hallo Welt"; ?> Wichtig ist das Semikolon (;) am Ende. Jede PHP-Zeile endet mit diesem Zeichen. Das ist Pflicht. Wird dieses ausgelassen erhält man eine Fehlermeldung der Art: Parse Error: parse error, expecting `''," or `';" in c:\test/hallo.php" on line 13 Anhand dieser Fehlermeldung kann man den Fehler meistens schnell lokalisieren, da die Zeile mit dem Fehler angegeben wird. Mehr Infos unter http://de.php.net/echo Kommentare Beim Programmieren längerer Projekte sind Kommentare wichtig, damit man sich auch später noch zurechtfindet. Kurze Kommentare fügt man ein mit # dies ist ein Kommentar Längere Kommentare folgenderweise: /* dieser Kommentar kann über mehrere Zeilen gehen */ Claude Reuter http://www.creuter.lu 12.11.2005 Formation Seite 8/31 PHP - Online http://cours.creuter.lu Escape Zeichen Um einen Zeilenumbruch zu erzeugen benutzt man das Escape Zeichen \n. Beispiel: <? echo "Hallo wie gehts?\n"; ?> <? echo "Sehr gut!\n"; ?> Speichere die Datei ohne das Escape Zeichen und mit Escape Zeichen ab. Im Browserfenster siehst du keinen Unterschied, erst im Quelltext kannst du den Unterschied sehen. Andere Escape Zeichen: \n erzeugt neue Zeile \r erzeugt return (neuer Absatz) \t erzeugt Tabulatorschritt Mehr Infos unter http://www.htmlite.com/php008.php Sonderzeichen Willst du im Text auch Gänsefüßchen angeben, so stehst du vor dem Problem, dass dieses Zeichen schon benutzt wird, um Anfang und Ende deines Textes zu markieren. Innerhalb deines Textes musst deshalb diese Zeichen "maskieren", das heißt anstatt " schreibst du \". Beispiel: <? echo "Hallo \"Welt\"!"; ?> ergibt im Browser Hallo "Welt" Andere Zeichen die man maskieren muss sind: das Anführungszeichen ('), das Dollarzeichen ($) und der Backslash (\) Rechnen mit PHP Natürlich kannst du auch mit PHP rechnen. Hier die wichtigsten Operatoren im Überblick: Operator Bedeutung Beipsiel Resultat + Addition 10+3 13 - Subtraktion 10-3 7 * Multiplikation 10*3 30 / Division 12/3 4 % Rest der Division 10/3 1 pow() Potenzfunktion pow(3,2) 32 = 9 Bei Rechnungen setzt du die Berechnung nicht in Gänsefüßchen, da sonst nur die Rechnung als Text angezeigt wird und nicht das Resultat. Auch andere mathematische und trigonometrische Rechnungen sind möglich. Beispiel : <? echo 6 +7 ; ?> Claude Reuter http://www.creuter.lu 12.11.2005 Formation Seite 9/31 PHP - Online http://cours.creuter.lu Bedenke, dass bei Dezimalzahlen statt des Kommas ein Punkt gesetzt werden muss! <? echo 3.5 + 2.7 ; ?> Willst du nun Rechnung und Resultat anzeigen lassen, so musst du beide Textausgaben verbinden. In PHP verbindet man Strings (Textpassagen - ja auch Resultate sind eigentlich eine Textausgabe) mit dem Punkt (.) Beispiel: <? echo "3+4=";echo 3+4; ?> ergibt 3+4=7 Runden von Dezimalzahlen Oft muss man Zahlen auf- beziehungsweise abrunden. Hierzu git es die Funktion round() Beispiel: <? echo round(3.4567,2);?> ergibt 3.45 Der erste Wert bei round() ist die Zahl die auf- oder abgerundet werden soll. Der zweite Wert hinter dem Komma gibt an, wie viele Stellen hinter dem Dezimalpunkt angezeigt werden sollen. Ähnlich folgende Funktionen <? echo floor(3.4567); ?> ergibt 3 (zeigt nur den ganzzahligen Teil einer Zahl) <? echo ceil(3.4567); ?> ergibt 4 (zeigt die nächsthöhere Ganzzahl) Mehr Infos unter http://lu.php.net/round (siehe auch die weiteren Links zu den anderen Funktionen) Zufallszahlen Sehr oft benötigt man auch zufällig erstellte Zahlen. Mit mt_rand() erhält man eine solche Zufallszahl. <? echo mt_rand(0,20); ?> ergibt eine Zufallszahl zwischen 0 und 20. Mehr Infos unter http://php3.de/manual/de/function.mt-rand.php Siehe auch die Beispieldatei zu dieser Lektion. Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 10/31 PHP - Online Lektion 3 (Variablen in PHP) Variablen Keine Programmiersprache kommt ohne Variablen aus. Variablen sind Platzhalter für Werte und Texte. Es ist eine Art Behälter der einen Wert für die Dauer der Programm-/Skriptausführung enthält. Während dieser "Lebensdauer" der Variablen kann man immer wieder auf sie zurückgreifen und sie verändern. Es gibt mehrere Variablentypen • • • • • • • • • • Strings: das sind Zeichenketten also meistens Text Integer: meistens Zahlen Boolean: Wahrheitswert, also wahr oder falsch (ja oder nein) Byte: Ganzzahlen von 0 - 255 Float: Kommazahlen Bouble Date Currency Variant ... Da PHP eine einfache Skriptsprache ist die eigens für das Web entwickelt wurde, muss man sich nicht um den Datentypen kümmern. Dieser muss also nicht explizit angegeben werden (genau so wie bei Javascript). Es genügt eine Variable einfach zu benutzen (initialisieren) und schon gilt sie als deklariert, den Datentyp automatisch ihres Inhaltes entsprechend. Jede Variable muss mit dem Dollarzeichen ($) beginnen. Den Rest des Namens kann man sich selber aussuchen. Beispiel: $meine_variable Allerdings sollte man auf Umlaute, Leerzeichen und Sonderzeichen verzichten. Oft wird der Unterstrich (_) als Ersatz für das verbotene Leerzeichen benutzt. Achtung: es wird auch zwischen Groß- und Kleinschreibung unterschieden. $meine_Variable ist also nicht das gleiche wie $Meine_Variable. Natürlich sind PHP-Befehle nicht als Variablennamen erlaubt. Tipp: Benenne deine Variablen immer so, dass sie aussagekräftig sind, damit du später noch nachvollziehen kannst, welche Variable welche Werte enthält! Beispiel: <? $name ="Claude"; echo "Hallo $name, wie geht's?"; ?> Wenn man mehrere Variablen oder Strings miteinander verketten will, das heißt zusammensetzen will, benutzt man den Punkt (.) <? $name = "Claude"; $nachname = "Reuter"; Claude Reuter http://www.creuter.lu 12.11.2005 Formation Seite 11/31 PHP - Online http://cours.creuter.lu echo "Hallo ".$name." ".$nachname.", wie geht's?"; ?> Mehr Infos unter http://www.php-center.de/phpschulung/core/variablen.htm Feldvariablen oder Arrays Manchmal muss man jedoch mehrere Werte in einer Variablen speichern. Hierzu eignen sich die Arrays oder Wertelisten. Arrays bestehen aus mehreren Werten die von PHP intern durchnummeriert werden. Dieser Zähler (Index) genannt oder Schlüssel (key) beginnt immer bei 0. Beispiel: Alle Wochentage sollen in einem Array gespeichert werden. $tag[0] $tag[1] $tag[2] $tag[3] $tag[4] $tag[5] $tag[6] ="Sonntag"; ="Montag"; ="Dienstag"; ="Donnerstag"; ="Freitag"; ="Samstag"; ="Sonntag"; Will ich nur den Mittwoch ausgeben schreibe ich: echo $tag[3]; Ich kann ein Array auch kürzer definieren (andere Schreibweise aber gleiches Resultat): $tag = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"); echo $tag [3]; ergibt nun wieder Mittwoch. Beachte, dass der Schlüssel stets in eckigen Klammern geschrieben wird. Assoziative Arrays Man kann auch anstelle der Indexnummerierung ein eigenes Schema benutzen. Array $land[0] ="Luxemburg"; $land[1] ="Deutschland"; $land[2] ="Frankreich"; $land[3] ="Belgien"; assoziatives Array $land["LU"] Claude Reuter Kurzform Array $land = array("Luxemburg","Deutschland","Frankreich","Belgien"); Kurzform assoziatives Array = $land = array("LU"=>"Luxemburg","DE"=>"Deutschland", http://www.creuter.lu 12.11.2005 Formation PHP - Online http://cours.creuter.lu "Luxemburg"; $land["DE"] "Deutschland"; $land["FR"] "Frankreich"; $land["BE"] "Belgien"; Seite 12/31 "FR"=>"Frankreich","BE"=>"Belgien"); = = = Bei der ersten Arrayform ermittelt man den Wert für Deutschland mit $land[1]. Beim assoziativen Array erhält man Deutschland durch $land["DE"]. Man braucht sich also nicht mehr um Indexnummern zu kümmern, sondern benutzt die eigenen gewählten Schlüssel. Um die Anzahl der Elemente eines Arrays zu erhalten benutzt man count(). count($land); ergibt in diesem Beispiel 4 Arrays können natürlich auch sortiert werden mit folgenden Befehlen: Befehl Auswirkung natsort sortiert ein Array natürlich, 2 steht also vor 10 arsort sortiert ein Array rückwärts sort sortiert ein Array den Zeichen nach (2 steht also nach 10 , da 2 nach 1 kommt.) Beispiel: sort($land) ergibt die Reihenfolge Belgien, Deutschland, Frankreich, Luxemburg Mehr Infos zu den Arryas unter http://php3.de/manual/de/function.array.php Mehr Infos zum Sortieren unter http://www.phpfreaks.com/phpmanual/page/function.sort.html Datumsfunktionen Oft will man auch das Datum benutzen. Der PHP-Befehl ist hierzu date(). Hiermit kann man Datum und Uhrzeit ermitteln. Die Funktion date hat mehrere Schalter (Einstellungsmöglichkeiten) Schalter Erklärung Beispiel j Monatstag ohne führende Null 1 bis 31 d Monatstag mit führender Null 01 bis 31 n Monat ohne fürende Null 1 bis 12 m Monat mit führender Null 01 bis 12 S englische Aufzählung 1st 4th y Jahreszahl mit 2 Stellen 03 Y Jahreszahl mit 4 Stellen 2003 D ausgeschriebener Wochentag, kurz Mon l ausgeschriebener Wochentag, lang Monday Claude Reuter http://www.creuter.lu 3rd 12.11.2005 Formation http://cours.creuter.lu Seite 13/31 PHP - Online M ausgeschriebener Monatstag, kurz Oct F ausgeschriebener Monatstag, lang OCtober w Wochentag (0 = Sonntag) 0 bis 6 z Tag des Jahres 0 bis 365 t Anzahl der Monatstage 28 bis 31 a am oder pm am A AM oder PM AM h Stunde im 12H Format 1 bis 12 H Stunde im 24h Format 1 bis 24 i Minuten von 00 bis 59 04 s Sekunden von 00 bis 59 12 B SwatchInternetzeit 125 L boolescher Wert der bestimmt ob das Datum in einem Schaltjahr liegt (1 = 0 oder 1 Schaltjahr) Beispiel: echo date("d.m.Y:H:i") ergibt 29.10.2003 14:30 Mehr Infos unter http://lu.php.net/date Siehe auch die Beispieldatei zu dieser Lektion. Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 14/31 PHP - Online Lektion 4 (Schleifen und andere Kontrollstrukturen) Fast kein Programm läuft linear ab, das heißt von der ersten Zeile bis zur letzten. Meistens gibt es einen veränderten Ablauf je nach bestimmten Bedingungen. Um dies zu bewerkstelligen, gibt es in PHP mehrere Möglichkeiten. Blöcke Wenn ein Teil des Codes nur bei einer bestimmten Bedingung erfüllt sein soll, so stellt man diesen in einen Block. Beispiel <? if (date("w") == 0) { echo ("Heute ist Sonntag!"); } ?> Dies bewirkt dass die Textausgabe "Heute ist Sonntag!" nur angezeigt wird, wenn der Besucher diese Seite an einem Sonntag aufruft. Andernfalls wird nichts ausgegeben. Beachte, dass die Bedingung (IF-Anweisung) in runden Klammern ((...)) stehen muss. Der oder die auszuführenden Befehle stehen in geschweiften Klammern ({...})! Eine alternative Schreibweise ist: <? if (date("w") == 0) {; ?> Heute ist Sonntag! <? ;} ?> Hier kann man nun einfach HTML-Code in den Anweisungsblock einfügen. Diese Schreibweise eignet sich, wenn größere HTML-Teile in die Blockanweisung kommen sollen. So erspart man sich die ewige echo-Anweisung. Logische Operatoren Um solche wie oben erwähnte Bedingungen auszuführen braucht man logische Operatoren. Vielleicht ist dir aufgefallen, dass oben zwei Gleichheitszeichen (=) geschrieben sind. Alle logischen Ausdrücke ergeben immer 0 (falsch, false) oder 1 (richtig, true). Operator Bedeutung Alternative Schreibweise $x and $y ist wahr, wenn $x und $y wahr sind $x && $y ist wahr wenn $x oder $y wahr sind $x || $y $x or $y $x xor $y ist falsch, wenn beide gleich sind !$x negiert den Wert, also aus False wird True und aus True wird False $x == $y ist wahr, wenn $x und $y gleich sind $x > $y ist wahr, wenn $x größer als $y ist Claude Reuter http://www.creuter.lu 12.11.2005 Formation Seite 15/31 PHP - Online http://cours.creuter.lu $x >= $y ist wahr, wenn $x größer oder gleich $y ist $x < $y ist wahr, wenn $x kleiner als $y ist $x <= $x ist wahr, wenn $x kleiner oder gleich $y ist $x <> $y ist wahr, wenn $x nicht gleich $y ist Natürlich kann man auch mehrer logische Operationen miteinander verbinden. Beispiel: if (($x == $y) and ($x <> $z)) Achte immer darauf, die einzelnen Ausdrücke in Klammern zu schreiben! If Else Oft wird ein alternativer Befehlsblock gebraucht, wenn die erste Bedingung nicht erfüllt ist, nach dem Muster (wenn.... dann.... sonst...) Beispiel: <? if (date("w") == 0) { echo ("Heute ist Sonntag!"); } else { echo ("Heute ist nicht Sonntag!"); } ?> oder in der anderen Schreibweise: <? if (date("w") == 0) {; ?> Heute ist Sonntag! <? ;} else { ?> Heute ist nicht Sonntag! <? ;} ?> Alternativ gibt es noch den elseif Befehl. ohne elseif mit elseif <? if ((date("w") == 0) or (date("w") == 6)) { echo ("Es ist Wochenende!"); } else { if (date("w") == 5) { echo ("Es ist fast Wochenende!"); } else { echo ("Es ist ein normaler Arbeitstag!"); } } ?> <? if ((date("w") == 0) or (date("w") == 6)) { echo ("Es ist Wochenende!"); } elseif (date("w") == 5) { echo ("Es ist fast Wochenende!"); } else { echo ("Es ist Arbeitstag!"); } ?> Mit der Anweisung elseif erspart man sich komplexe verschachtele IF-Anweisungen. Deshalb ist diese oft vorzuziehen. Bei den If-Anweisungen rückt man die Befehlsblöcke meistens etwas ein, um eine bessere Lesbarkeit zu erhalten. Weiter Infos unter http://www.schattenbaum.net/php/if.php Claude Reuter http://www.creuter.lu 12.11.2005 Formation Seite 16/31 PHP - Online http://cours.creuter.lu Mehrfachauswertungen mit SWITCH Wenn mehrere Bedingungen auf eine und diesselbe Variable ausgeführt werden müssen , löst es sich eleganter mit der switch Anweisung. Im switch Befehl steht die zu testende Variable. Die case-Abschnitte geben die möglichen Testwerte an, die auf Gleichheit geprüft werden. Mehrfachauswertung mit switch (ist eleganter) Auswertungen mit if <? if ((date("w") == 0) or (date("w") == 6)) { echo ("Es ist Wochenende!"); } elseif (date("w") == 5) { echo ("Es ist fast Wochenende!"); } else { echo ("Es ist Arbeitstag!"); } ?> <? switch (date("w") { case 0: case 6: echo ("Es ist Wochenende!"); break; case 5: echo ("Es ist fast Wochenende!"); break; default: echo ("Es ist Arbeitstag!"); break; } Die switch-Anweisungen lesen sich besser als die if-Blöcke. Beachte, dass bei den caseAbschnitten jeweils ein Doppelpunkt (:) folgt und jede case-Anweisung mit break beendet wird. Auch müssen alle case-Anweisungen in geschweiften Klammern ({...}) stehen. Die defaultAnweisung steht für alle anderen nicht in den vorhergehenden case-Anweisungen erwähnten Werten, also hier für die Werte 1 bis 4. Mehr Infos unter http://lu.php.net/switch Schleifen Schleifen werden benötigt um Programmteile mehrfach durchzulaufen. Die Anweisungsblöcke einer Schleife werden auch in geschweifte Klammern ({...}) eingebettet. Beispiel: <? $i = 0; while ($i <= 6) { echo ($tag[$i]); $i++; } ?> Diese Schleife zeigt alle Wochentage an. Die Bedingung while überprüft wie oft die Schleife durchlaufen wird. Die Zeile $i++ bewirkt, dass $i inkrementiert wird (es ist eine Kurzform von $i = $i + 1). Analog dazu bewirkt $i--, dass $i dekrementiert wird ($i = $i - 1). Aufgabe: Bei dem vorhergehenden Skript werden alle Wochentage ohne Abstand nebeneinander geschrieben. Schreibe ein Skript • das jeweils ein Wochentag pro Zeile ausgibt Claude Reuter http://www.creuter.lu 12.11.2005 Formation PHP - Online http://cours.creuter.lu • Seite 17/31 das die Wochentage mit Komma und Leerzeichen in einer Reihe getrennt anzeigt Mit dem Befehl break kann man eine Schleife zu jedem Zeitpunkt beenden. Beispiel: <? $i = 0; while ($i <= 6) { echo ($tag[$i]); $i++; if ($i == 5) {break;} } ?> In diesem Skript werden nur die Wochentage Sonntag bis Donnerstag ausgegeben. Danach wird die Schleife beendet. Ähnlich wie die while Anweisung ist die Anweisung do ... while. Der Unterschied zur whileAnweisung ist der folgende: Bei do ...while wird der Befehlsblock mindestens einmal durchlaufen, bevor die Bedingung getestet wird. Bei der einfachen while-Anweisung kann es vorkommen, dass der Befehlsblock überhaupt nicht durchgearbeitet wird. Beispiel: while <? $i = 5; while ($i < 5) { echo ($i); $i++; } ?> do ... while <? $i = 5; do { echo ($i); $i++; } while ($i < 5) ?> Hier wird die Variable $i nie ausgegeben , da In diesem Fall wird die Variable $i einmal die Bedingung von Anfang an falsch ist. ausgegeben. Danach erst wird die Schleife bendet. Mehr Infos unter http://lu.php.net/manual/en/control-structures.while.php und http://lu.php.net/manual/en/control-structures.do.while.php Zählschleifen Wenn man einen Programmteil mehrfach durchlaufen will, und es eine obere und untere Grenze gibt, benutzt man die for-Schleifen. Beispiel: <? for ($i = 0; $i < = 6; $i++) { echo ($tag[$i]); } ?> Wie immer steht der Ausführungsblock in geschweiften Klammern({...}). Die erste Zeile gibt an, dass die Schleife solange durchlaufen (ab 0 beginnend) wird bis $i den Wert 6 hat. Zur Errinnerung: $i++ inkrementiert den Zähler. Anstelle $i++ kann man auch andere Rechenoperationen verwenden, zum Beispiel $i-- oder $i +2, ... Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 18/31 PHP - Online Mehr Infos unter http://lu.php.net/manual/en/control-structures.for.php Funktionen Funktionen sind kleine Programmabschnitte oder Module, die PHP-Code enthalten. Sie werden aus dem Skript aufgerufen, können Werte übernehmen und zurückgeben. Eine Funktion wird folgendermaßen deklariert: function meinefunktion ($parameter1, $parameter2, ...) { // hier kommt der Programmcode return $rueckgabewert } Wieder steht der Programmcode in geschweiften Klammern ({...}). Jede Funktion erhält einen eindeutigen Namen (gleiche Einschränkungen wie bei Variablennamen). In runden Klammern gibt man die einzelnen Werte an, die an die Funktion übergeben werden. Die Anzahl der Parameter ist frei. Hier ein Beispiel einer Funktion: <? function begruessung ($name, $zahl) { echo ("Hallo, $name! Du warst $zahl mal hier."); } begruessung ("Claude", 3); //diese Zeile ruft die Funktion begruessung auf und übergibt ihr die Werte ?> oder <? function euro2luf ($euro) { $luf = $euro * 40.3399; return $luf; } echo (euro2luf(5)); //diese Zeile ruft die Funktion euro2luf auf und übergibt ihr den Wert ?> Dies Funktion wandelt eine Betrag von € in LUF um und übergibt diesen Wert an das Programm. Mehr Infos unter http://php3.de/manual/de/functions.php Siehe auch die Beispieldatei zu dieser Lektion. Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 19/31 PHP - Online Lektion 5 (Formulare und Mailversand) Formulare 1. Beispiel Erstelle zunächst in deinem HTML-Editor ein Formular. Ich gebe hier das Beispiel eines Formulars, das Euro-Werte in LUF umwandelt. Viele rechnen ja noch um, weil sie sich besser in LUF vorstellen können, wie viel ein bestimmter Betrag wert ist. Hier also nun das HTML-Formular: Betrag in € Betrag in LUF 0 Umw andeln Teste das Formular aus. Du siehst nach Drücken der Umwandeln-Taste wird die Umwandlung ausgeführt. Wie geht das nun? • • • Durch Klicken auf die Taste wird das Skript aufgerufen. Dazu fügt man im ACTION-Befehl den Namen des Skriptes ein. Hier wird die gleiche Seite aufgerufen, da kein größeres Skript abläuft (action="<? echo $PHP_SELF; ?>"). Das erste Input-Feld heißt euro ( <input name="euro" type="text" id="euro" size="12">). Wenn der Benutzer nun auf UMWANDELN klickt wird der Inhalt vom Textfeld euro in der Variablen $euro gespeichert. Das zweite Textfeld heißt luf. Der Wert dieses Inputfeldes wird nun erechnet <input name="luf" type="text" id="luf" size="12" value="<? echo $euro * 40.3399 ; ?>" und dann angezeigt. Du siehst also, das das Ganze nicht recht kompliziert ist. Achte darauf deinen Formularfeldern aussagekräftige Namen zu geben, da dies nachher die Namen deiner Variablen sind die den Wert des Benutzers beim Eingeben enthalten. Nun kannst du diese Werte mit den Variablen frei anzeigen lassen . 2. Beispiel Betrag in € Betrag in LUF 0 Umw andeln Hier ein ähnliches Formular nur wird der LUF-Wert als normaler Text angezeigt. Zu beachten ist, dass in diesem Formular das Textfeld euro2 genannt wurde, da auf einer Seite nicht 2 Felder gleichen namens vorhanden sein dürfen. Claude Reuter http://www.creuter.lu 12.11.2005 Formation Seite 20/31 PHP - Online http://cours.creuter.lu 3. Beispiel Nun noch ein drittes Beispiel. Man soll in beide Richtungen umwandeln können. Betrag LUF entsprechen 0 LUF Umw andeln 4. Beispiel Im vierten Beispiel soll die Ausgabe in einer neuen Seite angezeigt werden. Wir rufen deshalb im action des Formulars nicht die gleiche Seite auf, sondern eine neue Seite. Gleichzeitig wird noch die Ausgabe formatiert, so dass nur 2 Nachkommastellen angezeigt werden (Befehl round()). Betrag LUF Umw andeln Denke dir ähnliche Beispiel aus und teste sie aus. Dabei lernst du am besten den Umgang mit Formularen und PHP. Abschluss: Gästebuch Zum Abschluss erstellst du ein Gästebuch, bei welchem die Eingaben der Formularfelder in einer neuen Seite angezeigt werden, sozusagen als Bestätigung für das Abschicken der Daten. Anmerkung C'est avec grand plaisir que j'annonce: "Un Ceci est un test \ il montre les différents f Teste Schreibe hier mehrzeiligen Hier die Ausgaben Text Normale Ausgabe und benuzte auch Anführungszeichen (Gänsefüßchen). Ausgabe mit dem Befehl stripslahes() Nun wird das Escape-Zeichen (/) ausgelassen, Hier werden die besonderen Zeichen mit dem doch die Zeilenumbrüche des Originaltextes sind Escape-Zeichen (/] vorangesetzt verschwunden. Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 21/31 PHP - Online Ausgabe mit dem Befehl nl2br() Ausgabe mit den beiden Befehlen striplashes() und nl2br() Nur die Zeilenumbrüche wurden respektiert, doch das Escape-Zeichen ist erneut vor den Erst hier die korrekte Ausgabe. Sonderzeichen. Mailversand Nun fügen wir noch hinzu, dass der Inhalt der Formularfelder an eine Emailadresse (oder mehrere) verschickt wird. Der Mailversand in PHP ist sehr einfach: Füge dazu einfach folgende Zeile in dein Skript ein: mail("emailadresse","betreff","nachricht","From:emailadresse") Beispiel: mail("[email protected]","Test","Dies ist nur ein Test","From:[email protected]") sendet die Email mit dem Betreff TEST und der Nachricht Dies ist ein Test an die Adresse [email protected] und als Sender steht die Adresse [email protected]. Natürlich kann man anstelle der Texte Varibalennamen eingeben die vorher definiert wurden. mail($usermail,$betreff,$subject,"From:$webmaster") Siehe auch die Beispieldatei zu dieser Lektion und das Beispielgästebuch. Claude Reuter http://www.creuter.lu 12.11.2005 Formation Seite 22/31 PHP - Online http://cours.creuter.lu Lektion 6 (Dateiverwaltung) Nun geht es darum, Daten in Dateien auf dem Webserver zu schreiben oder von dort zu löschen. Die Dateien auf dem Webserver müssen Schreibrechte haben, andernfalls kann man sie nicht bearbeiten. Es gibt die folgenden Modi: Nur-Lesemodus r wie read Öffnet eine Datei zum Lesen und setzt den Dateizeiger an den Anfang Lese- und Schreibmodus r+ Öffnet eine Datei zum Lesen und Schreiben und setzt den Dateizeiger an den Dateianfang Nur-Schreibmodus w wie write Öffnet eine Datei zum Schreiben. Besteht die Datei noch nicht, so wird sie erstellt, andernfalls wird die bestehende Datei gelöscht. Der Dateizeiger wird an den Dateianfang gesetzt. Schreib- und Lesemodus w+ wie write Öffnet eine Datei zum Schreiben und Lesen. Besteht die Datei noch nicht, so wird sie erstellt, andernfalls wird die bestehende Datei gelöscht. Der Dateizeiger wird an den Dateianfang gesetzt. Anhängemodus a wie append Öffnet eine Datei zum Schreiben. Besteht die Datei noch nicht, so wird sie erstellt, andernfalls bleiben vorhandene Daten erhalten. Der Dateizeiger wird an das Dateiende gesetzt und dort wird dann weiter eingefügt. Anhänge- und Lesemodus a+ wie append Öffnet eine Datei zum Schreiben und Lesen. Besteht die Datei noch nicht, so wird sie erstellt, andernfalls bleiben vorhandene Daten erhalten. Der Dateizeiger wird an das Dateiende gesetzt und dort wird dann weiter eingefügt. Mit folgender Zeile kann man eine Datei öffnen: <? $fp = fopen("dateiname", "attribut"); ?> Beispiel: $fp = fopen("zaehler.txt","a+") Die Datei schließt man mit folgendem Befehl: <? fclose($fp); ?> Um aus der Datei zu lesen benutzt man den Befehl fgets() $zeile = fgets($fp,1024) Die Zahl gibt die Länge der Bytes an, die gelesen werden sollen. Wird die Zahl nicht angegeben, gilt der Standardwert 1024 Bytes. Mit fread() kann man mehrere Zeilen gleichzeitig einlesen. Der Befehl liest nicht bis zum Zeilenende, sondern bis zum Dateiende. fread($fp, 4096) Auch hier kann man die Anzahl der Bytes die gelesen werden sollen, ändern oder weglassen. Mit fputs schreibt man in eine Datei fputs($fp,"text") Hier ein Beispiel für Dateifunktionen: Das folgende Skript liest den Inhalt einer Datei zeilenweise aus und schreibt es in die HTML-Seite: $fp = fopen("neu.txt","r"); while ($line = fgets($fp, 1000)) { Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 23/31 PHP - Online echo $line."<br>"; } fclose($fp) Versuche dieses Skript zu verstehen. Versuche nun dein Gästebuch aus der vorigen Lektion so umzuändern, dass die Formulareingaben in eine Datei geschrieben werden. Ein Beispielskript findest du hier. Claude Reuter http://www.creuter.lu 12.11.2005 Formation Seite 24/31 PHP - Online http://cours.creuter.lu Lektion 7 (Datenbanken) SQL Was ist SQL? SQL steht für Structured Query Language oder strukturierte Abfragesprache. Das Haupteinsatzgebiert von SQL sind Datenbank-Abfragen. SQL ist eine Teilsprache, kann also nur in Verbindung mit einer Programmiersprache (zum Beispiel PHP, ASP, ...) oder einem speziellen Datenbankprogramm (zum Beispiel MS Access, Filemaker, ...) . Datenbanken sind heute von sehr großer Wichtigkeit, da sich so Daten und Informationen leicht verwalten, manipulieren und abfragen können. Praktisch in jedem Geschäftsbereich und im privaten Leben werden sie angewandt. In dieser Lektion lernen wir, wie man Datenbanken mit PHP mittels SQL anwenden kann. Da SQL aber auch sehr umfangreich ist - man könnte auch einen ganzen Kurs darüber schreiben (wenn Interesse da ist, vielleicht in einem Jahr) - soll hier nur ein ganz kurzer Einblick erfolgen, der es ermöglicht, bestehende Skripte auf die eigene Serverumgebung anzupassen. Ich sehe davon ab, selbst mit PHP Datenbankapplikationen zu entwickeln. Mehr Infos unter: http://btmdx1.mat.uni-bayreuth.de/www2/ss2002/node1190.php http://ad.informatik.uni-freiburg.de/bibliothek/tutorials/DSP/dsp.pdf PHPmyadmin Um Datenbanken mit PHP zu erstellen, löschen, verwalten, ... wird meistens phpmyadmin benutzt. Als erste Übung schlage ich vor, dass du eine Tabelle erstellst mit irgendwelchen Daten anhand von phpmyadmin. Mehr Infos unter: http://www.phpmyadmin.net/home_page/ SQL und PHP Nun wollen wir eine Verbindung zur Datenbank mit einem PHP-Skript erstellen. Das Skript braucht dazu folgende Informationen um die Datenbank ansprechen zu können: Diese Daten muss man im Skript eingeben, damit PHP weiß, wo diese Datenbank zu finden ist. $conn = @mysql_connect($dbhost,$dbuname,$dbpass); if ($conn) { mysql_select_db($dbname,$conn); } else { die("<b>No connection with MySQL-Server could be established</b></body></html>"); } Diese PHP-Skript erstellt nun eine Verbindung mit der Datenbank. Die Variablen $dbhost, $dbuname und $dbpass enthalten die Werte für Datenbank-Host, Datenbank-Username und Datenbank-Passwort. $dbname enthält den Wert für den Datenbank-Namen. Wenn ein Fehler bei der Verbindung auftritt wird dieser mit die() in einer HTML-Seite angezeigt. Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 25/31 PHP - Online Wir beschränken uns nun auf die Verarbeitung von Datenfeldern. Natürlich kann man auch ganze Tabellen erstellen, löschen, aktualisieren, ... Datenfelder auslesen (select) $sq = "select * from telbuch"; $result = mysql_query($sq); $anzahl = mysql_numrows($result); for ($i = 0; $i < $anzahl; $i++) { $name = mysql_result($result,$i,"name"); $tel = mysql_result($result,$i,"tel"); echo ("Name: ".$name." Tel: ".$tel); } Mit dem Befehl select wird eine Tabelle ausgelesen. Man muss dazu den Namen der Tabelle (in diesem Beispiel telbuch) definieren. Das Sternchen (*) bedeutet, dass alle Felder dieser Tabelle ausgelesen werden. Alternativ kann man auch nur bestimmte Felder angeben; bei mehreren Feldern durch Komma getrennt (Beispiel: select name,tel from ...). Mit mysql_query() wird nun diese Datenbank angesprochen und die Anfrage ausgeführt, das heißt die Felder ausgelesen. mysql_numrows() zählt die Zahl der Einträge (Zeilen) in der Tabelle. Die for-Schleife läuft dann alle Einträge durch und gibt die Felder mi dem echo-Befehl aus. mysql_result($result,$i,"name") greift dann je nach dem Wert von $i in der entsprechenden Zeile auf den Inhalt der Spalte name zu. Die select-Abfrage kann man noch mehr einschränken durch bBefehle wie • • • where - gibt Bedingungen an die die Felder erfüllen müssen order by - sortiert die Daten nach bestimmten Kriterien ... Datenfelder eingeben (insert) Um Daten in eine Tabelle einzugeben, benutzt man den Befehl INSERT. Hier ein Beispiel: $conn = @mysql_connect($dbhost,$dbuname,$dbpass); mysql_select_db($dbname,$conn); $sq = "INSERT INTO telbuch (name,tel) VALUES ('$name','$tel')"; $result = mysql($dbname, $sq); In diesem Beispiel wird der Inhalt der Variablen $name und $tel in die Tabelle telbuch in die Spalten name und tel eingefügt. Datenfelder aktualisieren (update) Um Daten in einer Tabelle zu aktualisieren, benutzt man den Befehl UPDATE. Hier ein Beispiel: $conn = @mysql_connect($dbhost,$dbuname,$dbpass); mysql_select_db($dbname,$conn); Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 26/31 PHP - Online $sq = "UPDATE telbuch SET tel = '".$tel."' WHERE name = '".$name."'"; $result = mysql($dbname, $sq); In diesem Beispiel wird der Inhalt der Variablen $tel in der Tabelle telbuch in der Spalte tel aktualisiert, und dies nur für den Datensatz der den Wert $name in der Spalte name enthält. Datenfelder löschen (delete) Um Daten in einer Tabelle zu entfernen, benutzt man den Befehl DELETE. Hier ein Beispiel: $conn = @mysql_connect($dbhost,$dbuname,$dbpass); mysql_select_db($dbname,$conn); $sq = "DELETE from telbuch WHERE name = '".$name."'"; $result = mysql($dbname, $sq); Hier wird der Datensatz aus der Tabelle telbuch entfernt, welcher die Bedingung in der WHEREKlausel erfüllt: also alle Datensatze die in der Spalte name den Wert $name enthalten. Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 27/31 PHP - Online Lektion 8 (Applikation: Passwortschutz) Passwortschutz Oft benötigt man passwortgeschützte Seiten, das heißt, ein Bereich des Websites, der nur für bestimmte Benutzer zugänglich ist. Dies läßt sich auch mit Javascript realisieren, ist jedoch relativ unsicher und der Schutz ist leicht zu umgehen. Sichere geht es mit PHP. Man kann das Passwort und den Username in einer Datei auf dem Webserver abspeichern (ähnlich der Vorgehensweise mit dem Gästebuch in der Lektion 6) und es dann zur Kontrolle dort auslesen oder (was noch sicherer ist: man speichert diese geheimen Daten in einer Datenbank ab. In dieser Lektion erstellen wir einen passwortgeschützten Bereich, bei welchem die Eingangsdaten in einer Datenbank abgespeichert sind. Wenn mehrere Seiten in diesem Bereich enthalten sind, stellt sich ein neues Problem. Man kann ja nicht für jede Seite den gleichen Login benutzen; das würde die Benutzer nur verärgern. Deshalb arbeitet man hier mit Sessions. Sessions Sessions sind eine Art Cookies (einfach ausgedrückt), die die Einstellungen über mehrere Seiten hinweg speichern. So erstellt man mit PHP eine Session: session_register('verified'); Eine Session mit dem Namen verified wird erstellt. Sie bleibt solange aktiv, bis sie bewusst gelöscht wird oder der Browser geschlossen wird. Man kann natürlich auch die Lebenszeit der Session explizit angeben. $_SESSION['verified'] = $name; Eine Session kann auch mehrere Variablen enthalten. Hier wird zum Beispiel der Inhalt der Variablen $name als Sessionvariable in der Session verfied abgespeichert. Auslesen der Daten oder des Existierens einer Session: if (session_is_registered('name')) {...} Wenn die Variable name in einer Session besteht ist das Resultat TRUE (wahr), andernfalls FALSE (falsch) ausgegeben $name = $_SESSION['verfied']; Die Variable $name enthält nun den Wert der Sessionvariable verified. Löschen einer Session: session_unregister('verified') Die Session verfied wird nun gelöscht. Weiter Informationen unter: http://www.webrankinfo.com/analyses/php/sessions.php Claude Reuter http://www.creuter.lu 12.11.2005 Formation Seite 28/31 PHP - Online http://cours.creuter.lu Zum Passwortschutzskript Gehe folgendermaßen vor: 1. 2. 3. 4. Erstelle mit phpmyadmin eine Tabelle, welche die Logindaten enthält Erstelle eine HTML-Seite mit einem Formular zum Login Diese Seite ruft sich selbst auf. Wenn die eingegebenen Werte mit denen aus der Datenbank übersinstimmen wird eine Session erstellt und eine neue Seite wird aufgerufen, andernfalls erscheint wieder das Login Jede Seite die geschützt sein soll, prüft zuerst, ob die Session erstellt wurde, wenn nicht verweist sie auf das Login. Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 29/31 PHP - Online Lektion 9 (Applikation: Forum) Im Internet findet man sehr viele fertige Skripte zu fast allen denkbaren Anwendungsgebieten. Ziel dieses Kursus ist es ja, bestehende Skripte auf die eigenen Bedürfnisse und Serverumgebung anzupassen, nicht selbst komplexe Skripte schreiben zu können. Nachdem in den vorigen Lektionen nun die Syntax und Grundregeln von PHP besprochen wurden, versuchen wir nun in dieser und der nächsten Lektion bestehende Skripte in einen eigenen Website einzubinden. Hier einige Adressen wo du fertige PHP-Skripte findest: http://www.hotscripts.com/PHP/Scripts_and_Programs/index.html http://phpwelt.de/ http://www.php-resource.de/freescript/scripts.php?cat=dir&do=PHP und noch viele mehr Bemerke, dass diese Skripte meistens kostenlos sind. Aus Respekt vor dem Autor der Skripte sollte man die Copyright Vermerke jedoch im Skript enthalten lassen. Forum Zuerst wollen wir ein Forum-Skript einsetzen. Foren werden heute recht häufig in vielen Einsatzbereichen benutzt. Ich schlage dir vor folgendes artmedic-Forum von Ellen Baitinger. Skript in deinem Website einzusetzen: Zum Einfügen lese die README.HTM und ändere die PHP-Dateien nach deinen Wünschen um. Du kannst das Forum hier testen. Zum Einfügen lese die README.TXT und ändere die Datei CONFIG.PHP nach deinen Wünschen um. Natürlich kannst du auch andere Skripte einbinden. Bedenke jedoch, dass manche Skripte für Anfänger noch relativ schwierig einzubinden sein können. Erst die Übung macht den Meister. Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 30/31 PHP - Online Lektion 10 (Applikation: Bildergallerie) Bildergallerie Auch hierzu gibt es natürlich tausende Skripte. Zum Aufwärmen schlage ich dir folgendes einface Skript vor: artmedic photoalbum 3.0, ebenfalls von Ellen Baitinger. Versuche auch dieses in deinen Site zu integrieren. Hier kannst du die Bildergallerie testen. Bemerke, dass diese beiden Skripte relativ einfach sind und deshalb auch keinen so großen Funktionsumfang haben wie viele andere. Doch sie erledigen ihre Arbeit sehr gut und sind als erste Übung sehr gut geeignet. Claude Reuter http://www.creuter.lu 12.11.2005 Formation http://cours.creuter.lu Seite 31/31 PHP - Online Dokumentation Dokumentation zu diesem Kurs (fichier PDF - 466KB-version du 12.11.2005) Beispielskripte aus dem Kurs (php.zip 16KB) Anleitung zum Gebrauch vun FILEZILLA Buchtipps • • • Grundlagen und Profiwissen PHP4 Jörg Krause Hanser 3-446-21847-5 PHP für Einsteiger Johann-Christian Hanke KnowWare EXTRA ISBN 87-90785-85-1 PHP4 Kochbuch Jörg Krause, Ilija Injac HANSER 3-446-21856-4 Software Am besten benutzt man einen WYSIWYG-Editor zum Erstellen einse Websites. Da Frontpage PHP nur sehr schlecht unterstützt, empfehle ich Macromedia Dreamweaver, oder als gratis Alternative den OpenSource Editor NVU. Allerdings kann man die Seiten mit den integrierten Skripten auch einfach in einem Texteditor erstellen. Claude Reuter http://www.creuter.lu 12.11.2005