Upload
jochen-naumann
View
218
Download
1
Embed Size (px)
Citation preview
Website Deluxemit PHP & Co
2-6496.book Page 1 Tuesday, November 19, 2002 3:47 PM
Jochen Naumann
Markt+Technik Verlag
Website Deluxe mit PHP & Co
11 Workshops
2-6496.book Page 3 Tuesday, November 19, 2002 3:47 PM
Die Deutsche Bibliothek verzeichnet diese Publikation in der DeutschenNationalbibliografie; detaillierte bibliografische Daten sind im Internetüber http://dnb.ddb.de abrufbar.
Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht.Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt.Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen.Trotzdem können Fehler nicht vollständig ausgeschlossen werden.Verlag, Herausgeber und Autoren können für fehlerhafte Angabenund deren Folgen weder eine juristische Verantwortung nochirgendeine Haftung übernehmen.Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag undHerausgeber dankbar.
Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und derSpeicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig.
Fast alle Hardware- und Softwarebezeichnungen, die in diesem Buch erwähnt werden,sind gleichzeitig auch eingetragene Marken oder sollten als solche betrachtet werden.
Umwelthinweis:Dieses Buch wurde auf chlorfrei gebleichtem Papier gedruckt.Die Einschrumpffolie – zum Schutz vor Verschmutzung – ist aus umweltverträglichemund recyclingfähigem PE-Material.
10 9 8 7 6 5 4 3 2 1
06 05 04 03
ISBN 3-8272-6496-0
© 2003 by Markt+Technik Verlag,ein Imprint der Pearson Education Deutschland GmbH,Martin-Kollar-Straße 10–12, D-81829 München/GermanyAlle Rechte vorbehaltenUmschlaggrafik: WEBWO-Graphics, Marco Lindenbeck, MünchenLektorat: Jürgen Bergmoser, [email protected]: Philipp Burkart, [email protected]: mediaService, SiegenDruck und Verarbeitung: Media Print, PaderbornPrinted in Germany
2-6496.book Page 4 Tuesday, November 19, 2002 3:47 PM
5
Inhaltsverzeichnis
Inhaltsverzeichnis
Die CD-ROM zum Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Über den Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Workshop 1: Der dynamische Dreikampf: PHPTriad 131.1 PHPTriad – was ist das? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2 Die Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3 Achtung, fertig, los!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.4 Webspace im Internet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.5 Für Neugierige. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Workshop 2: Sherlock Holmes und Dr. PHP 312.1 Ein einfacher Seitenzähler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.2 Besucherstatistiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Workshop 3: Beehren Sie uns bald wieder 493.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.2 Handhabung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.3 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.4 Anpassen von Layout und Design . . . . . . . . . . . . . . . . . . . . . . . . 58
2-6496.book Page 5 Tuesday, November 19, 2002 3:47 PM
6
Inhaltsverzeichnis
Workshop 4: Was mache ich mit all den Daten? 634.1 Was bietet Phorm? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.2 Vorbereiten des Testsystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.3 Installation von Phorm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664.4 Ein einfaches Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.5 Alles O.k.? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684.6 Ab in die Datenbank! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.7 Anpassen der Bestätigungsseite . . . . . . . . . . . . . . . . . . . . . . . . . . 754.8 Der Umgang mit mehreren Formularen . . . . . . . . . . . . . . . . . . 76
Workshop 5: Jetzt wird es bunt! 835.1 Die Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845.2 Do it yourself . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885.3 Weitere Extras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935.4 MySQL als Datenquelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965.5 Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Workshop 6: Einladung zum Diaabend 1056.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066.2 Let the show begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106.3 Keine Chance für Voyeure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136.4 Gallery Remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Workshop 7: Gibt’s was Neues? 1217.1 Die Installation von SimpleNews . . . . . . . . . . . . . . . . . . . . . . . 1227.2 Das sind ja Neuigkeiten! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267.3 Anpassen des Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297.4 Darf’s ein bisschen mehr sein? . . . . . . . . . . . . . . . . . . . . . . . . . . 1327.5 News-Beiträge in die eigene Seite einbauen . . . . . . . . . . . . . . . 136
2-6496.book Page 6 Tuesday, November 19, 2002 3:47 PM
7
Inhaltsverzeichnis
Workshop 8: Schweigen ist Silber, Reden ist Gold 1418.1 Installation des Chats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1438.2 Ist da jemand? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1478.3 Die Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1508.4 Chat-Hygiene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1538.5 Anpassen des Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Workshop 9: Jede Stimme zählt 1639.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1649.2 Erstellen neuer Umfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1689.3 Einbetten der Umfrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1719.4 Anpassen des Erscheinungsbildes . . . . . . . . . . . . . . . . . . . . . . . 1769.5 Hilfe!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Workshop 10: Sagen Sie Ihre Meinung 18510.1 Historisch gewachsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18610.2 Die Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18710.3 Neues Forum einrichten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19210.4 Einen eigenen Beitrag schreiben . . . . . . . . . . . . . . . . . . . . . . . . 19410.5 Schutzmechanismen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19610.6 Anpassen des Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19710.7 Patches und Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Workshop 11: Und Sie dachten, es wäre schwierig ... 20311.1 PHPNuke – die Eier legende Wollmilchsau . . . . . . . . . . . . . . . 20411.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20511.3 Erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20811.4 Ein bisschen Aufräumarbeit. . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
2-6496.book Page 7 Tuesday, November 19, 2002 3:47 PM
8
Inhaltsverzeichnis
11.5 Sail away .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21311.6 Artikel schreiben und veröffentlichen. . . . . . . . . . . . . . . . . . . . 21811.7 Schlussbemerkung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Anhang A: Farben in HTML 223
Anhang B: PHP nebenbei gelernt 227B.1 Das erste PHP-Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228B.2 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229B.3 Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230B.4 Formularauswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231B.5 Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233B.6 Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236B.7 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241B.8 Einbinden von Dateien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243B.9 Globale und lokale Variablen. . . . . . . . . . . . . . . . . . . . . . . . . . . 244B.10 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245B.11 Häufige Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245B.12 Hilft mir denn keiner? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Anhang C: Was ist Open-Source-Software? 253
Anhang D: Troubleshooting 255D.1 MySQL Demon und Apache gestartet? . . . . . . . . . . . . . . . . . . . 255D.2 Ist der MySQL-Benutzer „donald“ erzeugt worden? . . . . . . . . 256D.3 Winzip und .tar.gz-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256D.4 Dateirechte auf dem Webspace . . . . . . . . . . . . . . . . . . . . . . . . . 256D.5 Scriptkonfiguration für Webspace . . . . . . . . . . . . . . . . . . . . . . 256
Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
2-6496.book Page 8 Tuesday, November 19, 2002 3:47 PM
Die CD-ROMzum Buch
Die CD-ROM zum Buch
Die dem Buch beiliegende CD-ROM enthält ausser PHP, MySQL und Apache dasTool PHPTriad, Texteditoren und alle vorgestellten Skripte.
\softwareAdvancedPoll Skript für Umfragen
Apache Apache Webserver (Windows)
CounterCaffee Script für Besucherstatistiken
Gallery Fotoalbum
JpGraph Script für Diagramme
MySQL MySQL-Datenbank (Windows)
PGB Script für Gästebuch
Phorm Formularauswertung
Phorum Script für Foren
PHP PHP Scriptprozessor (Windows)
PHP Triad PHP, MySQL und Apache für Windows
PHPNuke Content-Management-System
PHPOpenChat Chat-System
Simplenews News-System
SmartFTP FTP-Client
Texteditoren Textpad und Jedit
XCount Seitenzähler
2-6496.book Page 9 Tuesday, November 19, 2002 3:47 PM
2-6496.book Page 10 Tuesday, November 19, 2002 3:47 PM
erstellt von ciando
Vorwort
VorwortDie eigene Homepage íst heutzutage nichts Besonderes mehr. Wenn Ihre Homepageaus dem Einheitsbrei herausstechen soll, müssen Sie schon ein bisschen mehr bietenals die anderen. Dynamische Aspekte sind gefragt, ob nun ein einfacher Seitenzähler,ein Chat oder ein Fotoalbum mit den Bildern Ihres letzten Urlaubs.
Aber gerade solche dynamischen Komponenten sind nicht ohne weiteres zu realisie-ren. Normalerweise müssen Sie profunde Kenntnisse in einer Skriptsprache wie Perl,PHP oder ASP haben. Außerdem wird oft noch eine Datenbankanbindung benötigt,also gesellt sich zu den erforderlichen Kenntnissen noch SQL, die Datenbankabfra-gesprache, hinzu.
Vielleicht gehören Sie zu den Leuten, die sagen: „Das Leben ist zu kurz, um dies alleszu lernen.“ Prima, dann sind Sie eine der möglichen Zielgruppen dieses Buches, dennes werden lediglich HTML-Kenntnisse vorausgesetzt, und selbst die sind nicht absolutnotwendig.
Für jeden Workshop in diesem Buch finden Sie auf der CD-ROM ein fertiges Skript,das Sie nur noch installieren und geringfügig anpassen müssen, und schon können Sieloslegen! Zu verdanken haben Sie das der Open-Source-Bewegung, die es sich zumZiel gemacht hat, gute Software umsonst – ja, Sie haben richtig gelesen: gratis – zurVerfügung zu stellen.
Gerade im Bereich Webtechnologien gibt es eine große Vielfalt an frei erhältlicherSoftware, die aber oftmals einen Haken hat: Die Dokumentation ist nicht so gut, daherist es für Laien schwierig, diese Software zu benutzen.
Dieses Problem möchte ich beheben, indem ich Ihnen in den nächsten 11 Workshopsfreie Software vorstelle und Sie bei Ihren ersten Schritten mit dieser Software begleite.
Ich wünsche Ihnen viel Spaß dabei und steigende Besucherzahlen auf Ihrer Homepage!
Jochen NaumannOktober 2002
2-6496.book Page 11 Tuesday, November 19, 2002 3:47 PM
12
Über den Autor
Über den AutorJochen Naumann studierte Informatik an derTU Darmstadt und ist seit vielen Jahren alsTrainer, Dozent und Berater im Bereich Web-technologien unterwegs. Zu seinem Kunden-kreis zählen namhafte Unternehmen wie dieESA, Telekom, Siemens, Accenture, ZDF undandere. Neben der Schulungstätigkeit schreibter Informatik-Lehrhefte für ein Fernlehrinstitut.
Seine Freizeit verbringt er am liebsten mit seinerFamilie und spielt mit seiner kleinen TochterMaja. Ab und zu versucht er zu joggen oder zusaunieren. Manchmal klappt es auch.
Durch seine positiven Erfahrungen mit Open-Source-Software auch bei größeren Projektenist er überzeugter Verfechter von „freier“ Soft-ware. Der Markt+Technik Verlag gab ihm jetztdie Chance, sein Wissen und seine Überzeu-gung einem breiten Publikum in Buchform zur Verfügung zu stellen.
Schreiben Sie uns!Autor und Verlag sind immer bemüht Ihnen, unseren Kunden und Lesern die optimaleInformation zum Thema zu bieten. Scheuen Sie sich deshalb nicht, uns über Fehler undandere Ärgernisse zu informieren. Nur so können wir laufend an der Verbesserung un-serer Bücher arbeiten. Aber auch Lob, Erfolgserlebnisse und Ihre Ergebnisse interessie-ren uns. Schreiben Sie uns unter [email protected]. Ihre Mails werden sofort anden Autor weitergeleitet!
Ihr Markt+Technik-Buchlektorat
Jürgen Bergmoser
Der Autor in seiner Werkstatt
2-6496.book Page 12 Tuesday, November 19, 2002 3:47 PM
Workshop 1
Der dynamische Dreikampf: PHPTriad
PHP, MySQL und Apache – das Gewinnerteam !
Sie benutzen im weiteren Verlauf dieses Buches ein Softwaretrio namens PHPTriad,dessen Mitglieder zu dem Besten zählen, was auf dem Markt erhältlich ist. Nebenbeiist es auch noch völlig kostenlos! Wo ist der Haken, fragen Sie? Es gibt keinen. PHP-Triad ist durch und durch empfehlenswert und wird vielfach auch im professionellenBereich eingesetzt. In diesem ersten Kapitel erfahren Sie mehr über das GewinnerteamPHPTriad, seine Bestandteile, den Sinn und Zweck, die Installation und den Ge-brauch.
1.1 PHPTriad – was ist das?Wenn Sie Webseiten mit dynamischen Inhalten erzeugen wollen, brauchen Sie dreiKomponenten:
■ eine Datenbank, in der Inhalte abgelegt sind
■ eine Programmiersprache, die die Inhalte aus der Datenbank liest und in eineHTML-Seite einbaut
■ einen Webserver, der die erzeugte HTML-Seite an einen Browser schickt
Für jede dieser Komponenten gibt es eine Vielzahl an Software: Als Webserver könnenSie zum Beispiel den IIS von Microsoft einsetzen, als Programmiersprache Java und alsDatenbank Oracle.
2-6496.book Page 13 Tuesday, November 19, 2002 3:47 PM
14
Der dynamische Dreikampf: PHPTriad
Nun existiert aber eine Kombination aus Produkten, die ein eingespieltes und in derPraxis erprobtes Team bilden:
■ die Datenbank MySQL (mehr Infos unter http://www.mysql.org)
■ die Programmiersprache PHP (http://www.php.net)
■ der Webserver Apache (http://www.apache.org)
Sie können sich jetzt viel Arbeit machen und jede Software einzeln besorgen und nach-einander installieren. Allerdings ist es recht aufwändig, die Komponenten so zu kon-figurieren, dass sie später reibungslos zusammenarbeiten.
Doch zum Glück für Sie haben sich schon andere Leute die Mühe gemacht und genaudie oben erwähnte Kombination aus Produkten zusammengefasst. Das Ganze nenntsich PHPTriad. Mit PHPTriad müssen Sie nur eine Installationsroutine aufrufen unddie einzelnen Komponenten sind auch schon für den gemeinsamen Einsatz vorkonfi-guriert. Wie gut, dass es so viele Leute gibt, die aus Idealismus und Spaß an der Sachesolche Projekte ermöglichen: PHPTriad ist kostenlos.
Wenn Sie mehr über PHPTriad erfahren wollen, besuchen Sie die Homepage unterhttp://sourceforge.net/projects/phptriad.
PROF
ITIP
P Sie sind nicht auf genau diese Kombination angewiesen. Insbesonderedie Art des Webservers ist für die Workshops in diesem Buch unerheb-lich. Auch die Datenbank könnten sie theoretisch austauschen, aller-dings muss dann einiges an den fertigen Programmen auf der CDgeändert werden. Unabdingbar ist nur, dass Sie PHP benutzen.
PROF
ITIP
P
PHPTriad gibt es nur für Windows. Sollten Sie unter Linux arbeiten,müssen sie die Komponenten einzeln installieren. Die dazu nötigeSoftware ist bei den gängigen Linux-Distributionen wie SuSE enthal-ten und wird bei der Installation meist auch korrekt konfiguriert. Desweiteren sollte man beachten, dass man mit PHPTriad nicht die neu-esten Versionen der darin beinhalteten Programme bekommt unddass PHPTriad noch Beta-Status hat, dass heißt noch nicht ganz aus-gereift ist. Alle Skripte in diesem Buch laufen aber unter PHPTriad.
2-6496.book Page 14 Tuesday, November 19, 2002 3:47 PM
Die Installation
15
1.2 Die InstallationDie Installation gestaltet sich sehr einfach, aber leider auch unflexibel. Die gesamteSoftware wird im Ordner c:\apache installiert, was nicht änderbar ist. Dafür müssen Sielediglich das Setup-Programm starten und warten, bis die Installation beendet ist –ohne nervige Fragen zwischendurch.
So gehen Sie Schritt für Schritt vor, um PHPTriad zu installieren:
1 Legen Sie die zum Buch gehörige CD-ROM ein und wechseln Sie in das Ver-zeichnis software.
2 Doppelklicken Sie auf die Datei phptriad2-2-1.exe.
3 Es öffnet sich ein Fenster, in dem Sie gebeten werden, die Nutzungsbedingungen zu akzeptieren. Klicken Sie auf I Agree.
4 Die Installation startet nun. Wenn Sie die Schaltfläche Details drücken, können Sie mitverfolgen, was gerade passiert (Abbildung 1.1).
Abbildung 1.1: Installation von PHPTriad
5 Sobald das Setup-Programm alle Schritte ausgeführt hat, klicken Sie auf die Schaltfläche Close. Die Software ist nun fertig installiert und einsatzbereit.
2-6496.book Page 15 Tuesday, November 19, 2002 3:47 PM
16
Der dynamische Dreikampf: PHPTriad
1.3 Achtung, fertig, los!Nachdem die Installation erfolgreich war, brennt es Ihnen sicherlich schon unter denNägeln, die Software zu testen. Da die Komponenten aufeinander aufbauen, probierenwir sie erst der Reihe nach aus und lassen sie dann alle zusammen eine erste daten-bankgestützte Webseite produzieren. Los geht’s.
Go, Apache!Um den Webserver Apache zu benutzen, muss er zunächst gestartet werden. Bei derInstallation von PHPTriad wird ein neuer Menüpunkt Programs zum Windows-Start-menü hinzugefügt. Darunter finden Sie den Eintrag PHPTriad und hier schließlicheinige Hilfsprogramme zum Bedienen der Software. Zum Starten des Webserversgehen Sie wie folgt vor:
1 Wählen Sie im Startmenü unter Programs/PHPTriad/Apache Console den Eintrag Start Apache (Abbildung 1.2).
Abbildung 1.2: Starten des Webservers
2 Es öffnet sich ein Konsolenfenster, in dem der erfolgreiche Start des Webservers bestätigt wird (Abbildung 1.3). In diesem Fenster werden auch eventuelle Fehler angezeigt, die während des Betriebs von Apache auftreten können.
Abbildung 1.3: Apache-Konsolenfenster
2-6496.book Page 16 Tuesday, November 19, 2002 3:47 PM
Achtung, fertig, los!
17
Laut Apache-Konsolenfenster ist der Webserver jetzt gestartet. Aber Vertrauen ist gut,Kontrolle ist besser! Öffnen Sie zum Testen einen Browser und tippen Sie in die URL-Leiste http://localhost. Localhost ist ein Synonym für den eigenen Rechner, Sie verbindensich also mit Ihrem Computer. Sollte alles gut gehen, sehen Sie eine Begrüßungsmeldungvon PHPTriad (Abbildung 1.4).
Abbildung 1.4: Testen des Webservers
VORS
ICHT
!Schließen Sie dieses Fenster nicht direkt, denn dadurch beenden Sieden Webserver auf unsanfte Weise. Wenn Sie Apache wirklich been-den wollen, benutzen Sie dazu den Befehl Stop Apache unter Pro-grams/PHPTriad/Apache Console im Windows-Startmenü.
VORS
ICHT
!
Stellen Sie sicher, dass nicht der IIS-Webserver von Microsoft oderein anderer Webserver auf Ihrem System bereits gestartet ist. Dieskönnte unter Windows NT oder Windows 2000 Server der Fall sein.Apache würde dann nicht korrekt funktionieren. Sie müssten entwe-der den zweiten Webserver beenden oder den Webservern unter-schiedliche TCP-Ports zuweisen. Dies können Sie unter Windows2000 erreichen, indem Sie den Interdienste-Manager aufrufen imStartmenü unter Programme-Verwaltung.
2-6496.book Page 17 Tuesday, November 19, 2002 3:47 PM
18
Der dynamische Dreikampf: PHPTriad
Go, PHP!Nachdem wir festgestellt haben, dass die erste Komponente funktioniert, testen wirjetzt die Skriptsprache PHP. Eine Testseite mit PHP-Anweisungen ist in dem komfor-tablen Paket PHPTriad natürlich auch schon vorhanden, wir müssen sie nur noch mitdem Browser aufrufen.
Geben Sie dazu die URL http://localhost/phpinfo.php ein. Sie sollten eine Seite wie inAbbildung 1.5 gezeigt erhalten.
Abbildung 1.5: Testen von PHP
Diese Testseite gibt Ihnen viele Informationen zur PHP-Installation, zum Beispiel,welche Version sie benutzen oder welche Module mitgeliefert wurden.
Go, MySQL!Kommen wir nun zur Datenbank. Auch hier muss wie beim Webserver zunächst derentsprechende Hintergrundprozess gestartet werden: der Datenbankserver. Sie findendazu im Startmenü unter Programs/PHPTriad/MySQL zwei Einträge: MySQL-D undMySQL-D-NT.
■ MySQL-D benutzen Sie für Windows 95/98/Me.
■ MySQL-D-NT benutzen Sie für Windows NT, Windows 2000 oder XP.
2-6496.book Page 18 Tuesday, November 19, 2002 3:47 PM
Achtung, fertig, los!
19
Wenn Sie einen passenden Eintrag ausgewählt haben, erscheint kurz ein Konsolen-fenster, das aber gleich wieder verschwindet. Keine Sorge, das ist normal und richtigso. Der Datenbankserver sollte jetzt laufen.
Abbildung 1.6: MySQL-Hintergrundprozess
Um sich mit einer Datenbank zu unterhalten, wird entweder ein grafisches Tool be-nutzt, wie Sie es vielleicht von Microsoft Access kennen, oder die DatenbankspracheSQL (Standard Query Language). MySQL ist zwar eine ausgezeichnete Datenbank, hataber von Haus aus nicht den Benutzungskomfort von Access. Also greifen wir zumTesten zunächst auf SQL zurück. Im nächsten Abschnitt werden Sie dann sehen, wieman MySQL noch einfacher und benutzerfreundlicher bedienen kann.
PROF
ITIP
P
Der Hintergrundprozess, den Sie soeben gestartet haben, nennt sichmysqld.exe bzw. mysqld-nt.exe. Sie können überprüfen, ob dieses Pro-gramm läuft, indem Sie sich die Prozessliste im Windows Task Mana-ger anschauen (Abbildung 1.6). Dort finden Sie übrigens auch denProzess für den Webserver mit dem Namen Apache.exe. Wollen Sieohne einen Neustart Ihres Rechners den Datenbankserver beenden,verwenden Sie dazu im Task Manager die Schaltfläche Prozess beenden.
2-6496.book Page 19 Tuesday, November 19, 2002 3:47 PM
20
Der dynamische Dreikampf: PHPTriad
Zum Testen des Datenbankservers gehen Sie wie folgt vor:
1 Öffnen sie ein Konsolenfenster (im Windows-Startmenü unter Programme/Zubehör/Eingabeaufforderung ).
2 Geben Sie cd \apache\mysql\bin ein, um in das Verzeichnis zu wechseln, in dem die ausführbaren MySQL-Dateien gespeichert sind.
3 Geben sie mysql ein, um den interaktiven MySQL-Monitor zu starten, mit dessen Hilfe Sie SQL-Befehle an die Datenbank schicken können.
4 Wenn Sie nun die Willkommensmeldung von MySQL (Abbildung 1.7) erscheint, ist alles in Ordnung.
5 Lassen Sie uns zum Test noch einen SQL-Befehl absetzen. Geben Sie show data-bases ein. Dieser Befehl zeigt die vorhandenen Datenbanknamen.
Abbildung 1.7: Testen von MySQL
6 Geben Sie quit ein, um den SQL-Monitor zu verlassen.
7 Schließen Sie das Konsolenfenster.
Und jetzt alle zusammen ...Jetzt kommt der große Augenblick: Die Triade soll zum ersten Mal gemeinsam agie-ren. Zum Testen nehmen wir ein webbasiertes Tool, das in PHP geschrieben ist unddie benutzerfreundliche Bedienung von MySQL über einen Browser ermöglicht. Die-ses Tool mit Namen phpMyAdmin ist Bestandteil von PHPTriad, was erneut die Viel-seitigkeit dieses Softwarepakets beweist.
2-6496.book Page 20 Tuesday, November 19, 2002 3:47 PM
Achtung, fertig, los!
21
Im Prinzip ist phpMyAdmin nichts anderes als eine Sammlung von Webseiten mitPHP-Skripten, die sich mit der Datenbank verbinden und diverse SQL-Kommandosausführen. Sie können phpMyAdmin benutzen, um neue Datenbanktabellen anzule-gen, sie mit Inhalt zu füllen und vieles mehr.
Genug der Vorrede, geben Sie nun im Browser die URL http://localhost/phpmyadmin/ein, um auf die Startseite dieses sagenhaften Tools zu kommen. Wenn Sie keine Feh-lermeldung bekommen und eine Seite ähnlich der in Abbildung 1.8 angezeigt wird,hat PHPTriad den Test bestanden. Was genau ist dabei passiert?
■ Der Browser hat die URL der Seite, die angezeigt werden soll, dem Webserverübermittelt.
■ Apache hat erkannt, dass es sich nicht um eine normale HTML-Seite, sondernum eine Seite mit PHP-Befehlen handelt.
■ Die PHP-Bestandteile wurden an den PHP-Interpreter gesendet, der die Befehleausgeführt und eine Verbindung mit MySQL aufgebaut hat.
■ MySQL führt die von PHP übergebenen SQL-Anweisungen aus und liefert dieResultate an PHP zurück.
■ PHP übergibt dem Webserver die fertige Seite.
■ Apache übermittelt schließlich die Seite mit Inhalten aus der Datenbank an denBrowser.
Abbildung 1.8: Startseite von phpMyAdmin
2-6496.book Page 21 Tuesday, November 19, 2002 3:47 PM
22
Der dynamische Dreikampf: PHPTriad
1.4 Webspace im Internet
Meine Seiten sollen ins Netz!Ihre dynamische Website ist fertig und läuft bei Ihnen zu Hause auch wunderbar. Wasist der nächste Schritt? Die Seiten müssen ins Internet, damit jeder sie bewundernkann. Dazu brauchen Sie so genannten Webspace, Speicherplatz auf einem Rechnerim Internet, wo Sie Ihre Daten und Seiten ablegen können. Anbieter von Webspacenennt man auch Hoster.
Nun können Sie nicht jeden beliebigen Hoster nehmen, denn Ihre Website benötigt jaPHP und MySQL, die beide auch beim Hoster installiert sein müssen. Zum Glück istPHP in Kombination mit MySQL aber sehr weit verbreitet in Bezug auf Skriptspra-chen und Datenbanken im Internet, daher bieten inzwischen nahezu alle Hoster einentsprechendes Paket an. Achten Sie auch darauf, dass der Hoster einen Zugang zurDatenbank über das Tool phpMyAdmin anbietet, da dies der komfortabelste Weg ist,MySQL zu bedienen.
Die Angebote für Webspace mit PHP/MySQL-Unterstützung schwanken preislichsehr. In Abbildung 1.9 sehen Sie ein Beispiel des Anbieters hostweb, das Ihnen als An-haltspunkt für eigene Preisrecherchen dienen soll.
PROF
ITIP
P Wenn Sie sich über einen großen Provider wie T-Online oder AOLins Internet einwählen, haben Sie in der Regel zwar Webspace kosten-los zur Verfügung, aber keine PHP/MySQL-Unterstützung. Sie müs-sen sich also zusätzlichen Webspace besorgen.
2-6496.book Page 22 Tuesday, November 19, 2002 3:47 PM
Webspace im Internet
23
Abbildung 1.9: Beispielangebot für Webspace mit PHP/MySQL
Inzwischen können Sie PHP/MySQL-Webspace sogar kostenlos bekommen (Abbil-dung 1.10). Der Anbieter Tripod bietet seit Anfang 2002 auf seinem kostenlosen Web-space auch PHP und MySQL ohne zusätzliche Kosten an. Allerdings bekommenBesucher Ihrer Seiten dann lästige Werbeeinblendungen auf ihren Bildschirm. WennSie das nicht stört und Sie Ihre Seiten nur für private Zwecke einsetzen, könnte Tripodeine Alternative für Sie sein.
Abbildung 1.10: Kostenloser Webspace von Tripod
2-6496.book Page 23 Tuesday, November 19, 2002 3:47 PM
24
Der dynamische Dreikampf: PHPTriad
Um Ihnen eine Starthilfe bei der Suche nach Webspace zu geben, sind nachfolgend einpaar URLs von bekannten Anbietern aufgeführt:
■ http://www.einsundeins.de
■ http://www.schlund.de
■ http://www.strato.de
■ http://www.hostweb.de
■ http://tripod.lycos.de
Wie werden meine Daten übertragen?Wenn Sie einen passenden Hoster gefunden haben, müssen Sie Ihre Daten und Datei-en noch übertragen. Dateien werden im Normalfall über FTP auf den Webserverkopiert. Dazu benötigen Sie einen so genannten FTP-Client. Auf der beiliegendenCD-ROM finden Sie ein solches kostenloses Programm mit dem Namen SmartFTP.
Die Installation ist unproblematisch:
1 Wechseln Sie in das Verzeichnis software auf der CD-ROM.
2 Das Installationsprogramm benötigt eine Datei aus dem Internet. Stellen Sie also sicher, dass Sie ins Internet eingewählt sind.
3 Doppelklicken Sie auf die Datei SFTPSetup.exe. Das Setup-Programm startet mit dem Download einer benötigten Datei und zeigt dann eine Begrüßungsmeldung. Wenn Sie möchten, können Sie jetzt die Internet-Verbindung wieder beenden. Klicken Sie auf die Schaltfläche Next.
4 Bestätigen sie, dass Sie mit den Lizenzbestimmungen einverstanden sind und kli-cken Sie wieder auf Next.
5 Wählen Sie im nächsten Bildschirm die Option Typical (Abbildung 1.11).
2-6496.book Page 24 Tuesday, November 19, 2002 3:47 PM
Webspace im Internet
25
Abbildung 1.11: Installation von SmartFTP
6 Klicken sie noch einmal auf Next, um die Installation zu starten.
Wenn die Installation beendet ist, können Sie SmartFTP starten, indem Sie imWindows-Startmenü unter Programme\SmartFTP den Eintrag SmartFTP wählen.Das Programm ist in englischer Sprache verfasst, aber auf der Homepage finden Sieauch eine Möglichkeit, deutsche Sprachunterstützung nachzuinstallieren: http://www.smartftp.com/localization/projects/german/
Um nun Dateien auf Ihren Webspace zu kopieren, gehen Sie wie folgt vor:
1 Starten Sie SmartFTP. Beim ersten Start erscheint zunächst ein Fenster, in dem Sie SmartFTP konfigurieren können. Die Standardeinstellungen können Sie zunächst ohne Änderung übernehmen, klicken sie also auf OK.
2 Es öffnet sich das Hauptfenster von SmartFTP. Um sich nun mit Ihrem Web-space über FTP zu verbinden, tippen Sie in die Adresszeile die URL Ihres FTP-Zugangs sowie Ihren Benutzernamen und Passwort in die entsprechenden Felder Login und Password ein. Die dafür benötigten Informationen haben Sie von Ihrem Hoster bekommen. Drücken Sie danach die (¢)-Taste. SmartFTP ver-sucht daraufhin, eine Verbindung aufzubauen. Auch hierzu müssen Sie natürlich ins Internet eingewählt sein. Wenn alles klappt, bekommen Sie eine Übersicht, welche Dateien und Ordner schon auf Ihrem Webspace zu finden sind (Abbil-dung 1.12).
2-6496.book Page 25 Tuesday, November 19, 2002 3:47 PM
26
Der dynamische Dreikampf: PHPTriad
Abbildung 1.12: Der FTP-Client SmartFTP
3 Öffnen Sie jetzt den Windows-Explorer und navigieren sie zu den Inhalten, die Sie übertragen möchten. Sie können per Drag&Drop Dateien oder Ordner aus dem Explorer-Fenster in das SmartFTP-Dateifenster ziehen. Sobald Sie die Maustaste loslassen, startet der Dateitransfer. Einfach, nicht wahr?
4 Wollen Sie Inhalte Ihres Webspaces löschen oder umbenennen, können Sie im Dateifenster von SmartFTP so vorgehen, wie Sie es vom Windows-Explorer gewohnt sind. Haben sie alles übertragen und eventuelle Änderungen vorgenom-men, können sie SmartFTP wieder schließen.
Wenn Sie alle Dateien kopiert haben, ist das aber erst die halbe Miete. Der nächsteSchritt besteht darin, die Inhalte aus Ihrer MySQL-Datenbank in die Datenbank IhresWebspaces zu übertragen. Dazu können Sie phpMyAdmin auf beiden Seiten (IhremRechner und dem Internet-Rechner) benutzen. Gehen Sie dabei wie folgt vor:
1 Verbinden Sie sich mit phpMyAdmin auf Ihrem lokalen Rechner: http://local-host/phpMyAdmin/
2 Am linken Bildschirmrand werden alle Datenbanken angezeigt, die von MySQL angelegt wurden. Klicken Sie auf die Datenbank, die Sie kopieren möchten.
2-6496.book Page 26 Tuesday, November 19, 2002 3:47 PM
Webspace im Internet
27
Scrollen Sie etwas nach unten, bis Sie die Funktion Dump (Schema) der Daten-bank anzeigen finden (Abbildung 1.13). Hier wählen Sie die Option Struktur und Daten und aktivieren das Kontrollkästchen Senden.
Abbildung 1.13: Dump einer Datenbank
3 Klicken Sie auf OK. Sie werden dann aufgefordert, den Speicherort für den so genannten Datenbankdump anzugeben. Wählen Sie ein beliebiges Verzeichnis.
4 Verbinden Sie sich mit dem phpMyAdmin-Tool Ihres Webspaces. Die URL hier-für erhalten Sie von Ihrem Hoster.
5 Auf der Startseite von phpMyAdmin finden Sie die Funktion Neue Datenbank erzeugen (Abbildung 1.14). Tragen Sie den Namen der Datenbank, die Sie kopie-ren wollen, ein und klicken Sie auf Erzeugen.
Abbildung 1.14: Neue Datenbank erzeugen
6 Sie befinden sich jetzt auf der Verwaltungsseite der neu angelegten Datenbank. Dort finden Sie die Funktion, um SQL Befehle aus einer Datei auszuführen. Kli-
PROF
ITIP
P
Sollte Ihr Hoster wider Erwarten kein phpMyAdmin anbieten, musser eine Alternative anbieten, wie Sie Daten übertragen können. Ent-sprechende Informationen wird er Ihnen bereitstellen.
2-6496.book Page 27 Tuesday, November 19, 2002 3:47 PM
28
Der dynamische Dreikampf: PHPTriad
cken Sie auf Durchsuchen, um die Datei auf Ihrer Festplatte auszuwählen, die Sie in Schritt 3 gespeichert haben. Bestätigen Sie anschließend Ihre Auswahl mit OK.
Abbildung 1.15: SQL-Befehle aus Datei ausführen
7 Je nach Umfang der Daten müssen Sie einen Augenblick warten. Sie sollten dann aber die Rückmeldung erhalten, dass die Befehle erfolgreich ausgeführt und der Inhalt der Datei eingefügt wurde. Überprüfen Sie, ob die Datenbank korrekt kopiert wurde.
Das war’s, jetzt sollte Ihre dynamische Website im Internet genauso funktionieren wiezu Hause auf Ihrem Testsystem.
1.5 Für NeugierigeSie fühlen sich angesprochen? Gut, denn in diesem Abschnitt bekommen Sie ein paarHintergrundinformationen zu PHP und MySQL, die Sie zur weiteren Lektüre desBuches nicht unbedingt brauchen. Trotzdem ist es interessant zu erfahren, was zumBeispiel die Abkürzung PHP bedeutet oder warum MySQL so erfolgreich ist.
Ein paar Details zu PHPPHP steht für PHP: Hypertext Preprocessor Der Name deutet schon an, dass PHP eineSkriptsprache zur Programmierung von dynamischen Webseiten ist. PHP ist dabei be-sonders aufgrund zweier Eigenschaften interessant.
PROF
ITIP
P Wenden Sie sich bei Problemen mit phpMyAdmin, MySQL oder PHPan den Support Ihres Hosters. Oftmals gibt es auch eine Webseite, dieimmer wieder auftauchende Probleme und deren Lösungen beschreibt,so genannte FAQs (Frequently asked questions – häufig gestellte Fragen).
2-6496.book Page 28 Tuesday, November 19, 2002 3:47 PM
Für Neugierige
29
■ Das Programm ist kostenlos als Open-Source-Projekt erhältlich. Beim Einsatzvon PHP müssen Sie keinerlei Lizenzgebühren bezahlen. Außerdem können Sieden gesamten Quellcode bekommen; eigene Änderungen sind also theoretischbei entsprechendem Fachwissen möglich, dann sollte man sich aber der Entwick-lergemeinde im Internet anschliessen.
■ Aufgrund der großen Entwicklergemeinde von PHP existiert bereits eine großeZahl an kostenlos verfügbaren Erweiterungen und Applikationen. Besonders her-vorzuheben sind hier die Funktionen zum Zugriff auf zahlreiche Datenbanksys-teme. Aber auch für andere Bereiche finden sich viele fertige Produkte, die Siezum Teil in den nächsten Kapiteln vorgestellt bekommen.
Die freie Verfügbarkeit von PHP und Erweiterungen zu PHP sowie die Einfachheit derSprache haben in den letzten Jahren zu einer rasanten Verbreitung geführt (Abbildung1.16). So ist PHP laut Netcraft-Statistik im Juli 2002 auf 1,2 Millionen Webservern und9,3 Millionen Domains im Einsatz.
Abbildung 1.16: Verbreitung von PHP
Interessant ist auch die so genannte Marktdurchdringung, also wie häufig PHP im Ge-gensatz zu Konkurrenzprodukten verwendet wird (Abbildung 1.17).
Abbildung 1.17: PHP-Marktdurchdringung
2-6496.book Page 29 Tuesday, November 19, 2002 3:47 PM
30
Der dynamische Dreikampf: PHPTriad
Mehr Statistiken und Informationen finden Sie unter:
■ http://www.netcraft.com
■ http://www.securityspace.com/s_survey
Die Zukunft von MySQLMySQL wird zurzeit in Version 3.23 angeboten. Es gibt viele Gründe, warum manMySQL in dieser Version einsetzt:
■ Es ist Open-Source-Software, das heißt, der Quellcode ist einsehbar und es fallenkeine Lizenzgebühren an. Im Vergleich dazu kann eine Lizenz für das Daten-banksystem Oracle bis zu 50.000 € kosten.
■ MySQL ist sehr schnell, besonders im webbasierten Einsatz. Im Vergleich zuanderen kommerziellen Datenbanksystemen wie Oracle braucht es sich nicht zuverstecken.
■ MySQL gibt es für eine Vielzahl von Betriebsystemen, z.B. Linux, Windows,FreeBSD, Solaris oder OS/2.
■ Es arbeitet hervorragend mit PHP zusammen und ist zu einem De-facto-Stan-dard für webbasierten Datenbankzugriff mit PHP geworden.
Man darf allerdings nicht die Nachteile verschweigen:
■ MySQL unterstützt von Haus aus keine Transaktionen, man muss Zusatztoolsdafür benutzen. Transaktionen werden benötigt, damit Daten bei fehlerhaftenOperationen nicht verloren gehen.
■ Wenn ein Benutzer auf eine Tabelle zugreift, wird diese für alle anderen Benutzergesperrt. Bei hohen Zugriffszahlen leidet so die Geschwindigkeit, da viel Zeit mitWarterei vertan wird. Andere Datenbanksysteme arbeiten feiner, dort ist es mög-lich, nur Tabellenzeilen zu sperren.
■ MySQL bietet keine grafische Umgebung zum Bedienen und Administrieren derDatenbank. Aber wie Sie schon gesehen haben und noch sehen werden, wird die-ser Nachteil durch das hervorragende Tool phpMyAdmin relativiert.
Die Entwicklergemeinde von MySQL hat sich zum Ziel gesetzt, die beste Datenbankkostenlos anzubieten. Deshalb hat man für die neue Version 4, die schon zum Down-load bereitsteht, die größten Nachteile aus dem Weg geräumt. MySQL 4.0 bietetTransaktionsmanagement und zeilenweises Sperren. Damit dürfte MySQL 4.0 derteuren Konkurrenz das Fürchten lehren.
2-6496.book Page 30 Tuesday, November 19, 2002 3:47 PM
Workshop 2
Sherlock Holmes und Dr. PHP
Wie Ihnen PHP-Scripts helfen, nützliche Informationen zu gewinnen.
In diesen und den restlichen Kapiteln des Buches werden Sie fertige Scripts kennen ler-nen, die die Fähigkeiten von PHP und MySQL nutzen. Alle Scripts sind Freeware, dasheißt, sie können Sie kostenfrei benutzen. Ist das nicht wunderbar? Willkommen inder Welt von Open-Source-Software! Als Einstieg möchte ich Ihnen zwei Scripts vor-stellen, die Informationen über die Besucher Ihrer Homepage herausfinden. Mithilfedes ersten Scripts mit Namen xCount können Sie einen Seitenzähler in Ihre Homepageeinbauen. Das zweite Script trägt den Namen CounterCaffe und kann schon etwasmehr. Es zeigt komplette Statistiken, wer wann welche Seite wie oft aufgerufen hat. BigBrother is watching you!
2-6496.book Page 31 Tuesday, November 19, 2002 3:47 PM
32
Sherlock Holmes und Dr. PHP
Ergebnis dieses WorkshopsAls Ergebnis dieses Workshops erhalten Sie zweierlei: erstens die Möglichkeit, einengrafischen Seitenzähler auf beleibige Seiten einzubauen und zweitens eine umfassendeStatistik über die Nutzung Ihrer Website.
2.1 Ein einfacher SeitenzählerWir beginnen ganz einfach – mit einem Seitenzähler. Das haben Sie sicher schon aufvielen Seiten gesehen. Oftmals sieht der Zähler aus wie ein Tachometer und zeigt an,wie viele Besucher diese Seite schon hatte.
Damit auch Sie in den Genuss eines solchen Zählers kommen können, müssen Sie zu-nächst das Script, das Sie schon fertig geliefert bekommen, installieren. Für das Scriptnamens xCount – wie für alle weiteren Scripts im Buch – müssen zwei verschiedene In-stallationen unterschieden werden: Die Installation auf Ihrem lokalen Testsystem mitPHPTriad und die Installation auf Ihrem Webspace im Internet. Die Installation aufdem Webspace gestaltet sich als schwieriger, da man die Dateien zunächst über einFTP-Programm übertragen muss und es mehr Fehlerquellen gibt. Außerdem hat manmeistens auf die Konfiguration von PHP und MySQL keinen Einfluss. Ein paar Fall-stricke können Sie im Anhang über Troubleshooting nachlesen.
2-6496.book Page 32 Tuesday, November 19, 2002 3:47 PM
Ein einfacher Seitenzähler
33
Die InstallationIch stelle Ihnen exemplarisch beide Installationen vor, damit Sie sich ein Bild von denUnterschieden machen können.
Zuerst die Installation auf Ihrem lokalen Testsystem:
1 Legen Sie einen Unterordner namens counter im Dokumentenordner Ihres Web-servers an. Im Fall des Testsystems mit PHPTriad ist das c:\apache\htdocs.
2 Extrahieren Sie die Datei xCount.zip in das neu angelegte Verzeichnis. Die Ord-nerstruktur sollte dann wie in Abbildung 2.1 aussehen.
Abbildung 2.1: Die xCount-Dateien
Das war’s schon. Um die Funktionalität zu testen, probieren Sie die enthaltene Test-datei sample.php aus, die den Zähler integriert hat. Öffnen Sie dazu einen Browser wieden Internet Explorer und wechseln Sie zur URL http://localhost/counter/sample.php.
CD-R
OMAU
F DE
R
Die notwendige Archivdatei finden Sie auf der CD-ROM im Ver-zeichnis \software\xCount. Sie hat den Namen xCount.zip.
Im Internet finden Sie die aktuelle Version unter http://www.x-gfx.de.
2-6496.book Page 33 Tuesday, November 19, 2002 3:47 PM
34
Sherlock Holmes und Dr. PHP
Wenn Sie eine Seite wie in Abbildung 2.2 sehen, ist das die halbe Miete. Um die volleFunktionalität zu testen, klicken Sie auf den Link Refresh/Count. Der Zähler sollte proKlick eins hochzählen.
Abbildung 2.2: Eine Testseite
Und nun die Installation auf Ihrem Webspace:
1 Erstellen Sie ein temporäres Verzeichnis auf Ihrer Festplatte, zum Beispiel c:\temp\counter.
2 Extrahieren Sie die Archivdatei xCount.zip in dieses Verzeichnis.
3 Benutzen Sie das in Kapitel 1 vorgestellte FTP-Programm SmartFTP, um das komplette Verzeichnis counter auf Ihren Webspace zu übertragen.
4 Achten Sie darauf, dass die Datei counter.dat zum Schreiben freigegeben ist. Klicken Sie dazu im SmartFTP-Fenster mit der rechten Maustaste auf die Datei counter.dat und wählen aus dem Kontextmenü den Eintrag Properties/CHMOD. Stellen Sie die Schreibrechte analog zu Abbildung 2.3 ein.
2-6496.book Page 34 Tuesday, November 19, 2002 3:47 PM
Ein einfacher Seitenzähler
35
Abbildung 2.3: Dateirechte ändern
Jetzt sollte es auch auf Ihrem Webspace funktionieren. Probieren Sie wieder die Test-seite sample.php, indem Sie mit einem Browser zur URL http://meinWebspace.de/coun-ter/sample.php wechseln. meinWebspace.de ersetzen Sie natürlich mit dem NamenIhrer Domain.
Einbau des ZählersDass die Testseite funktioniert ist zwar schön, aber wir wollen den Zähler natürlich aufeigenen Seiten benutzen. Wie das geht, erfahren Sie in diesem Abschnitt.
Lassen Sie uns dazu eine einfache HTML-Seite schreiben, die wir dann mit dem Zählerbestücken.
Der Code der Seite ist:
<html><h1>Testseite</h1></html>
Speichern Sie die Seite unter dem Namen Testseite.php in Ihrem counter-Verzeichnis ab.
2-6496.book Page 35 Tuesday, November 19, 2002 3:47 PM
36
Sherlock Holmes und Dr. PHP
Um nun den Zähler einzubauen, fügen Sie folgenden Code in Zeile 3 ein:
<? include("counter.php"); echo $cnt_output; ?>
Der gesamte Code lautet dann also:
<html><h1>Testseite</h1><? include("counter.php"); echo $cnt_output; ?></html>
Das Ergebnis sehen Sie in Abbildung 2.4.
Abbildung 2.4: Zähler auf eigener Seite
PROF
ITIP
P Die Datei hat die Endung .php, da der Zähler, den wir später einbauenwollen, ein PHP-Script ist. Damit PHP-Scripts vom Webserver alssolche erkannt werden, müssen Sie die entsprechende Endung –nämlich .php – haben.
VORS
ICHT
!
Falls die Seite, in die Sie den Zähler einbauen, nicht im gleichen Ver-zeichnis liegt wie das counter-Script, müssen Sie die include-Anwei-sung modifizieren. Als Parameter bekommt die include-Anweisungden Ort des counter-Scripts. Nehmen wir einmal an, Sie wollen denZähler in eine Seite einbauen, die in einem Verzeichnis beliebigenNamens in Ihrem Dokumentenverzeichnis des Webservers liegt.Dann müsste die include-Anweisung lauten: include("../counter/counter.php").
2-6496.book Page 36 Tuesday, November 19, 2002 3:47 PM
Ein einfacher Seitenzähler
37
Ihnen ist bestimmt schon aufgefallen, dass der Zähler nicht bei 0 anfängt. Das könnenwir schnell beheben. Öffnen Sie die Datei counter.dat im counter-Installationsverzeich-nis mit Hilfe eines Texteditors. In dieser Datei wird die Anzahl der Zugriffe gespei-chert. Ändern Sie die Zahl einfach ab und speichern Sie die Datei.
KosmetikIch weiß nicht, wie es Ihnen geht, aber ich finde die mitgelieferten Grafiken für denZähler nicht besonders gut lesbar. Zum Glück kann man hier eigene Grafiken einbin-den. Schauen Sie einmal in den Ordner img im counter-Installationsverzeichnis. Dortexistiert für jede Zahl eine eigene Grafik, die Sie auch ändern können.
Nun ist es relativ viel Arbeit, eigene Ziffern für den Zähler zu entwerfen. Aber es habensich schon viele andere die Arbeit gemacht und waren so nett, die Ergebnisse im Inter-net frei bereitzustellen.
Eine große Sammlung von Zählerziffern bekommen Sie auf der Seite http://www.coun-terart.com. Wählen Sie einfach die gewünschte Rubrik und klicken Sie dann auf einenZähler, der Ihnen gefällt. Auf der Download-Seite wählen Sie dann das Zip-Archiv(Abbildung 2.5).
Abbildung 2.5: Download eines Ziffernsets
2-6496.book Page 37 Tuesday, November 19, 2002 3:47 PM
38
Sherlock Holmes und Dr. PHP
Damit Sie die neuen Ziffern benutzen können, gehen sie folgendermaßen vor:
1 Legen Sie einen neuen Ordner für die Ziffern im counter-Installationsverzeichnis an, zum Beispiel mit dem Namen meineZiffern.
2 Extrahieren Sie das heruntergeladene Archiv in das neue Verzeichnis meineZiffern.
3 Ändern Sie die Dateinamen der Ziffern um, wie in Abbildung 2.6 gezeigt.
Abbildung 2.6: Ändern der Dateinamen
4 Öffnen Sie die Datei counter.php in einem Texteditor and ändern Sie den Eintrag in Zeile 46 um in:
$img_url = "./meineZiffern";
PROF
ITIP
P Falls Sie keinen Texteditor besitzen, können sie den auf der CD-ROMmitgelieferten Textpad oder JEdit installieren. Sie finden die Pro-gramme im Verzeichnis \software\Texteditoren. Für JEdit benötigenSie allerdings eine Java-Laufzeitumgebung (erhältlich bei http://java.sun.com), dafür kann er wesentlich mehr als Textpad.
2-6496.book Page 38 Tuesday, November 19, 2002 3:47 PM
Besucherstatistiken
39
5 Speichern Sie die Datei und testen Sie Ihre neuen Ziffern mit der Testseite (Abbildung 2.7).
Abbildung 2.7: Die neuen Ziffern
2.2 BesucherstatistikenDa Sie das erste Unterkapitel unbeschadet überstanden haben – schließlich lesen Sieweiter –, erhöhen wir den Schwierigkeitsgrad ein wenig. In diesem Unterkapitel möch-te ich Ihnen ein Script vorstellen, das mithilfe von PHP und der MySQL-Datenbankeine Besucherstatistik erstellt. Folgende Informationen werden dabei bereitgestellt:
■ Welche Seiten wurden aufgerufen?
■ Wie oft wurde eine Seite aufgerufen?
■ Von welchem Rechner wurden Seiten aufgerufen?
■ Welcher Browser und welches Betriebssystem wurden auf den Besucherrechnernbenutzt ?
Vielleicht fragen Sie sich, woher alle diese Informationen kommen? Die Antwort ist,dass sie standardmäßig vom Browser bei jedem Seitenaufruf an den Webserver gesen-det werden. Das heißt, die Informationen sind immer da, ein Script muss Sie nurentsprechend auslesen und auswerten. Genau das erledigt das Script mit dem NamenCounterCaffe.
CD-R
OMAU
F DE
R
CounterCaffe finden Sie auf der CD-ROM im Verzeichnis \software\CounterCaffe. Die Archivdatei nennt sich CounterCaffe1.1.zip.
Im Internet finden Sie die aktuelle Version unter http://counter.gonafish.com
2-6496.book Page 39 Tuesday, November 19, 2002 3:47 PM
40
Sherlock Holmes und Dr. PHP
Die Installation von CounterCaffeUm CounterCaffe zu installieren, gehen Sie folgendermaßen vor:
1 Legen Sie ein neues Verzeichnis namens statistik im Dokumentenordner des Webservers an (c:\apache\htdocs) an.
2 Extrahieren Sie die Archivdatei CounterCaffe1.1.zip in das neue Verzeichnis.
3 Öffnen Sie die Datei param.inc.php in einem Texteditor wie Textpad.
4 Ändern Sie die Einstellungen ab wie in Abbildung 2.8 gezeigt.
Abbildung 2.8: Konfiguration von CounterCaffe
Die ersten vier Parameter sind die Datenbankeinstellungen. Wir haben als Datenbank-benutzer donald angegeben und als Datenbankname db1. Woher kommen diese Werte?Um ehrlich zu sein, es gibt sie noch gar nicht. Wir müssen den neuen Datenbankbenut-zer und die Datenbank db1 erst noch erstellen.
Dazu gehen Sie wie folgt vor:
1 Öffnen Sie einen Browser und wechseln Sie zur MySQL-Administrationsseite: http://localhost/phpmyadmin.
2 Klicken Sie auf den Link Benutzer (ganz unten).
2-6496.book Page 40 Tuesday, November 19, 2002 3:47 PM
Besucherstatistiken
41
3 Scrollen Sie etwas nach unten bis zur Rubrik Neuen Benutzer hinzufügen und geben Sie als Name und Passwort donald an (Abbildung 2.9). Klicken Sie außer-dem auf den Link Alle auswählen in der Rubrik Rechte.
Abbildung 2.9: Neuen Benutzer anlegen
4 Bestätigen Sie Ihre Eingaben mit Klick auf die Schaltfläche OK. Damit ist der neue Benutzer donald erstellt.
5 Kehren Sie zurück zur Startseite durch Klick auf den Link Home im linken Menü ganz oben.
PROF
ITIP
P In der MySQL-Datenbank Ihres Webspaces können sie diese Proze-dur vermutlich nicht ausführen, da Ihnen dazu die Rechte fehlen. Siehaben aber wahrscheinlich eine MySQL-Benutzerkennung von IhremHoster erhalten. Benutzen Sie einfach diese Kennung anstatt donald.
2-6496.book Page 41 Tuesday, November 19, 2002 3:47 PM
42
Sherlock Holmes und Dr. PHP
6 Geben Sie in das Textfeld unter der Rubrik Neue Datenbank erzeugen den Text db1 ein und klicken Sie auf die Schaltfläche Erzeugen, um die neue Datenbank zu erstellen (Abbildung 2.10).
Abbildung 2.10: Neue Datenbank erzeugen
Nach dieser notwendigen Vorarbeit können wir jetzt die Installation von CounterCaffeabschließen:
1 Wechseln Sie zur URL http://localhost/statistik/.
2 Loggen Sie sich mit der in der Datei param.inc.php eingestellten Administrator-Kennung goofy, Passwort auch goofy, ein (Abbildung 2.11). Der Zugang zur Sta-tistikseite ist geschützt, damit nicht jeder beliebige Internetsurfer Ihre Statistiken ansehen kann.
2-6496.book Page 42 Tuesday, November 19, 2002 3:47 PM
Besucherstatistiken
43
Abbildung 2.11: CounterCaffe-Login
3 Klicken Sie auf den Link Create Table im oberen rechten Menü. Sie bekommen eine Bestätigung, dass die notwendigen Datenbanktabellen erzeugt wurden (Abbildung 2.12).
Abbildung 2.12: Datenanktabellen erstellen
Damit ist CounterCaffe einsatzbereit. Die Spannung steigt...
2-6496.book Page 43 Tuesday, November 19, 2002 3:47 PM
44
Sherlock Holmes und Dr. PHP
Erstellen von StatistikenJede Seite Ihrer Homepage, für die eine Statistik geführt werden soll, muss folgendenEintrag am Ende der Datei haben:
<img src="http://localhost/statistik/counter.php" width="1"height="1">
Als Quelle des Bildes müssen Sie die URL zu einer CounterCaffe-Scriptdatei namenscounter.php angeben (hier http:// localhost/statistik/counter.php).
Lassen Sie uns eine Testseite erstellen, die die Funktionalität von CounterCaffe demons-triert:
1 Legen Sie im Dokumentenverzeichnis Ihres Webservers (c:\apache\htdocs) einen neuen Ordner namens homepage an. Hier wollen wir die Testdatei speichern.
2 Schreiben Sie eine Testdatei mit folgenden einfachen HTML-Code:
<html><h1>Testseite</h1></html>
3 Damit eine Statistik für diese Seite geführt wird, fügen Sie den notwendigen Code hinzu:
<html><h1>Testseite</h1><img src="http://localhost/statistik/counter.php" width="1" height="1"></html>
4 Speichern Sie die Datei im Ordner homepage.
PROF
ITIP
P
CounterCaffe benutzt einen Trick, um die Statistiken zu erzeugen.Normalerweise wird jedes Bild einer Internetseite einzeln vom Web-server angefordert. Es ist also nicht Bestandteil des Seitentextes. Jetztwird im oben stehenden Code aber als Quelle des Bildes keine Bild-datei, sondern ein PHP-Script angegeben. Für den Webserver bedeu-tet das, dass er die Scriptdatei ausführt und somit werden dienotwendigen Daten für die Statistik in die Datenbank übernommen.
2-6496.book Page 44 Tuesday, November 19, 2002 3:47 PM
Besucherstatistiken
45
5 Öffnen Sie einen Browser und schauen Sie sich die HTML-Datei an: http://local-host/homepage/Testseite.html.
6 Öffnen Sie eine andere Browserinstanz und wechseln Sie zur URL von Counter-Caffe: http://localhost/statistik/. Loggen Sie sich wieder mit goofy ein. Sie sollten jetzt Statistikdaten sehen (Abbildung 2.13).
Abbildung 2.13: Statistik
Unter der Rubrik Referer sehen sie die Seiten, die bisher aufgerufen wurden, und dieAnzahl der Aufrufe. In der Rubrik Host sehen Sie die IP-Adressen bzw. Namen derRechner (Hosts), die Seiten aufgerufen haben, sowie deren Browser und Betriebssys-tem. Im Beispiel ist das MSE 5 (Microsoft Internet Explorer Version 5) und WindowsNT 5 (Synonym für Windows 2000).
Greifen Sie erneut auf die Seite zu. Sie werden sehen, wie sich die Statistik entspre-chend ändert. Vielleicht haben Sie ja auch die Möglichkeit, über einen anderen Rech-ner auf die Testseite zuzugreifen, um einen weiteren Eintrag in der Host-Rubrik zubekommen.
VORS
ICHT
! Das Statistik-Script ist so ausgelegt, dass es nur Hosts zählt, die einenNamen haben. Besser wäre es allerdings, wenn auch Hosts gezählt wür-den, die nur IP-Adressen haben. Um das zu erreichen, müssen Sie dasScript ein wenig abändern. Öffnen Sie dazu die Datei counter.php ineinem Editor und fügen Sie folgenden Code in Zeile 19 ein:
if ($REMOTE_HOST == "") {$REMOTE_HOST = $REMOTE_ADDR;}
2-6496.book Page 45 Tuesday, November 19, 2002 3:47 PM
46
Sherlock Holmes und Dr. PHP
Über den Link Report in der oberen rechten Menüleiste können sie einen zum Ausdru-cken geeigneten Bericht erstellen lassen (Abbildung 2.14).
Abbildung 2.14: Bericht ansehen
Jetzt müssen Sie nur noch den Code zum Aktivieren der Statistikfunktion in alle Seiteneinfügen, die Sie in die Statistik mit aufnehmen wollen.
Ich wünsche Ihnen zahlreiche Besucher und damit auch zahlreiche Einträge in derStatistikdatenbank!
2-6496.book Page 46 Tuesday, November 19, 2002 3:47 PM
Besucherstatistiken
47
Ergebnis dieses WorkshopsSie haben in diesem Workshop gelernt, wie Sie einen einfachen grafischen Seitenzählerin Ihre Seiten einbauen können. Des weiteren haben sie das Skript CounterCaffe ken-nen gelernt, dass es Ihnen ermöglicht, Berichte über die Nutzung Ihrer Website zuerstellen.
2-6496.book Page 47 Tuesday, November 19, 2002 3:47 PM
2-6496.book Page 48 Tuesday, November 19, 2002 3:47 PM
Workshop 3
Beehren Sie uns bald wiederWie Sie mit einem Gästebuch in Kontakt mit den Besuchern Ihrer Seite kommen
Gästebücher werten eine Seite auf. Besucher können Ihre Meinung zur Website loswer-den und Sie erhalten so wertvolles Feedback. Außerdem gibt ein Gästebuch einer Web-site einen persönlichen Touch. In diesem Kapitel werde ich Ihnen ein Gästebuch aufPHP-Basis vorstellen, das seine Einträge in einer MySQL-Datenbank speichert. Es ist fürnicht-kommerzielle Zwecke kostenlos und nennt sich einfach nur pgb (php Gästebuch).
Ergebnis dieses WorkshopsAls Ergebnis erhalten Sie ein komfortables Gästebuch mit vielen Funktionen, dass andas Design Ihrer Homepage angepasst ist.
2-6496.book Page 49 Tuesday, November 19, 2002 3:47 PM
50
Beehren Sie uns bald wieder
3.1 InstallationIch erläutere Ihnen die Installation zunächst für das lokale Testsystem mit PHPTriadund dann für Ihren Webspace im Internet. In den folgenden Kapiteln werde ich dieInstallation auf Ihrem Webspace nicht mehr erläutern, der prinzipielle Mechanismusist immer der gleiche.
Zunächst widmen wir uns der Installation auf Ihrem lokalen Rechner:
1 Entpacken Sie die Archivdatei in das Dokumentenverzeichnis Ihres Webservers. Falls Sie PHPTriad benutzen, lautet der Pfad c:\apache\htdocs.
Das war’s schon.
Jetzt die Installation auf Ihrem Webspace:
1 Erstellen sie auf ihrem Webserver ein beliebiges Verzeichnis, in dem sie das Gäste-buch betreiben wollen.
2 Entpacken sie alle Dateien aus der .zip-Datei und übertragen diese mit ihrem FTP-Programm in dieses Verzeichnis auf den Webserver.
Damit ist die Installation beendet.
Jetzt muss pgb noch an Ihre Gegebenheiten angepasst werden. Öffnen sie dazu in ei-nem Texteditor die Datei config.inc.php im Installationsverzeichnis.
In der Datei config.inc.php finden sie alle relevanten Parameter, um das Gästebuch anihre MySQL-Datenbank anzubinden und einzustellen. Beachten Sie, dass alle Werte in"" eingeschlossen sind und am Ende der Zeile ein Semikolon steht. In der nachfolgen-den Tabelle finden Sie einige wichtige Parameter.
VORS
ICHT
!
Stellen Sie sicher, dass die Bilder (.gif) im Binärmodus übertragenwerden. Bei Webservern auf Linux/Unix-Basis achten Sie auf die kor-rekte Groß-/Kleinschreibung der Files.
Parameter Beschreibung
$database Name Ihrer Datenbank auf dem MySQL-Server
$sqlhost Hostname, auf dem die MySQL-Datenbank läuft. Meistens : "localhost"
$sqluser Username für die Datenbank
$sqlpass Passwort für die Datenbank
2-6496.book Page 50 Tuesday, November 19, 2002 3:47 PM
Installation
51
Tragen Sie für Ihr lokales Testsystem die Werte analog zu Abbildung 3.1 ein und spei-chern Sie die Datei.
Abbildung 3.1: Anpassen der pgb-Konfiguration
$tab_data Tabellenname für die Einträge (SQL-fähiger Name!)
$tab_kom Tabellenname für die Kommentare (SQL-fähiger Name!)
$adminpass Passwort zum Löschen von Einträgen
$adminemail E-Mail-Adresse des Administrators, an die bei $notify=1 die neuen Einträge geschickt werden
$notify Wenn $notify = 1 werden neue Einträge via E-Mail an den Admin verschickt.
$time_offset Zur Anpassung an verschiedene Zeitzonen; 3600 pro Stunde
$glowstyle Dieses Tag ermöglicht es, das Glühen des Autornamens anzupassen
Parameter Beschreibung
2-6496.book Page 51 Tuesday, November 19, 2002 3:47 PM
52
Beehren Sie uns bald wieder
Nach der Anpassung der Parameter $database, $sqlhost, $sqluser und $sql-pass haben Sie bereits Zugang zur Datenbank.
Die Tabellennamen $tab_data und $tab_kom müssen nicht geändert werden. Diesebieten aber die Möglichkeit, auf einer Datenbank zwei verschiedene Gästebücher zuinstallieren, indem man die Tabellennamen einfach entsprechend ändert.
Bei $adminemail tragen sie Ihre E-Mail-Adresse ein, an die Benachrichtigungen überneue Gästebucheinträge geschickt werden, wenn $notify auf 1 steht.
$time_offset gibt den Zeitunterschied des Gästebuchs zur Serverzeit an. Somit kannman das Gästebuch genau an eine Zeitzone anpassen. Der Wert gibt den Unterschiedin Sekunden an. +3600 steht für +1 Stunde, -3600 steht für -1 Stunde.
Die benötigten Datenbanktabellen für das Gästebuch erstellen sie automatisch mitdem mitgelieferten Script pgb_createdb.php:
Öffnen Sie einen Browser und wechseln Sie zur URL http://localhost/gb/pgb_crea-tedb.php. Die Datenbanktabellen werden nun erstellt. Beachten sie, dass die Datenbankdb1 und der Benutzer donald existieren müssen (wurde in Kapitel 2 erstellt).
Abbildung 3.2: Skript zum Anlegen der Datenbanktabellen
VORS
ICHT
!
Unterstützt der Webserver kein Versenden von E-Mails, muss dieseOption auf 0 stehen, ansonsten erscheint beim Eintragen ins Gäste-buch eine Fehlermeldung.
2-6496.book Page 52 Tuesday, November 19, 2002 3:47 PM
Handhabung
53
Nun ist es Zeit für einen ersten Test des Gästebuchs. Klicken Sie auf den Link Start, umauf die Startseite des zurzeit noch leeren Gästebuchs zu kommen. Wenn alles funktio-niert hat, sieht das wie in Abbildung 3.3 aus.
Abbildung 3.3: Die Startseite
3.2 HandhabungSo, dann wollen wir mal einen ersten Eintrag einfügen. Auf der Startseite finden Siedazu die Rubrik Eintrag hinzufügen . Füllen Sie die Felder analog zu Abbildung 3.4 undklicken Sie auf die Schaltfläche Eintragen.
2-6496.book Page 53 Tuesday, November 19, 2002 3:47 PM
54
Beehren Sie uns bald wieder
Abbildung 3.4: Eintrag erstellen
Es erscheint eine Bestätigungsmeldung. Klicken Sie auf den Link Zurück , um wiederzur Startseite zu gelangen. Der neue Beitrag erscheint dort (Abbildung 3.5).
Abbildung 3.5: Der neue Eintrag
2-6496.book Page 54 Tuesday, November 19, 2002 3:47 PM
Handhabung
55
Zu jedem Eintrag können alle Benutzer Kommentare abgeben. Klicken Sie dazu aufden Link Kommentare unterhalb des Autornamens. Tragen Sie etwas ein und spei-chern Sie Ihre Eingabe durch Klick auf die Schaltfläche Kommentar Abschicken.
Abbildung 3.6: Kommentar abgeben
Ihr Kommentar wird jetzt angezeigt. Sie befinden sich immer noch auf der Kommen-tarseite. Um zurück zur Hauptseite des Gästebuchs zu gelangen, benutzen Sie den LinkZurück ins Gästebuch am Ende der Seite. Dort werden Kommentare nicht direkt ange-zeigt, aber die Anzahl der Kommentare zu einem Beitrag.
Wenn das Gästebuch sehr viele Beiträge umfasst, kann es nützlich sein, die Suchfunk-tion zu benutzen. Man kann damit nach Autoren suchen, wobei man nicht den voll-ständigen Namen kennen muss, sondern auch nur nach einzelnen Buchstaben oderSilben, die an beliebiger Stelle im Namen auftauchen, suchen lassen kann. Es werdendann alle Beiträge der Autoren angezeigt, die diesem Suchkriterium entsprechen. InAbbildung 3.7 sehen Sie, dass ich als Suchkriterium nur den Vornamen des Autors ein-geben habe. Es würden alle Beiträge der Autoren, in deren Namen Arnold vorkommt,angezeigt.
2-6496.book Page 55 Tuesday, November 19, 2002 3:47 PM
56
Beehren Sie uns bald wieder
Abbildung 3.7: Die Suchfunktion
3.3 AdministrationEs kann vorkommen, dass ein Surfer irgendwelchen Müll in das Gästebuch schreibt.Als normaler Benutzer können Sie nichts dagegen unternehmen und auch den Eintragnicht löschen. Aber es gibt einen speziellen Benutzer: den Verwalter des Gästebuchs.Er wird Admin-User, Administrator oder einfach nur Admin genannt. Um sich alsAdmin einzuloggen, klicken Sie auf den Link Admin am Anfang der Seite. Loggen Siesich mit dem Usernamen admin und Passwort admin ein und sie gelangen zur Admi-nistrationsseite (Abbildung 3.8).
Abbildung 3.8:Die Administrationsseite
2-6496.book Page 56 Tuesday, November 19, 2002 3:47 PM
Administration
57
Auf der Administrationsseite bekommen Sie alle Einträge des Gästebuchs in verkürzterForm übersichtlich angezeigt. Unter der Spalte Edit finden Sie drei Schaltflächen:
■ die erste zum Bearbeiten des Eintrags
■ die zweite zum Löschen
■ und die dritte, um den Beitrag als wichtigen Eintrag (VIP – very important person)zu markieren.
Abbildung 3.9: Eintrag bearbeiten
VORS
ICHT
!Sie sollten das Passwort des Admin-Users verändern, da jeder, derpgb kennt, ebenfalls die Standardeinstellung (User: admin, Passwort:admin) kennt und so in Ihrem Gästebuch Änderungen vornehmenkann. Um das Benutzerkonto zu verändern, klicken Sie auf den LinkAdmin in der oberen Menüzeile. Geben Sie auf der dann angezeigtenSeite ein neues Passwort an und klicken Sie auf die Schaltfläche Bear-beiten. Merken Sie sich das neue Passwort gut!
2-6496.book Page 57 Tuesday, November 19, 2002 3:47 PM
58
Beehren Sie uns bald wieder
Sie haben somit die Kontrolle über den Inhalt Ihres Gästebuchs. In Abbildung 3.9 wirddie Seite dargestellt, die erscheint, wenn Sie die Bearbeiten-Schaltfläche anklicken. Siekönnen alles verändern, sogar den Autornamen.
3.4 Anpassen von Layout und DesignDamit sich das Gästebuch nahtlos in Ihre eigene Homepage einfügt, sollte es vom De-sign an Ihre Homepage angepasst werden. Dies ist zum Glück möglich. Sie müssen al-lerdings Kenntnisse in HTML und optimalerweise auch in CSS (Cascading StyleSheets) mitbringen, um diese Möglichkeit effizient nutzen zu können. Aber vielleichthelfen Ihnen auch ohne Vorkenntnisse die nachfolgenden Beispiele weiter, die Sie inleicht abgewandelter Form verwenden können.
Zunächst möchte ich Ihnen zeigen, wie Sie den Seitenkopf anpassen können, sodasseine individuelle Überschrift erscheint. Außerdem werden wir die etwas lange Begrü-ßung „Willkommen in meinem Gästebuch, ihr könnt hier ....“ am Beginn der Seiteetwas kürzen.
Die Datei, die dazu geändert werden muss, heißt kopf.php und befindet sich im pgb-Installationsverzeichnis.
Gehen Sie folgendermaßen vor:
1 Öffnen Sie die Datei kopf.php in einem Texteditor wie Textpad.
2 Fügen Sie in Zeile 9 folgenden HTML-Code ein:
<h2>Peters tolle Homepage</h2>
3 Ersetzen Sie die lange Begrüßungsmeldung in Zeile 14 durch eine kürzere (Abbildung 3.10).
4 Speichern Sie die Änderungen.
2-6496.book Page 58 Tuesday, November 19, 2002 3:47 PM
Anpassen von Layout und Design
59
Abbildung 3.10: Änderungen in kopf.php
Die Änderungen bewirken ein Erscheinungsbild wie in Abbildung 3.11.
Abbildung 3.11: Veränderter Seitenkopf
Der nächste wichtige Faktor sind natürlich die Farben. Vielleicht ist Ihre Homepagezufällig in Blautönen gestaltet, sodass das Gästebuch passt. Aber das ist eher unwahr-scheinlich. Schauen wir uns also die Möglichkeit an, wie Sie die Farben, die in demGästebuch benutzt werden, definieren können.
2-6496.book Page 59 Tuesday, November 19, 2002 3:47 PM
60
Beehren Sie uns bald wieder
Die dazu notwendige Datei lautet default.css und ist das Standard-Stylesheet, das füralle Seiten des Gästebuchs verwendet wird. Die Datei befindet sich ebenfalls im pgb-Installationsverzeichnis.
Wenn Sie CSS nicht kennen, ist das nicht tragisch. Schauen Sie einfach nach Einträgenmit dem Namen color oder background-color und spielen Sie ein bisschen mit verschie-denen Farbwerten. Eine Liste von Farbwerten finden Sie im Anhang.
Ich möchte Ihnen beispielhaft zeigen, wie Sie die Schrift- und Hintergrundfarbe derkompletten Seite sowie die Farben für diverse Tabellenelemente ändern können.
1 Öffnen Sie die Datei default.css in einem Texteditor.
2 Als Erstes wollen wir die Schriftfarbe auf der Seite (nicht in der Tabelle) von zur-zeit Schwarz in Weiß ändern. Ersetzen Sie dazu den Wert von color in Zeile 13 durch #FFFFFF.
3 Da weiße Schrift auf weißem Hintergrund nicht sonderlich gut zu lesen ist, wol-len wir die Farbe des Seitenhintergrunds ändern, und zwar von Weiß auf Schwarz. Ersetzen Sie dafür den Wert von background-color in Zeile 16 durch #000000.
4 Um den Hintergrund der Tabellenzeilen, die als Überschrift dienen, anders ein-zufärben, müssen Sie den Wert von background-color in Zeile 55 ändern, zum Beispiel in #AAAAAA für Grau.
5 Als Letztes ändern Sie die Hintergrundfarbe für die Gästebucheinträge. Ersetzen Sie hierfür den Wert von background-color in Zeile 68 und 69 durch #CCCCCC bzw. #FFFFFF.
6 Speichern Sie die Datei und schauen Sie sich das Ergebnis im Browser an: http://localhost/gb/ (Abbildung 3.12). Zugegeben, wir gewinnen damit keinen Design-Wettbewerb, aber mit etwas Geduld kann man die Farbkombinationen so wäh-len, dass sie zum Gesamt-Farbschema Ihrer Homepage passen.
PROF
ITIP
P
#FFFFFF ist die hexadezimale Codierung für die Farbe Weiß. Viel-leicht ist Ihnen diese Schreibweise schon aus HTML bekannt. ImAnhang finden Sie eine Farbtabelle mit entprechenden Werten.
2-6496.book Page 60 Tuesday, November 19, 2002 3:47 PM
Anpassen von Layout und Design
61
Abbildung 3.12: Veränderte Farben
Eine weitere Scriptdatei, die den Seitenfuß darstellt, nennt sich fuss.php. Auch hierkönnen Sie wie bei der Kopfdatei eigenen HTML-Code unterbringen, um Text oderandere HTML-Elemente einzubinden, die am Ende jeder Seite des Gästebuchs ange-zeigt werden sollen.
In Abbildung 3.13 sehen Sie den HTML-Code, den Sie hinzufügen müssten, um einenLink zu einer E-Mail-Adresse im Fuß jeder Seite anzeigen zu lassen.
Abbildung 3.13: Veränderte Fußdatei
2-6496.book Page 61 Tuesday, November 19, 2002 3:47 PM
62
Beehren Sie uns bald wieder
Ergebnis dieses WorkshopsIn diesem Workshop haben Sie das kostenlose Skript pgb kennen gelernt, mit dessenHilfe Sie ein Gästebuch in Ihre Homepage integrieren können.
2-6496.book Page 62 Tuesday, November 19, 2002 3:47 PM
Workshop 4
Was mache ich mit all den Daten?Formulardaten prüfen, weitersenden und in der Datenbank ablegen
Eine klassische Anwendung von Scripts seit den Anfängen mit CGI/Perl ist das Weiter-verarbeiten von Formulardaten mit so genannten FormProcessors. Hierfür gibt es eineganze Reihe fertiger anpassbarer Scripts auf PHP-Basis, von denen Sie in diesem Kapiteleinen exzellenten Vertreter dieser Gattung vorgestellt bekommen. Das Script nennt sichPhorm und ist natürlich wieder kostenlos – der Autor bittet aber um eine freiwillige Re-gistrierung für 10 Dollar. Also, wenn Ihnen das Script gefällt und Sie in Geberlaune sind ...
Ergebnis dieses WorkshopsIn diesem Workshop werden Sie ein Beispielformular entwerfen, dessen Daten Sie dannper Email zugeschickt bekommen. Sie werden ausserdem die Daten in eine MySQL-Datenbank ablegen.
2-6496.book Page 63 Tuesday, November 19, 2002 3:47 PM
64
Was mache ich mit all den Daten?
4.1 Was bietet Phorm?Stellen Sie sich vor, Sie haben ein Feedback-Formular auf Ihrer Homepage, mit demSurfer Ihnen mitteilen können, wie ihnen die Website gefällt. Ein Benutzer füllt dasFormular aus und lobt die Seiten, klickt auf Abschicken und ... was soll mit den Datenpassieren, die der Benutzer eingegeben hat? Vielleicht sollen Sie an Ihre E-Mail-Adressegeschickt werden oder in einer Datenbank gespeichert werden. Genau dies ist mitPhorm möglich. Zusätzlich gibt es folgende Möglichkeiten:
■ Versenden von Daten an mehrere E-Mail-Adressen
■ Überprüfen von Formulardaten auf Richtigkeit und gegebenenfalls Ablehnung
■ Anzeigen einer Bestätigungsseite mit den erhaltenen Daten
■ Versenden einer Bestätigungs-E-Mail an den Sender
Dies alles wäre nur mit viel Programmieraufwand zu realisieren, aber zum Glück gibtes Phorm!
4.2 Vorbereiten des TestsystemsDamit PHP E-Mails verschicken kann, muss es entsprechend konfiguriert sein. AufIhrem Webspace sollte das der Fall sein, ansonsten beschweren Sie sich!
Auf unserem Testsystem, für die meisten Leser PHPTriad unter Windows, müssen SiePHP selbst konfigurieren. Aber das ist nicht schwierig, denn Sie brauchen als Informationlediglich den Namen ihres SMTP-Servers. Der SMTP-Server sorgt dafür, dass IhreE-Mails verschickt werden. Für T-Online-Kunden zum Beispiel heißt er smtp.t-online.de.Sie können den Namen herausfinden, indem Sie in Ihrem E-Mail-Client-Programm (wieOutlook) in die Eigenschaften ihres E-Mail-Kontos schauen. Im Feld Postausgang(SMTP) auf der Registerkarte Server finden Sie die gesuchte Information (Abbildung 4.1).
2-6496.book Page 64 Tuesday, November 19, 2002 3:47 PM
Vorbereiten des Testsystems
65
Abbildung 4.1: E-Mail-Serverinformationen
Gewappnet mit dem Namen des SMTP-Servers können Sie nun PHP konfigurieren.Öffnen Sie dazu die PHP-Konfigurationsdatei php.ini im Verzeichnis c:\apache\php.In Zeile 476 können Sie den Servernamen eintragen und in Zeile 479 die Absender-E-Mail-Adresse (Abbildung 4.2).
Abbildung 4.2: E-Mail-Einstellungen von PHP
Speichern Sie die Datei. Ab sofort kann PHP auch E-Mails verschicken!
2-6496.book Page 65 Tuesday, November 19, 2002 3:47 PM
66
Was mache ich mit all den Daten?
4.3 Installation von Phorm
Die Installation gestaltet sich unkompliziert:
1 Legen Sie ein neues Unterverzeichnis mit dem Namen Phorm im Dokumenten-verzeichnis Ihres Webservers an. Unter Windows mit PHPTriad ist es das Ver-zeichnis c:\apache\htdocs, bei Linux meist /usr/local/httpd/htdocs.
2 Entpacken Sie das Archiv phorm.zip von der CD-ROM in den neu erstellten Ordner.
3 Öffnen Sie die Datei phormconfig.php3 in einem Texteditor und tragen Sie fol-gende Informationen ein (Abbildung 4.3):
■ Die E-Mail-Adresse, an die Fehlermeldungen von Phorm geschickt werden:$PHORM_ALERTTO = "[email protected]";
■ Die E-Mail-Adresse, an die die Formulardaten geschickt werden soll:$PHORM_TO = "[email protected]";
■ Den Inhalt der Betreffzeile der gesendeten E-Mails:$PHORM_SUBJECT = "Formulardaten";
Abbildung 4.3: Die Konfigurationsdatei
CD-R
OMAU
F DE
R
Phorm finden Sie als Zip-Archiv auf der CD-ROM im Verzeichnis\software\Phorm.
Im Internet finden Sie die aktuelle Version unter http://www.phorm.com.
2-6496.book Page 66 Tuesday, November 19, 2002 3:47 PM
Ein einfaches Beispiel
67
4 Speichern Sie die Datei.
Für eine ganz einfache Formularbehandlung reicht das schon aus, wie Sie im nächstenUnterkapitel anhand eines Beispiels sehen werden. Später werden wir allerdings nochviel mehr machen, es wird also spannend!
4.4 Ein einfaches BeispielNun wollen wir Phorm darauf testen, ob es denn hält, was es verspricht. Dazu müssenwir eine kleine HTML-Testdatei mit einem Formular anlegen (Abbildung 4.4).
Abbildung 4.4: Erstes Testformular
Der Quellcode dazu sieht folgendermaßen aus:
<html> <form method="post" action="/phorm/phorm.php"> Vorname <input type="text" name="Vorname"><br> Alter <input type="text" name="Alter"><br> <input type="submit" value="Los!"> </form></html>
Sie sehen, dass ich im action-Attribut des Formulars die URL des Phorm-Scripts an-gegeben habe. Probieren Sie es aus! Legen Sie eine Datei test.html im Dokumentenver-zeichnis des Webservers (c:\apache\htdocs) an. Rufen Sie die Datei in einem Browserauf, füllen Sie das Formular aus und schicken Sie es ab. Wenn alles funktioniert, be-kommen Sie eine E-Mail mit den Angaben zu Vorname und Alter. Außerdem bekom-men Sie eine Bestätigungsseite angezeigt (Abbildung 4.5).
2-6496.book Page 67 Tuesday, November 19, 2002 3:47 PM
68
Was mache ich mit all den Daten?
Abbildung 4.5: Die Bestätigungsseite
4.5 Alles O.k.?So weit, so gut. Die Grundfunktionalität ist gegeben, aber damit geben wir uns natür-lich nicht zufrieden. Phorm kann schließlich viel mehr!
Als Nächstes wollen wir die übermittelten Formulardaten überprüfen. Es macht beiunserem Beispiel keinen Sinn, ein Alter unter 3 und über 120 einzugeben (es sei denn,Sie sind ein Wunderkind oder ein indischer Yogi). Formulare mit einem unsinnigenAlter sollen nicht verschickt werden. Wir möchten aber einem Benutzer, der ein sol-ches unsinniges Alter eingibt, die Möglichkeit geben, seine Eingabe zu wiederholen.
Um das zu erreichen, müssen wir zunächst die Regeln definieren, wann Formulareinga-ben ungültig sind. Legen Sie dazu im phorm-Verzeichnis eine Datei namens regeln.txtmit folgendem Inhalt an :
FILESfehler.htmlRULESRANGE 3 120 Alter 1Das eingebene Alter kauf ich Ihnen nicht ab!###
Diese Datei besteht aus zwei Sektionen: FILES und RULES. Unter FILES gibt man dieDatei an, die dem Benutzer bei einem Fehler angezeigt wird. Unter RULES kann manRegelsätze angeben, die einem starren Aufbau folgen müssen:
Kriterium <TAB-Taste> Formularfeld <TAB-Taste> Level
In unserem Fall lautet das Kriterium: RANGE 3 120
2-6496.book Page 68 Tuesday, November 19, 2002 3:47 PM
Alles O.k.?
69
Dies bedeutet, dass der Inhalt des Formularfelds Alter im Bereich zwischen 3 und 120liegen muss.
Jeder Regelsatz – einer pro Formularfeld, das überprüft werden soll – wird mit denZeichen ### abgeschlossen.
O.k., die Regeln kennen wir nun. Jetzt müssen wir Phorm nur noch mitteilen, dass esdie Regeln auch anwenden soll.
Öffnen Sie dazu die Konfigurationsdatei phormconfig.php3 und fügen Sie eine Zeile zuden Variablendefinitionen hinzu:
$PHORM_VALDEFS = "regeln.txt";
Das war’s, Sie können die Datei speichern und wieder schließen.
VORS
ICHT
! Der Regelsatz muss genau dem beschriebenen Aufbau folgen, sonstfunktioniert es nicht. Achten Sie also bei unserem Beispiel darauf,dass Sie zwischen dem Wort RANGE, den Zahlen 3 und 120 jeweils einLeerzeichen getippt haben und zwischen 120, Alter und 1 die (ÿ)-Taste.
PROF
ITIP
P
Es gibt viele Regelkriterien in Phorm. Eine Liste möglicher Werte kön-nen Sie im Handbuch nachlesen (Datei docs.rtf im phorm-Verzeichnis).
Es folgt eine Auswahl mit kurzer Beschreibung:
REQ Das Feld darf nicht leer sein.
EMAIL Das Feld muss eine gültige E-Mail-Adresse beinhalten.
CCARD Das Feld muss eine gültige Kreditkartennummer beinhalten.
ALPHA Das Feld enthält nur Buchstaben.
NUMERIC Das Feld enthält nur Ziffern, Kommas oder Punkte.
RANGE Das Feld enthält einen spezifizierten Bereich von Zahlenoder Buchstaben.
GT Der Inhalt des Feldes ist größer als der spezifizierte Wert.
LT Der Inhalt des Feldes ist kleiner als der spezifizierte Wert.
EQ Der Inhalt des Feldes ist gleich dem spezifizierten Wert.
NE Der Inhalt des Feldes ist ungleich dem spezifizierten Wert.
2-6496.book Page 69 Tuesday, November 19, 2002 3:47 PM
70
Was mache ich mit all den Daten?
Eines fehlt noch: die Datei fehler.html, die wir in den Regeln angegeben haben und diedem Surfer im Falle einer regelwidrigen Eingabe angezeigt wird.
Legen Sie also die Datei mit folgendem Inhalt im phorm-Verzeichnis an:
<html> Ein Fehler ist aufgetreten:<br> <!-- Phorm Messages --> <p> <a href="/test.html">zum Formular</a></html>
Interessant ist hierbei die Zeile <!--Phorm Messages -->, die bewirkt, dass an dieserStelle die Fehlermeldungen ausgegeben werden, die in der Regeldatei definiert wurden.In unserem Beispiel erscheint also bei einem ungültigen Alter die folgende Meldung:
Das eingebene Alter kauf ich Ihnen nicht ab!
Zeit zum Testen! Rufen Sie die Formulardatei test.html auf, geben Sie ein ungültigesAlter ein und klicken Sie auf Los!. Wenn alles gut geht, erhalten Sie eine Ausgabe wiein Abbildung 4.6.
Abbildung 4.6: Die Fehlerseite
4.6 Ab in die Datenbank!Als Nächstes wollen wir die Formulardaten an MySQL schicken, um Sie dort dauerhaftin einer Datenbank zu speichern. Dazu ist ein wenig Vorarbeit nötig, da wir auf derDatenbankseite zuerst die nötige Infrastruktur schaffen müssen: die Tabellen, in diedie Daten gespeichert werden sollen.
Im einfachsten Fall benötigen Sie eine Tabelle, deren Spalten die Formularfelder ange-ben. In unserem Fall wären das die Spalten Vorname und Alter. Da jede Tabelle einerrelationalen Datenbank einen so genannten Primärschlüssel benötigt, der einen Daten-satz eindeutig identifiziert, fügen wir noch eine Spalte Zeit hinzu. Hier soll gespeichertwerden, wann das Formular abgeschickt wurde.
2-6496.book Page 70 Tuesday, November 19, 2002 3:47 PM
Ab in die Datenbank!
71
Wenn man eine Datenbanktabelle modelliert, muss man sich überlegen, welcherDatentyp in einer Spalte vorkommt. Datentypen können sein: Zahlen, Zeichenketten,Binärdaten usw. Für unser Beispiel benötigen wir die Datentypen varchar (Zeichen-kette variabler Länge) für den Vornamen und Integer (Ganzzahl) für das Alter unddie Zeit. Die Zeit wollen wir in einem unter UNIX üblichen Format speichern: als dieAnzahl verstrichener Millisekunden seit dem 1.1.1970.
Lassen Sie uns nach diesen grundsätzlichen Überlegungen die Tabelle mittels phpMy-Admin anlegen:
1 Öffnen Sie einen Browser und gehen Sie zur Startseite von phpMyAdmin: http://localhost/phpmyadmin.
2 Erzeugen Sie für unsere Testzwecke eine neue Datenbank namens phorm (Abbildung 4.7).
Abbildung 4.7: Erzeugen einer neuen Datenbank
3 Scrollen Sie etwas nach unten zur Rubrik Neue Tabelle erstellen. Erzeugen Sie eine neue Tabelle mit dem Namen Formulardaten. Geben Sie als Feldanzahl 3 ein (Abbildung 4.8), da wir drei Spalten benötigen: Zeit, Vorname und Alter.
2-6496.book Page 71 Tuesday, November 19, 2002 3:47 PM
72
Was mache ich mit all den Daten?
Abbildung 4.8: Neue Tabelle erstellen
4 Klicken Sie auf OK, um mit der Definition der Spalten fortzufahren.
5 Füllen Sie die Felder wie in Definition der Tabellenspalte gezeigt. Kreuzen Sie für das Feld time noch das Kontrollkästchen Primärschlüssel an, das Sie nur dann auf dem Bildschirm sehen, wenn Sie etwas nach rechts scrollen.
Abbildung 4.9: Definition der Tabellenspalten
6 Klicken Sie auf die Schaltfläche Speichern.
2-6496.book Page 72 Tuesday, November 19, 2002 3:47 PM
Ab in die Datenbank!
73
Damit haben Sie die Grundlage geschaffen, um Daten ablegen zu können. Wie erkenntPhorm, in welche Datenbank, Tabelle und in welche Spalten bestimmte Formularfel-der gespeichert werden sollen?
Dies wird wieder über Variablen in der Konfigurationsdatei gesteuert. Öffnen Sie dieKonfigurationsdatei phormconfig.php3 und fügen Sie folgende Zeilen hinzu:
$DHost = "localhost";$DUser = "donald";$DPass = "donald";$DBase = "phorm";
Damit weiß Phorm, wie es sich mit MySQL verbinden soll und in welche Datenbankdie Daten gehören. Jetzt fehlt nur noch die Zuordnung zu den Spalten einer Tabelle.Fügen Sie dazu folgende Zeilen hinzu:
$PHORM_MYTABLE = "Formulardaten";$PHORM_MYVARS = "time=Zeit, name=Vorname, age=Alter";
Die erste Zeile ist klar: Hier wird die Tabelle angegeben. In der zweiten Zeile wird danndie Zuordnung von Spaltennamen zu Formularfeldern vorgenommen.
Speichern Sie die Konfigurationsdatei.
Um zu erfahren, wann das Formular abgeschickt wurde, müssen wir nun nur noch dieFormularseite test.html verändern.
Öffnen Sie die Datei und fügen Sie die folgenden Zeilen zwischen die form-Tags ein:
<input type="hidden" name="Zeit" value="<? echo time(); ?>">
Dieser Code bewirkt ein für den Benutzer unsichtbares Formularfeld, das als Wert dasResultat einer PHP-Anweisung hat: echo time();. Die Funktion time() liefert dieaktuelle Zeit zurück und echo schreibt diese in das HTML-Dokument.
Der Quellcode sieht dann insgesamt folgendermaßen aus:
<html> <form method="post" action="/phorm/phorm.php"> <input type="hidden" name="Zeit" value="<? echo time(); ?>" > Vorname <input type="text" name="Vorname"><br> Alter <input type="text" name="Alter"><br> <input type="submit" value="Los!"> </form></html>
2-6496.book Page 73 Tuesday, November 19, 2002 3:47 PM
74
Was mache ich mit all den Daten?
Speichern Sie die Datei unter dem Namen test.php. Die Endung .php muss angegebenwerden, damit die in der Datei enthaltene PHP-Anweisung ausgeführt wird.
Rufen Sie zum Testen die veränderte Datei im Browser auf, geben Sie Testwerte ein(diesmal ein korrektes Alter) und schicken Sie das Formular ab.
Um zu sehen, ob die Daten in der Datenbank gespeichert wurden, verwenden Sie wie-der phpMyAdmin. Wählen Sie aus der linken Menüleiste die Datenbank phorm ausund dann die Tabelle Formulardaten (Abbildung 4.10).
Abbildung 4.10: Auswählen der Tabelle
Klicken Sie jetzt auf den Link Anzeigen in der oberen Menüzeile, um die Einträge derTabelle sehen zu können (Abbildung 4.11). Sollte der Link nicht aktiv sein, hat irgend-etwas nicht funktioniert.
2-6496.book Page 74 Tuesday, November 19, 2002 3:47 PM
Anpassen der Bestätigungsseite
75
Abbildung 4.11: Tabellendaten anzeigen
4.7 Anpassen der BestätigungsseiteIhnen ist sicher schon störend aufgefallen, dass die Bestätigungsseite in Englisch ver-fasst ist. Das wollen wir ändern. Auch die Schmetterlingsgrafik passt uns nicht, wirwollen etwas Eigenes.
Kein Problem, Phorm bietet umfangreiche Anpassungsmöglichkeiten. Erstellen Sieeine neue Datei im phorm-Verzeichnis mit dem Namen bestaetigung.html und mit fol-gendem Inhalt:
<html>Vielen Dank, {{Vorname}}! <br>Wir haben deine Daten erhalten.</html>
PROF
ITIP
P Wenn etwas nicht funktioniert, schauen Sie sich Ihre E-Mails an. DieFehlermeldungen werden von Phorm an die E-Mail-Adresse geschickt,die Sie in phormconfig.php3 in der Variable $PHORM_ALERTTOangegeben haben.
2-6496.book Page 75 Tuesday, November 19, 2002 3:47 PM
76
Was mache ich mit all den Daten?
Der Ausdruck {{Vorname}} wird beim Anzeigen der Seite durch den Inhalt des For-mularfelds Vorname ersetzt, sodass der Benutzer eine individuelle Meldung bekommtund sich persönlich angesprochen fühlt.
Damit die neu erstellte Bestätigungsdatei auch benutzt wird, muss in der Konfigura-tionsdatei phormconfig.php3 eine neue Variable definiert werden:
$PHORM_ACK = "bestaetigung.html";
Nun können Sie die Funktionalität testen. Nach dem Abschicken des Formulars soll-ten Sie eine Seite wie in Abbildung 4.12 erhalten.
Abbildung 4.12: Die neue Bestätigungsseite
Damit haben Sie den Grundkurs in Phorm absolviert. Herzlichen Glückwunsch!
4.8 Der Umgang mit mehreren FormularenVielleicht ist es Ihnen schon aufgefallen: Wir haben bisher immer mit demselben ein-fachen Formular gearbeitet. Häufig gibt es auf einer Website aber mehrere Formulare.Jedes dieser Formulare kann eigene Regeln und unterschiedliche Bestätigungsseitenhaben.
Um dieses Problem zu lösen, kann man Unterverzeichnisse erstellen, die dann diejeweils notwendigen Dateien enthalten. Natürlich muss man Phorm vorgeben, fürwelches Formular es welche Unterverzeichnisse benutzen soll.
Das folgende Beispiel soll dies verdeutlichen:
Nehmen wir an, Sie möchten Ihrer Website ein weiteres Formular hinzufügen, daseinem Benutzer erlaubt, Informationsmaterial anzufordern (Abbildung 4.13).
2-6496.book Page 76 Tuesday, November 19, 2002 3:47 PM
Der Umgang mit mehreren Formularen
77
Abbildung 4.13: Formular zum Anfordern von Informationen
Gehen Sie folgendermaßen vor:
1 Erstellen Sie ein Unterverzeichnis info-formular in Ihrem phorm-Verzeichnis. Alle weiteren Dateien legen Sie in diesem Ordner an.
2 Erstellen Sie eine Datei formular.html mit folgendem Inhalt oder kopieren Sie sie von der CD-ROM:
<html> <h1>Informationsmaterial anfordern</h1> <form method="post" action="/phorm/phorm.php"> <input type="hidden" name="PHORM_NAME" value="infos" > <input type="hidden" name="PHORM_CONFIG" value="infoconfig.php3"
CD-R
OMAU
F DE
R Den Quellcode für alle Beispiele dieses Unterkapitels finden Sie aufder CD-ROM im Verzeichnis \software\phorm\Info-Formular.
2-6496.book Page 77 Tuesday, November 19, 2002 3:47 PM
78
Was mache ich mit all den Daten?
> <table> <tr><td>Vorname</td> <td><input type="text" name="Vorname"></td></tr> <tr><td>Name </td> <td><input type="text" name="Name"></td></tr> <tr><td>Strasse</td> <td><input type="text" name="Strasse"></td></tr> <tr><td>PLZ </td> <td><input type="text" name="PLZ"></td></tr> <tr><td>Ort </td> <td><input type="text" name="Ort"></td></tr> <tr><td>Email</td> <td><input type="text" name="E-Mail"></td></tr> </table> <input type="submit" value="anfordern"> </form></html>
Beachten Sie die Zeilen
<input type="hidden" name="PHORM_NAME" value="infos"><input type="hidden" name="PHORM_CONFIG" value="infoconfig.php3">
Damit wird dem Formular ein Name gegeben, der dann von Phorm ausgewertetwird, um in ein Verzeichnis zu wechseln, in dem dann die spezifizierte Konfigu-rationsdatei (im Beispiel infoconfig.php3) steht. Mithilfe der Konfigurationsdateiwerden dann die zugehörige Regeldatei, die Fehlerseite und die Bestätigungsseitefestgelegt.
3 Erstellen Sie eine Konfigurationsdatei infoconfig.php3 für dieses Formular. Der einzige Unterschied zu der schon bekannten phormconfig.php3 ist, dass die neue Datei in einem Unterverzeichnis steht. Der Inhalt ist aber nahezu identisch:
<?php $PHORM_BASE = "info-formular"; $PHORM_ALERTTO = "[email protected]"; // Ihre E-Mail-Adr. $PHORM_TO = "[email protected]"; // Ihre E-Mail-Adr. $PHORM_SUBJECT = "Bitte um Informationen"; $PHORM_TMPL = "email_tpl.txt"; $PHORM_ACK = "bestaetigung.html"; $PHORM_VALDEFS = "regeln.txt";?>
2-6496.book Page 78 Tuesday, November 19, 2002 3:47 PM
Der Umgang mit mehreren Formularen
79
Neu für Sie ist hier die Zeile $PHORM_TMPL = email_tpl.txt. Damit wird eineVorlage für die zu sendende E-Mail festgelegt. Wir werden die Vorlage in einemspäteren Schritt erstellen.
4 Als Nächstes erstellen wir die Regeldatei regeln.txt. Wir legen fest, dass der Name aus Buchstaben bestehen muss, PLZ eine Zahl ist und unter E-Mail eine gültige E-Mail-Adresse angegeben ist:
FILESfehler.htmlRULESALPHA Name 1Im Feld Namen sind nur Buchstaben erlaubt.###NUMERIC PLZ 1Als Postleitzahl sind nur Zahlen gültig.###EMAIL Email 1Sie haben eine ungültige E-Mail-Adresse eingegeben.###REQ Email 1Bitte geben Sie eine E-Mail-Adresse an.###
5 Kopieren Sie die Bestätigungsseite bestaetigung.html und die Fehlerseite fehler.html von der CD-ROM.
6 Es fehlt noch die Vorlagendatei für die E-Mail, der wir in Schritt 3 den Namen email_tpl.txt gegeben haben:
Sehr geehrte Damen und Herren,
bitte schicken Sie mir Informationsmaterial.
Name: {{Name}}Straße: {{Straße}}PLZ: {{PLZ}}Ort: {{Ort}}
Für Rückfragen können Sie mich unter folgender E-Mail-Adresse erreichen:{{E-Mail}}
7 Als Letztes müssen wir Phorm noch mitteilen, dass es für dieses Formular in ein anderes Verzeichnis wechseln soll. Dazu verändern wir eine Datei namens phormbase.php3, die im phorm-Verzeichnis zu finden ist. Öffnen Sie die Datei in einem Editor und fügen Sie folgende Zeile hinzu:
2-6496.book Page 79 Tuesday, November 19, 2002 3:47 PM
80
Was mache ich mit all den Daten?
infos info-formular
Achten Sie darauf, dass Sie als Trennung zwischen beiden Wörtern die (ÿ)-Tasteverwenden.
Ergebnis dieses WorkshopsDas war viel, aber es hat sich gelohnt !
Sie haben in diesem Workshop ein Skript namens Phorm kennen gelernt, dass Formu-lardaten entgegennimmt und weiterverarbeitet. Damit können Sie sich Daten perEmail zuschicken und sogar in eine Datenbank schreiben lassen.
Geben Sie Testdaten in das Formular ein (Abbildung 4.14).
Abbildung 4.14: Formular mit Testdaten
PROF
ITIP
P
Phorm liest trotzdem noch die globale Konfigurationsdatei phormcon-fig.php3 ein. Da wir dort festgelegt haben, dass Formulardaten in dieMySQL-Datenbank geschrieben werden sollen, versucht es Phormauch mit dem Info-Formular. Das kann aber nicht funktionieren, da esvollkommen andere Felder benutzt. Um eine Fehler-E-Mail zu umge-hen, löschen Sie die Datenbankkonfiguration aus phormconfig.php3.Wenn Sie die Daten des Info-Formulars in die Datenbank schreibenwollen, müssen Sie entsprechende Variablen in der Datei infocon-fig.php3 anlegen.
2-6496.book Page 80 Tuesday, November 19, 2002 3:47 PM
Der Umgang mit mehreren Formularen
81
Klicken Sie auf die Schaltfläche anfordern, um das Formular abzuschicken. Sie sollteneine E-Mail wie in Abbildung 4.15 erhalten.
Abbildung 4.15: Die E-Mail
2-6496.book Page 81 Tuesday, November 19, 2002 3:47 PM
2-6496.book Page 82 Tuesday, November 19, 2002 3:47 PM
Workshop 5
Jetzt wird es bunt!Wie Sie Grafiken dynamisch erzeugen können
Was wäre eine Webseite heutzutage ohne Bilder? Langweilig! Daher werden fast immerGrafiken und Fotos eingebaut. Diese sind aber meist schon vorher erstellt worden und lie-gen als Gif- oder Jpeg-Dateien auf der Festplatte. Es geht aber auch anders: Grafiken lassensich „on the fly“ – also während ein PHP-Skript abläuft so nebenbei – erzeugen. Das istinsbesondere dann sinnvoll, wenn sich das Aussehen der Grafik im Laufe der Zeit oder inAbhängigkeit von Benutzerdaten ändert. Alle Arten von Diagrammen fallen zum Beispielin diese Kategorie. Ein hervorragendes Tool hierfür ist JpGraph, dessen Funktionsvielfaltseinesgleichen sucht. Ich werde Ihnen in diesem Kapitel JpGraph näher bringen.
Ergebnis dieses WorkshopsIn diesem Workshop werden Sie Diagramme erstellen, die Sie dann in Ihre Homepageintegrieren können. Die Diagramme werden Sie dynamisch von JpGraph erzeugenlassen. So können Sie Daten, die Sie zum Beispiel in einer Datenbank abgelegt haben,ansprechend präsentieren.
2-6496.book Page 83 Tuesday, November 19, 2002 3:47 PM
84
Jetzt wird es bunt!
5.1 Die InstallationVor dem Vergnügen steht wie immer die Arbeit: die Installation des JpGraph-Pro-grammpakets und seine Konfiguration. Übrigens: JpGraph ist für nicht-kommerzielleZwecke kostenlos zu haben.
Entpacken Sie die Archivdatei in den Dokumentenordner Ihres Webservers. Wenn SiePHPTriad benutzen, ist das c:\apache\htdocs.
Prinzipiell ist JpGraph nun bereits einsatzbereit. Bei einer Standardinstallation vonPHPTriad muss allerdings noch ein PHP-Modul eingebunden werden, dass Befehlezum Erstellen und Manipulieren von Bildern ermöglicht: das so genannte GD-Modul.Gehen Sie dazu folgendermaßen vor:
1 Öffnen Sie in einem Texteditor die PHP-Konfigurationsdatei php.ini im Ver-zeichnis c:\apache\php.
2 Suchen Sie den Abschnitt Windows Extensions (Zeile 414, siehe Abbildung 5.1). Darunter sind alle verfügbaren Module von PHP aufgelistet. Beachten Sie das Semikolon am Anfang der Zeile. Es bedeutet, dass das Modul inaktiv ist, also nicht benutzt wird. Entfernen Sie das Semikolon vor dem Eintrag extension=php_gd.dll, um die GD-Funktionsbibliothek einzubinden.
CD-R
OMAU
F DE
R
Die Archivdatei jpgraph1.8.tar.gz finden Sie auf der CD-ROM im Ver-zeichnis \software\JpGraph.
Im Internet finden Sie eine aktuelle Version unter http://www.aditus.nu/jpgraph/.
VORS
ICHT
!
Wenn Sie nicht mit PHPTriad arbeiten, müssen Sie gegebenenfallsnoch den Pfad konfigurieren, in dem Ihre Extension-Dateien zu fin-den sind. Auch das machen Sie in der Datei php.ini im AbschnittExtensions.
2-6496.book Page 84 Tuesday, November 19, 2002 3:47 PM
Die Installation
85
Abbildung 5.1: Ändern der PHP-Konfigurationsdatei
3 Speichern Sie die Datei. Beim nächsten Aufruf eines PHP-Scripts werden die neuen Einstellungen übernommen.
Damit Sie JpGraph optimal ausnutzen können, sollten Sie noch ein paar JpGraph-Parameter einstellen. Öffnen Sie dazu die Datei jpgraph.php im Unterverzeichnis srcder JpGraph-Installation.
Im Abschnitt Directories können Sie die Einträge an Ihre Gegebenheiten anpassen(Abbildung 5.2).
VORS
ICHT
!
Auf Ihrem Webspace können Sie in den meisten Fällen die PHP-Konfiguration nicht ändern. Fragen Sie also nach, ob die GD-Biblio-thek und TrueType-Fonts vorhanden sind.
2-6496.book Page 85 Tuesday, November 19, 2002 3:47 PM
86
Jetzt wird es bunt!
Abbildung 5.2: Anpassen von JpGraph
Jetzt sind wir so weit und können JpGraph in Aktion sehen!
Öffnen Sie einen Browser und wechseln Sie zur URL http://localhost/jpgraph-1.8/src/Examples/example0.php.
Wenn alles gut geht, sehen Sie ein Diagramm wie in Abbildung 5.3.
Abbildung 5.3: Ein Beispieldiagramm
2-6496.book Page 86 Tuesday, November 19, 2002 3:47 PM
Die Installation
87
Um einen Überblick über die vielfältigen Möglichkeiten von JpGraph zu bekommen,können sie die URL http://localhost/jpgraph-1.8/src/Examples/testsuit.php aufrufen(Abbildung 5.4). Das Laden der Seite dauert allerdings sehr lange, da über 200 Dia-gramme erzeugt werden.
Abbildung 5.4: Die JpGraph-Testseite
Jetzt brennen sie bestimmt schon darauf, selbst Grafiken erstellen zu lassen. Dannlesen Sie schnell weiter!
2-6496.book Page 87 Tuesday, November 19, 2002 3:47 PM
88
Jetzt wird es bunt!
5.2 Do it yourselfEine schlechte Nachricht vorab: Um Grafiken erzeugen zu lassen, müssen Sie pro-grammieren. Aber keine Angst, ich zeige Ihnen genau, was Sie machen müssen. WennSie mehr Hintergrundinformationen brauchen, lesen Sie im Anhang den Abschnittüber PHP und seine Programmierkonzepte.
Wir fangen ganz einfach an, mit einem Code-Gerüst, das für alle folgenden Beispielegültig sein wird. Erstellen Sie die Datei mit dem Namen beispiel1.php im JpGraph-Installationsverzeichnis (c:\apache\htdocs\jpgraph-1.8).
1 Als Erstes muss die JpGraph-Grundfunktionalität eingebunden werden:
include ("src/jpgraph.php");
2 Als Nächstes muss man sich entscheiden, welche Art von Diagramm oder Grafik man erzeugen möchte. Daraus ergibt sich nämlich das JpGraph-Modul, dass ein-gebunden werden muss. Wir wollen eine Line-Chart erzeugen, daher lautet der Befehl:
include ("src/jpgraph_line.php");
3 Die Daten, die dargestellt werden sollen (Punkte auf der y-Achse) geben wir in einem so genannten Array an:
$ydata = array(11,3,8,12,5,1,9,13,5,7);
4 Jetzt erzeugen wir die zunächst noch leere Grafik in der Größe 350 x 250 Pixel:
$graph = new Graph(350,250,"auto");$graph->SetScale("textlin");
PROF
ITIP
P
Unsere Beispiele sollen im JpGraph-Installationsverzeichnis liegen,daher genügt der relative Pfad zu der jpgraph-Datei. Sollten sich IhreDateien an anderer Stelle befinden, müssen sie den Pfad entspre-chend anpassen.
Wenn Sie Ihre Dateien zum Beispiel im Verzeichnis c:\apache\htdocs\test anlegen, müsste die obige Zeile lauten:
include ("c:/apache/htdocs/jpgraph-1.8/src/jpgraph.php");
oder wieder relativ:
include ("../jpgraph-1.8/src/jpgraph.php");
2-6496.book Page 88 Tuesday, November 19, 2002 3:47 PM
Do it yourself
89
5 In diese leere Grafik soll nun ein Liniendiagramm eingefügt werden. Dazu erzeu-gen wir ein Liniendiagramm mit der folgenden Anweisung:
$plot=new LinePlot($ydata);
Beachten Sie, dass der Befehl als Parameter unser Datenarray $ydata bekommt.
6 Jetzt fügen wir das Liniendiagramm der Grafik hinzu:
$graph->Add($plot);
7 Schließlich lassen wir die fertige Grafik zeichnen:
$graph->Stroke();
Das war’s. Und hier noch einmal das komplette Listing:
<?phpinclude ("src/jpgraph.php");include ("src/jpgraph_line.php");
$ydata = array(5,3,8,12,13,7);
$graph = new Graph(350,250,"auto");$graph->SetScale("textlin");
$plot=new LinePlot($ydata);
$graph->Add($plot);
$graph->Stroke();?>
CD-R
OMAU
F DE
R Dieses erste Beispiel finden Sie auf der CD-ROM im Verzeichnis \soft-ware\JpGraph. Es trägt den Namen beispiel1.php. Die nächsten dreiBeispiele finden Sie ebenfalls dort.
2-6496.book Page 89 Tuesday, November 19, 2002 3:47 PM
90
Jetzt wird es bunt!
Wechseln Sie im Browser zur URL http://localhost/jpgraph-1.8/beispiel1.php, um dasErgebnis zu sehen (Abbildung 5.5).
Abbildung 5.5: Ergebnis des ersten Beispielcodes
Die Art des Diagramms lässt sich in einfacher Weise ändern. Sie müssen lediglich dasentsprechende Modul einbinden und eine Programmzeile ändern:
Schreiben Sie statt
include ("src/jpgraph_line.php");
die Anweisung
include ("src/jpgraph_bar.php");
um das Balkendiagramm-Modul einzubinden.
Ändern sie die Zeile
$plot=new LinePlot($ydata);
um in:
$plot=new BarPlot($ydata);
2-6496.book Page 90 Tuesday, November 19, 2002 3:47 PM
Do it yourself
91
Nun erhalten Sie statt des Liniendiagramms ein Balkendiagramm (Abbildung 5.6).
Abbildung 5.6: Balkendiagramm
Wenn Sie lieber ein Tortendiagrammanzeigen lassen möchten, ändern Sie die include-Anweisung ab in:
include ("src/jpgraph_pie.php");
Die Code-Zeile ändern Sie ebenfalls ab in:
$plot=new PiePlot($ydata);
Ersetzen Sie jetzt noch die Zeile
$graph = new Graph(350,250,"auto");
durch
$graph = new PieGraph(350,250,"auto");
und schon erhalten Sie einen leckeren Kuchen (Abbildung 5.7).
2-6496.book Page 91 Tuesday, November 19, 2002 3:47 PM
92
Jetzt wird es bunt!
Abbildung 5.7: Tortendiagramm
Als letztes Beispiel möchte ich Ihnen noch eine ausgefallene Diagrammart zeigen: dasRadardiagramm. Das Listing sieht folgendermaßen aus:
<?phpinclude ("src/jpgraph.php");include ("src/jpgraph_radar.php");
$ydata = array(5,3,8,12,13,7);
$graph = new RadarGraph(350,250,"auto");$graph->SetScale("lin");
$plot=new RadarPlot($ydata);
$graph->Add($plot);
$graph->Stroke();?>
2-6496.book Page 92 Tuesday, November 19, 2002 3:47 PM
Weitere Extras
93
Das Ergebnis sehen Sie in Abbildung 5.8.
Abbildung 5.8: Radardiagramm
5.3 Weitere ExtrasDas war natürlich noch lange nicht alles, was JpGraph kann. Insbesondere die kleinenDetails machen aus einem langweiligen Diagramm ein optisch ansprechendes, wie Siein Abbildung 5.9 sehen können.
Abbildung 5.9: Balkendiagramm
2-6496.book Page 93 Tuesday, November 19, 2002 3:47 PM
94
Jetzt wird es bunt!
Hier hat sich im Vergleich zu Beispiel 2 aus dem letzten Abschnitt viel geändert. DieX-Achse ist beschriftet, es gibt eine Überschrift, die Balken sind breiter und habeneinen Farbverlauf.
Der dazugehörige Code lautet:
<?phpinclude ("src/jpgraph.php");include ("src/jpgraph_bar.php");
$datay=array(13,25,21,35,31,6);$datax=array("Jan","Feb","Mär","Apr","Mai","Jun");
$graph = new Graph(400,200,"auto");$graph->SetScale("textlin");$graph->img->SetMargin(60,20,30,50);$graph->SetMarginColor("silver");$graph->SetShadow();
$graph->title->Set("Balkendiagramm");$graph->title->SetColor("darkred");
$graph->xaxis->SetTickLabels($datax);
$bplot = new BarPlot($datay);$bplot->SetWidth(0.8);
$bplot->SetFillGradient("navy","lightblue",GRAD_MIDVER);
$graph->Add($bplot);
$graph->Stroke();?>
Was passiert hier?
Zunächst kommen wieder die Ihnen schon bekannten include-Anweisungen:
include ("src/jpgraph.php");include ("src/jpgraph_bar.php");
CD-R
OMAU
F DE
R Das Beispiel finden Sie auf der CD-ROM im Verzeichnis \software\JpGraph. Die Datei lautet extral.php.
2-6496.book Page 94 Tuesday, November 19, 2002 3:47 PM
Weitere Extras
95
Dann werden Datenpunkte für die Y-Achse festgelegt:
$datay=array(13,25,21,35,31,6);
Neu ist, dass für diese Datenpunkte zugehörige Beschriftungen für die X-Achse defi-niert werden:
$datax=array("Jan","Feb","Mär","Apr","Mai","Jun");
Als Nächstes wird eine leere Grafik der Größe 400 x 200 Pixel erzeugt:
$graph = new Graph(400,200,"auto");
Die folgende Anweisung bewirkt, dass die X-Achse eine Textskala erhält und die Y-Achse eine lineare Zahlenskala:
$graph->SetScale("textlin");
Nun wird der Rahmen festgelegt, also der Bereich zwischen Grafikrand und Dia-grammrand. Die Reihenfolge der Parameter ist: linker Rand, rechter Rand, obererRand, unterer Rand.
$graph->img->SetMargin(60,20,30,50);
Die Randfarbe wird auf Silber eingestellt:
$graph->SetMarginColor("silver");
Die nächste Anweisung fügt der Grafik einen Schatten zu, sodass es so wirkt, als ob sieein wenig oberhalb des Untergrunds schweben würde:
$graph->SetShadow();
Jetzt wird die Überschrift und ihre Farbe definiert:
$graph->title->Set("Balkendiagramm");$graph->title->SetColor("darkred");
Damit die X-Achse Ihre Beschriftung erhält, wird folgender Code verwendet:
$graph->xaxis->SetTickLabels($datax);
Die nächste Anweisung kennen Sie bereits aus den einfachen Beispielen. Sie dient da-zu, ein Balkendiagramm zu erzeugen:
$bplot = new BarPlot($datay);
PROF
ITIP
P
Das "auto" bewirkt, dass das Bildformat automatisch gewählt wird.Wenn möglich wird png benutzt, ansonsten gif oder jpeg.
2-6496.book Page 95 Tuesday, November 19, 2002 3:47 PM
96
Jetzt wird es bunt!
Die Dicke der Balken lässt sich im Bereich von 0–1 festlegen:
$bplot->SetWidth(0.8);
Jetzt fehlt nur noch der Farbverlauf:
$bplot->SetFillGradient("navy","lightblue",GRAD_MIDVER);
Diese etwas komplexere Anweisung setzt die äußere Farbe der Balken auf Navy-Blau(navy) und die innere auf Hellblau (lightblue). Die Zwischentöne werden dann er-rechnet. Der letzte Parameter (GRAD_MIDVER) setzt die Art des Farbverlaufs – in unse-rem Fall von außen zur Mitte hin. Probieren Sie statt GRAD_MIDVER auch einmal denWert GRAD_HOR oder GRAD_VER.
Die nächsten beiden Anweisungen fügen das Diagramm der Grafik hinzu und zeich-nen die Grafik.
5.4 MySQL als DatenquelleNehmen wir an, sie wollten folgende Tabelle mit den Daten einer Bundestagswahl alsTortendiagramm darstellen (Abbildung 5.10):
SPD 38,5 %
CDU 38,5%
Grüne 9 %
FDP 7,5 %
PDS 4 %
Sonstige 3,5 %
Abbildung 5.10: Wahlergebnisse als Tortendiagramm
2-6496.book Page 96 Tuesday, November 19, 2002 3:47 PM
MySQL als Datenquelle
97
Dazu benötigen wir folgenden Code:
<?phpinclude ("src/jpgraph.php");include ("src/jpgraph_pie.php");include ("src/jpgraph_pie3d.php");
$data = array(39, 39, 9, 7, 4, 4);$legende = array("CDU", "SPD", "Grüne", "FDP", "PDS", Sonst.");$farben = array("black", "red", "green", "yellow", lightred", "lightblue");
$graph = new PieGraph(400,200,"auto");$graph->SetShadow();
$graph->title->Set("Wahlergebnisse");
$p1 = new PiePlot3D($data);$p1->SetAngle(40);$p1->SetSize(0.5);$p1->SetCenter(0.45);$p1->SetLegends($legende);$p1->SetSliceColors($farben);
$graph->Add($p1);$graph->Stroke();?>
Nun wäre es doch sehr praktisch, wenn Sie die Datenwerte aus einer Tabelle in derMySQL-Datenbank lesen und daraus das Diagramm erzeugen könnten. Kein Prob-lem, ich zeige Ihnen wie das geht.
Dazu legen wir zunächst die Tabelle in der MySQL-Datenbank an.
CD-R
OMAU
F DE
R Das Beispiel finden Sie auf der CD-ROM im Verzeichnis \software\JpGraph. Die Datei lautet wah1l.php.
2-6496.book Page 97 Tuesday, November 19, 2002 3:47 PM
98
Jetzt wird es bunt!
1 Wechseln Sie im Browser auf die MySQL-Administrationsseite (http://localhost/phpmyadmin).
2 Schreiben Sie in das Feld Neue Datenbank erzeugen den Namen wahl und klicken Sie auf Erzeugen.
3 Scrollen Sie zum Bereich Neue Tabelle erstellen und geben Sie als Namen ergebnisse und als Anzahl Felder 2 ein (Abbildung 5.11).
Abbildung 5.11: Neue Tabelle erzeugen
4 Füllen Sie die Felder wie in Abbildung 5.12 gezeigt und klicken Sie auf Speichern.
Abbildung 5.12: Spalten definieren
2-6496.book Page 98 Tuesday, November 19, 2002 3:47 PM
MySQL als Datenquelle
99
5 Jetzt ist die Tabelle mit zwei Spalten angelegt und wir können sie mit Werten fül-len. Klicken sie dazu auf den Link Einfügen im oberen Menü.
6 Füllen Sie die Felder analog zu Abbildung 5.13 und klicken Sie auf OK. Wenn Sie die Option Neuen Datensatz einfügen aktiviert haben, können Sie gleich mit dem nächsten Datensatz weitermachen. Verfahren Sie so für alle Parteien.
Abbildung 5.13: Werte eintragen
7 Aktivieren Sie beim letzten Datensatz die Option zurück , um wieder auf die Hauptseite der Tabelle zu gelangen. Klicken Sie hier auf den Link Anzeigen, um die Tabelleneinträge zu überprüfen. Sie sollten ein Ergebnis wie in Abbildung 5.14 erhalten.
Das war die Vorarbeit. Die Daten befinden sich nun in einer Datenbank. Diese Datenkönnen natürlich auch aus einer Online-Umfrage kommen und dann in dieser Tabellegespeichert werden.
2-6496.book Page 99 Tuesday, November 19, 2002 3:47 PM
100
Jetzt wird es bunt!
Abbildung 5.14: Anzeigen des Tabelleninhaltes
Wie bekommen wir jetzt die Daten als Werte in ein Diagramm? Dazu habe ich Ihnenein PHP-Script geschrieben, das Ihnen alle lästigen Details abnimmt.
Die Funktionalität des Scripts können Sie über die folgende Anweisung einbinden:
include ("dataFromDB.php");
Um sich mit der MySQL-Datenbank zu verbinden, geben Sie folgenden Code ein:
connectToDB("localhost", "donald", "donald", "wahl");
CD-R
OMAU
F DE
R Das Script finden Sie auf der CD-ROM im Verzeichnis \software\JpGraph unter dem Namen dataFromDB.php.
2-6496.book Page 100 Tuesday, November 19, 2002 3:47 PM
MySQL als Datenquelle
101
Die Parameter sind – der Reihe nach – der Name des Datebankrechners (in den aller-meisten Fällen localhost), der Benutzername, das Passwort und die Datenbank, mit derman sich verbinden möchte.
Um dann ein Daten-Array aus einer Tabelle zu erhalten, schreiben Sie:
$data = dataFromTable("ergebnisse", "prozente");
Als Parameter erwartet die Funktion den Namen der Tabelle und den Namen der Spalte,aus der die Werte genommen werden sollen.
Wenn alle Daten aus der Datenbank geholt wurden, sollten Sie die Datenbankverbin-dung mit folgendem Befehl wieder schließen:
closeConToDB();
Insgesamt sieht unser Script zur Erzeugung eines Tortendiagramms folgendermaßenaus:
<?phpinclude ("src/jpgraph.php");include ("src/jpgraph_pie.php");include ("src/jpgraph_pie3d.php");include ("dataFromDB.php");
connectToDB("localhost", "donald", "donald", "wahl");
$data = dataFromTable("ergebnisse", "prozente");$legende = dataFromTable("ergebnisse", "partei");$farben = array("black", "red", "green", "yellow", lightred", "lightblue");
closeConToDB();
$graph = new PieGraph(400,200,"auto");
$graph->SetShadow();
$graph->title->Set("Wahlergebnisse");
$p1 = new PiePlot3D($data);$p1->SetAngle(40);$p1->SetSize(0.5);$p1->SetCenter(0.45);$p1->SetLegends($legende);$p1->SetSliceColors($farben);
$graph->Add($p1);$graph->Stroke();?>
2-6496.book Page 101 Tuesday, November 19, 2002 3:47 PM
102
Jetzt wird es bunt!
5.5 HilfeDieses Kapitel war nur ein Crashkurs in JpGraph. Wenn Sie die vielen Funktionen vonJpGraph wirklich nutzen wollen (und die englische Sprache beherrschen), gibt es vieleDokumente und Webseiten, die Ihnen weiterhelfen.
Zu nennen ist zunächst die Webseite von JpGraph: http://www.aditus.nu/jpgraph/(Abbildung 5.15)
Abbildung 5.15: JpGraph-Homepage
CD-R
OMAU
F DE
R Das Script finden Sie auf der CD-ROM unter dem Namen wahl2.phpim Verzeichnis \software\JpGraph.
2-6496.book Page 102 Tuesday, November 19, 2002 3:47 PM
Hilfe
103
Wenn Sie JpGraph installieren, bekommen Sie ein Handbuch mitgeliefert. Sie könnenes sich unter folgender URL ansehen: http://localhost/jpgraph-1.8/docs/manual/html/(Abb. 5.16)
Abbildung 5.16: Das JpGraph-Handbuch
Das Handbuch wird Ihnen allerdings nur dann eine Hilfe sein, wenn Sie die Grund-konzepte des Programmierens kennen.
2-6496.book Page 103 Tuesday, November 19, 2002 3:47 PM
104
Jetzt wird es bunt!
Ergebnis dieses WorkshopsSie haben in diesem Workshop gelern, wie Sie dynamisch Diagramme erzeugen kön-nen, die auf Daten basieren, die in einer Datenbank abgelegt sein können. Nutzen SieJpGraph, um Ihre Seite aufzuwerten !
2-6496.book Page 104 Tuesday, November 19, 2002 3:47 PM
Workshop 6
Einladung zum Diaabend
Wie Sie Ihre Freunde mit den letzten Urlaubsbildern entzücken
Eines der häufigsten Anwendungsgebiete von privaten Homepages ist sicherlich dasVeröffentlichen von Fotos. Wie verfährt man jedoch bei einer großen Anzahl an Fotos?Die Fotos müssen strukturiert abgelegt werden und vielleicht soll nicht jeder beliebigeSurfer alle Bilder sehen können. Außerdem ist eine Übersicht über die Fotos hilfreich.
Diese und andere Anforderungen erfüllen Web-Fotoalben. Ein besonders gutes undkostenloses Exemplar dieser Gattung nennt sich Gallery. Es ermöglicht Ihnen, eine Foto-galerie ins Netz zu stellen, die aus verschiedenen Fotoalben bestehen kann. Sie werdenGallery in diesem Kapitel kennen und vermutlich auch lieben lernen.
2-6496.book Page 105 Tuesday, November 19, 2002 3:47 PM
106
Einladung zum Diaabend
Ergebnis dieses WorkshopsIn diesem Workshop werden Sie alles nötige lernen, damit Sie ein Fotoalbum ins Inter-net stellen können, so dass man Ihre Bilder auf der ganzen Welt bestaunen kann.
6.1 InstallationSchreiten wir direkt zur Tat und beginnen mit der Installation von Gallery.
1 Entpacken Sie das Archiv gallery-1.3.1.tar.gz in Ihr Dokumentenverzeichnis des Webservers (c:\apache\htdocs). Die Dateien im Archiv befinden sich bereits in einem Unterverzeichnis namens gallery, Sie brauchen also keines vorher anzulegen.
2 Entpacken Sie das Archiv netpbm1.1-gallery1.0-win32.tgz in das neu entstandene Verzeichnis gallery.
CD-R
OMAU
F DE
R
Die notwendigen Dateien zur Installation von Gallery finden Sie aufder CD-ROM unter \software\Gallery.
Eine aktuelle Version bekommen Sie im Internet unter http://gallery.menalto.com.
2-6496.book Page 106 Tuesday, November 19, 2002 3:47 PM
Installation
107
3 Öffnen Sie einen Browser und gehen Sie zur URL htpp://localhost/gallery/setup/, um die Installationsroutine von Gallery aufzurufen.
4 Sie befinden sich nun im ersten Installationsschritt. Hier wird überprüft, ob alle Bedingungen erfüllt sind, damit Gallery einwandfrei funktionieren kann (Abbildung 6.1). Es wird zum Beispiel überprüft, welche PHP-Version installiert ist und ob die NetPBM-Funktionsbibliothek gefunden werden kann. Einige Voraussetzungen sind optional, sodass Sie hier eine Meldung erhalten, die uns aber nicht weiter stört.
Abbildung 6.1: Schritt1 des Gallery-Setups
PROF
ITIP
PNetPBM ist eine Funktionsbibliothek zur Manipulation von Bildern. DaGallery diese Funktionen verwendet, muss NetPBM auch auf demServer installiert sein. Im Falle des Testsystems mit PHPTriad ist dieWindows-Version zu benutzen. Auf der CD-ROM finden Sie auch eineVersion für Linux namens netpbm1.1-gallery1.0-linux2.2-redhat6.2-intel.tgz. Um Gallery auf Ihrem Webspace einsetzen zu können, müssenSie vermutlich die Linux-Version in einem Verzeichnis Ihres Webspacesentpacken. Sollte Ihr Hoster ein anderes Betriebssystem verwenden (z.B.Solaris oder FreeBSD), müssen Sie sich entsprechende Versionen vonNetPBM besorgen. Weitere Informationen und Download-Links fin-den Sie auf der Homepage von Gallery: http://gallery.menalto.com.
2-6496.book Page 107 Tuesday, November 19, 2002 3:47 PM
108
Einladung zum Diaabend
5 Klicken Sie auf Configure Gallery am Ende der Seite, um zum nächsten Installa-tionsschritt zu gelangen.
6 In Schritt 2 der Installation legen Sie einige wichtige Grundeinstellungen fest. Folgende Felder müssen ausgefüllt werden:
■ Gallery Title (Überschrift Ihrer Bildergalerie): Test
■ Admin Password (Kennwort für den Administrator): goofy
■ Path to NetPBM (Pfad, in dem Sie NetPBM installiert haben): c:\apache\htdocs\gallery\netpbm
■ Album directory (Verzeichnis, in dem die Alben und Bilder abgelegt werden):c:\apache\htdocs\albums
■ Temporary Directory (Temporärer Ordner): Dieser ist je nach Betiebssystemunterschiedlich, unter Windows NT/2000 lautet er c:\winnt\temp
■ Alle weiteren Felder sind sicher ebenfalls interessant und bei Gelegenheit solltenSie sich einmal alles genau durchlesen, aber jetzt sind wir zu ungeduldig dazu.
Abbildung 6.2: Schritt 2 der Installation
2-6496.book Page 108 Tuesday, November 19, 2002 3:47 PM
Installation
109
7 Erstellen Sie die Verzeichnisse, die Sie als Album- und Temporärverzeichnis fest-gelegt haben, falls Sie nicht bereits existieren.
8 Gehen Sie weiter zum nächsten Installationsschritt, indem Sie auf die Schaltfläche Album Defaults klicken.
9 In Schritt 3 der Installation können Sie die Voreinstellung für Fotoalben fest-legen, die dann beim Erstellen neuer Alben als Standard übernommen wird. Sie können die Werte aber für jedes Album individuell verändern. Sie können die vorgeschlagenen Werte einfach übernehmen, aber auch hier gilt, dass Sie sich bei Gelegenheit eingehender damit beschäftigen sollten. Klicken Sie auf Save Settings, um zum letzten Installationsschritt zu gelangen.
10 Es wird angezeigt, welche Konfigurationseinstellungen sich durch Ihre Auswahl ergeben haben (Abbildung 6.3). Um den Inhalt brauchen Sie sich nicht zu kümmern, wichtig ist nur, dass keine rote Fehlermeldung erscheint. Wenn dies dennoch der Fall ist, gehen Sie noch einmal zurück und überprüfen Sie, ob Sie alle Schritte korrekt ausgeführt haben.
Abbildung 6.3: Der letzte Installationsschritt
11 Klicken Sie auf Save Config, um die Installation abzuschließen.
2-6496.book Page 109 Tuesday, November 19, 2002 3:47 PM
110
Einladung zum Diaabend
Abbildung 6.4: Setzen der Dateirechte mit SmartFTP
Puh, das war ganz schön aufwändig. Aber es lohnt sich, wie Sie gleich sehen werden!
6.2 Let the show beginPrinzipiell ist Gallery jetzt einsatzbereit – es fehlt nur noch das Wichtigste: die Fotos!
Sehen Sie sich zunächst die leere Galerie an: http://localhost/gallery/. Es gibt wederAlben noch Fotos, welch trister Anblick. Lassen Sie uns das schleunigst ändern und einneues Album mit einigen Fotos erstellen:
PROF
ITIP
PSie erhalten eine Hinweismeldung, dass sie Gallery noch sichern müs-sen. Dabei geht es darum, die Rechte auf die Konfigurationsdatei zuändern, sodass nicht jede beliebige Person sie ändern kann. Dies isteigentlich nur wichtig, wenn Sie Gallery auf Ihrem Webspace betrei-ben. Mit dem in Kapitel 1 vorgestellten FTP-Client SmartFTP könnenSie die Rechte auf die Kennzahl 644 setzen, indem Sie die Datei mitder Maus auswählen und dann (F7) drücken (Abbildung 6.4). Ent-sprechend verfahren Sie dann mit der Datei .htaccess.
2-6496.book Page 110 Tuesday, November 19, 2002 3:47 PM
Let the show begin
111
1 Klicken Sie auf den Link Login in der rechten oberen Ecke des Fensters, um sich als Administrator einzuloggen.
2 Geben Sie als Benutzername admin und als Passwort goofy ein (Abbildung 6.5) und klicken Sie auf die Schaltfläche Login.
Abbildung 6.5: Login-Fenster
3 Wie Sie sehen, haben Sie nun wesentlich mehr Möglichkeiten. Klicken Sie auf den Link new Album, um ein neues Album zu erstellen.
4 Das neue Album erhält standardmäßig den Namen Untitled (unbetitelt). Das werden wir später ändern. Zunächst wollen wir aber ein paar Bilder hinzufügen. Klicken Sie auf den Link add Photos.
5 Klicken Sie auf die jeweiligen Durchsuchen...-Schaltflächen, um zu Ihren Bildern zu navigieren (Abbildung 6.6). Falls Sie mehr als fünf Bilder hochladen wollen, müssen Sie die Anzahl entsprechend hochsetzen. Klicken Sie auf Upload Now, wenn Sie fertig sind.
CD-R
OMAU
F DE
R Falls Sie gerade keine Bilder in den unterstützten Formaten greifbarhaben, habe ich Ihnen auf der CD-ROM drei Bilder mitgegeben. Siefinden Sie unter \software\Gallery\images.
2-6496.book Page 111 Tuesday, November 19, 2002 3:47 PM
112
Einladung zum Diaabend
Abbildung 6.6: Fotos hinzufügen
6 Es wird ein Wartefenster angezeigt und der Status der Uploads. Am Ende sehen Sie Ihre ersten Bilder in Gallery als Übersicht (Abbildung 6.7). Wollen Sie ein Bild genauer betrachten, müssen Sie nur darauf klicken.
Abbildung 6.7: Das erste Album
2-6496.book Page 112 Tuesday, November 19, 2002 3:47 PM
Keine Chance für Voyeure
113
Lassen Sie uns noch ein paar kosmetische Änderungen vornehmen: den Namen desAlbums, die Hintergrundfarbe und den Bilderrahmen.
Klicken Sie dazu auf den Link properties und ändern Sie die Einstellungen des Albumsanalog zu Abbildung 6.8. Klicken Sie auf Apply, um die Änderungen zu übernehmen.
Abbildung 6.8: Eigenschaften des Albums
Jetzt sieht das Ganze farblich doch schon etwas irischer aus, finden Sie nicht?
6.3 Keine Chance für VoyeureEs ist nicht jedermanns Sache, alle möglichen intimen Bilder ins Internet zu stellen, wojeder auf der Welt sie sehen kann. Gallery ermöglicht es, pro Album zu unterscheiden,wer es anschauen darf und wer nicht.
Dazu bietet es zunächst für eine grobe Unterscheidung folgende Benutzergruppen an:
■ EVERYBODY: jeder
■ NOBODY: keiner (außer dem Administrator, der darf alles)
■ LOGGEDIN: Alle eingeloggten Benutzer, unabhängig von der Kennung
Zusätzlich kann man für jeden Benutzer einzeln Rechte vergeben. Insgesamt bietetGallery ein ausgetüfteltes Rechtesystem, sodass hier sehr feine Unterscheidungen ge-macht werden können.
Die Grundlage für das Rechtesystem ist natürlich, dass außer dem Administrator nochweitere Benutzerkennungen existieren. Deswegen legen wir zunächst einen neuen Be-nutzer an:
1 Gehen Sie auf die Gallery-Startseite http://localhost/gallery/. Noch sind Sie als Administrator eingeloggt und haben daher auch auf der Startseite ein erweitertes Menü.
2-6496.book Page 113 Tuesday, November 19, 2002 3:47 PM
114
Einladung zum Diaabend
2 Wählen Sie den Link manage users in der oberen Menüzeile.
3 Im darauf folgenden Fenster können Sie auswählen, ob Sie einen bestehenden Benutzer ändern oder löschen oder einen neuen Benutzer anlegen wollen. Kli-cken Sie auf die Schaltfläche Create.
4 Geben Sie im erscheinenden Fenster die Benutzerdaten wie in Abbildung 6.9 ein, ein Passwort können Sie sich ausdenken.
Abbildung 6.9: Neuen Benutzer anlegen
5 Klicken Sie auf Create, um den Benutzer mit der Kennung voyeur zu erzeugen.
6 Wiederholen Sie die letzten drei Schritte, um einen zweiten Benutzer namens freund zu erstellen.
Sie können sich wahrscheinlich schon denken, wo das hinführen soll: Der Benutzermit der Kennung voyeur soll keine Rechte erhalten, d.h. keine Fotos anschauen dürfen,der Benutzer freund hingegen darf das Irland-Album sehen.
Wie lässt sich das bewerkstelligen?
1 Wählen Sie aus dem Album-Menü, das für den Administrator auch auf der Start-seite erreichbar ist, den Eintrag permissions.
2 Im linken großen Auswahlfenster sehen Sie alle Benutzerkennungen sowie die drei erwähnten Nutzergruppen EVERYBODY, LOGGEDIN und NOBODY. In den rechten kleinen Auswahlfenstern sind die Benutzer angezeigt, die das ent-sprechende Recht haben. Zurzeit ist unter Users who can see the album (Benutzer,
2-6496.book Page 114 Tuesday, November 19, 2002 3:47 PM
Keine Chance für Voyeure
115
die das Album sehen können) als Nutzergruppe EVERYBODY (jeder) angege-ben. Das wollen wir abändern, wie in Abbildung 6.10 gezeigt.
Abbildung 6.10: Rechte ändern
3 Wählen Sie den Eintrag EVERYBODY aus der rechten Liste aus und klicken Sie auf den Pfeil nach links, um den Eintrag aus dem Fenster zu entfernen. Im Fens-ter steht jetzt NOBODY (niemand).
4 Wählen Sie jetzt aus dem linken Auswahlfenster den Eintrag freund und klicken Sie auf den Pfeil nach rechts, damit der Benutzer in der rechten Liste erscheint.
5 Klicken Sie auf die Schaltfläche Save zum Speichern der Änderungen und anschließend auf Done.
PROF
ITIP
P
Wie sie auf der Rechteseite gesehen haben, gibt es eine Vielzahl anRechten, die Sie vergeben können und nicht nur das Recht, ein Albumanzuschauen oder nicht. Sie können folgende Rechte vergeben:
■ Ändern des Album-Texts
■ Hinzufügen von Fotos
■ Verändern von Fotos
■ Löschen von Fotos
■ Erstellen von Unteralben
2-6496.book Page 115 Tuesday, November 19, 2002 3:47 PM
116
Einladung zum Diaabend
Testen Sie die Ergebnisse Ihrer Bemühungen! Loggen Sie sich als Administrator aus,denn der Administrator darf ja generell alles sehen. Sie gehören jetzt zur NutzergruppeEVERYBODY, da sie ein anonymer Surfer sind. Demzufolge sehen Sie auch dasIrland-Album nicht. Loggen Sie sich zunächst als voyeur ein; es sollte sich nichts ver-ändern. Probieren Sie es dann als Benutzer freund. Achten Sie darauf, dass Sie zwar dieFotos sehen, aber keinerlei Änderungen vornehmen können. Funktioniert es?
6.4 Gallery RemoteBilder einzeln hochzuladen, so wie wir das getan haben, mag für eine kleine Anzahl anBildern in Ordnung sein. Aber wenn Sie Ihre Fotosammlung zum ersten Mal über Gal-lery zugänglich machen wollen, werden Sie vielleicht Hunderte von Fotos übertragenmüssen. Für diesen und ähnliche Fälle bietet Gallery ein kostenloses Zusatztool na-mens Gallery Remote an. Gallery Remote läuft als Java-Applikation auf dem Rechner,auf dessen Festplatte die Bilder liegen. Es verbindet sich mit dem Webserver, auf demGallery läuft, und überträgt ausgewählte Bilder automatisch.
Starten Sie die Installation von Gallery Remote, indem Sie auf das Archiv doppelklicken.Sollten Java-Archive noch nicht mit der Lauftzeitumgebung verknüpft sein, werden Sie ge-fragt, mit welchem Programm die Datei geöffnet werden soll. Wählen Sie aus der Liste dasProgramm javaw und kreuzen Sie an, dass zukünftig immer dieses Programm zum Öff-nen benutzt werden soll (Abbildung 6.11). Die Installation startet dann (Abbildung 6.12).
CD-R
OMAU
F DE
R Gallery Remote finden Sie auf der CD-ROM unter \software\Galleryin einem Java-Archiv namens InstallGalleryRemote.jar.
VORS
ICHT
!
Da Gallery Remote in Java geschrieben ist, benötigen Sie eine Java-Laufzeitumgebung auf Ihrem Rechner. Falls Sie noch keine installierthaben, können Sie das so genannte JRE – Java Runtime Environment(Java-Laufzeitumgebung) von der Webseite http://java.sun.com herun-terladen. Wählen Sie dort J2SE in der neuesten Version und suchen Sieden Download-Link zu JRE für Ihr Betriebssystem in der gewünschtenSprachversion. In unserem Fall wäre das die internationale Version fürWindows. Aber auch für Linux findet sich dort eine Version.
2-6496.book Page 116 Tuesday, November 19, 2002 3:47 PM
Gallery Remote
117
Abbildung 6.11: Verknüpfung für .jar-Dateien
Abbildung 6.12: Installation von Gallery Remote
Klicken Sie auf Next und übernehmen Sie die Standardparameter. Sie müssen im drit-ten Schritt die so genannte Java Virtual Machine auswählen, die benötigt wird, umGallery Remote auszuführen. Diese JVM ist Bestandteil der Java-Laufzeitumgebungund nennt sich unter Windows java.exe. Nachdem Sie die JVM ausgewählt haben, kli-cken Sie sich weiter durch bis zum Installationsende.
2-6496.book Page 117 Tuesday, November 19, 2002 3:47 PM
118
Einladung zum Diaabend
Nun können Sie durch Doppelklick auf RunGalleryRemote.bat das Programm starten.Es öffnen sich zwei Fenster: ein Bildvorschau-Fenster und ein Hauptfenster (Abbil-dung 6.13).
Abbildung 6.13: Das Hauptfenster von Gallery Remote
Lassen Sie uns nach der anstrengenden Installationsarbeit jetzt die Früchte unserer An-strengungen ernten: Wir wollen unserem Irland-Fotoalbum einige Bilder hinzufügen.
CD-R
OMAU
F DE
R
Sie sind fast am Ziel. Leider hat sich in der aktuellen Version vonGallery Remote ein Bug eingeschlichen, sodass sich das Programmnicht korrekt starten lässt. Diesen Fehler habe ich korrigiert, sie findendie verbesserten Dateien auf der CD-ROM im Ordner \software\Gal-lery\bugfix unter den Namen GalleryRemote.jar und RunGalleryRe-mote.bat. Kopieren Sie diese Dateien in das Installationsverzeichnisvon Gallery Remote (im Normalfall C:\Program Files\Gallery).
2-6496.book Page 118 Tuesday, November 19, 2002 3:47 PM
Gallery Remote
119
1 Geben Sie die URL Ihres Webspaces mit Gallery in das Feld Gallery URL ein. Für das Testsystem wäre das http://localhost/gallery. Geben Sie außerdem den User-name admin und das Passwort goofy an.
2 Klicken Sie auf Fetch Albums. Nachdem sich Gallery Remote mit Gallery verbun-den hat, sehen Sie die zur Auswahl stehenden Fotoalben im Feld Upload to Album. Das Irland-Album sollte hier bereits ausgewählt sein.
3 Öffnen Sie nun den Windows-Explorer und wechseln Sie auf die CD-ROM ins Verzeichnis \software\gallery\uploads. Ziehen Sie die dort befindlichen Bilder mit der Maus in die große weiße Fläche des Gallery-Remote-Fensters. Das Ergebnis sieht dann wie in Abbildung 6.14 aus. Wenn Sie ein Bild mit der Maus anwählen, sehen Sie es im Vorschau-Fenster.
Abbildung 6.14: Bilder zum Upload auswählen
4 Wenn Sie mit den Bildern zufrieden sind, klicken Sie auf die Schaltfläche Upload Now, um die Bilder Ihrem Web-Fotoalbum hinzuzufügen.
2-6496.book Page 119 Tuesday, November 19, 2002 3:47 PM
120
Einladung zum Diaabend
Das war’s. Sie können jetzt Ihr Fotoalbum bestaunen. Vergessen Sie aber nicht, sich alsadmin oder freund einzuloggen, denn andernfalls können Sie das Irland-Album nichtsehen.
Ergebnis dieses WorkshopsSie haben jetzt die nötigen Kenntnisse und die nötigen Programme, um ein Fotoalbumin Ihre Website zu integrieren.
2-6496.book Page 120 Tuesday, November 19, 2002 3:47 PM
Workshop 7
Gibt’s was Neues?
Immer auf dem Laufenden mit einem News-System
Viele Websites haben eine Rubrik Neuigkeiten. Ist Ihnen schon aufgefallen, dass dieseNeuigkeiten eher „Altigkeiten“ heißen müssten?
Das liegt daran, dass die Organisation und Anzeige der News zu viel Arbeit macht. Esgibt aber eine Lösung: ein professionelles News-System. Ein News-System verwaltetalle Neuigkeiten und bietet Strukturierungselemente wie Kategorien. Neue Einträgehinzuzufügen ist sehr einfach.
Die Installation, erstmalige Konfiguration und das Anpassen des Erscheinungsbildeserfordert einen gewissen Arbeitsaufwand. Dieser lohnt sich aber, da das weitere Arbei-ten sehr einfach ist, insbesondere wenn Sie viele News-Artikel verwalten müssen.
Aus der Vielfalt der frei erhältlichen News-Scripts habe ich ein deutsches Produktnamens SimpleNews ausgewählt, da es sehr flexibel ist und unzählige Features bietet.Das Standardlayout ist zwar farblich nicht ansprechend, aber das lässt sich zum Glückverändern.
2-6496.book Page 121 Tuesday, November 19, 2002 3:47 PM
122
Gibt’s was Neues?
Ergebnis dieses WorkshopsSie lernen, wie Sie SimpleNews effektiv einsetzen können, um auf Ihrer Website Neuig-keiten darstellen zu können.
7.1 Die Installation von SimpleNews
1 Legen Sie ein Verzeichnis namens simpnews im Dokumentenverzeichnis des Webservers (c:\apache\htdocs) an.
2 Extrahieren Sie das Archiv simpnews.zip in das neu erstellte Verzeichnis.
3 Öffnen Sie einen Browser und gehen sie zur URL http://localhost/simpnews/admin/mkconfig.php. Wählen Sie Deutsch als Sprache (Abbildung 7.1).
CD-R
OMAU
F DE
R
Das Zip-Archiv mit den notwendigen Dateien finden Sie auf der CD-ROM im Verzeichnis \software\simplenews.
Im Internet finden Sie eine aktuelle Version unter http://www.boesch-it.de.
2-6496.book Page 122 Tuesday, November 19, 2002 3:47 PM
Die Installation von SimpleNews
123
Abbildung 7.1: Auswahl der Sprache
4 Füllen Sie die Felder wie in Abbildung 7.2 gezeigt. Die meisten Werte sind bereits korrekt voreingestellt.
Abbildung 7.2: Konfigurationseinstellungen
2-6496.book Page 123 Tuesday, November 19, 2002 3:47 PM
124
Gibt’s was Neues?
5 Klicken Sie auf die Schaltfläche Submit. Sie erhalten die Meldung: config.php erzeugt.
6 Damit das Installationsscript, das wir später aufrufen, die notwendigen Datenbank-tabellen anlegen kann, müssen wir zuerst eine Datenbank erzeugen. Wechseln Sie dazu zur URL des MySQL-Administrations-Tools: http://localhost/phpMyAdmin/.
7 Erstellen Sie eine neue Datenbank namens news (Abbildung 7.3).
Abbildung 7.3: Erstellen einer neuen Datenbank
8 Starten Sie das Installationsscript, indem Sie die URL http://localhost/admin/install.php aufrufen und die Felder wie in Abbildung 7.4 angegeben füllen. Der Adminuser ist der Benutzer, der das News-System verwaltet und alle Rechte hat, um zum Beispiel News-Artikel zu löschen. Als Passwort wählen Sie am besten der Einfachheit halber goofy.
VORS
ICHT
!
Wenn Sie SimpleNews auf Ihrem Webserver einsetzen, wählen Sieeinen anderen Namen und ein anderes Kennwort für den Adminuser.goofy ist zu leicht zu erraten.
2-6496.book Page 124 Tuesday, November 19, 2002 3:47 PM
Die Installation von SimpleNews
125
Abbildung 7.4: Parameter für Installationsscript
9 Klicken Sie auf submit, um die Installation zu starten. Sie erhalten eine Bestätigungsseite.
10 Löschen Sie folgende Dateien im admin-Verzeichnis:
mkconfig.phpfill_emoticons.phpfill_icons.phpfill_freemailer.phpinstall.phpupgrade_160_to_161.phpupgrade_161_to_162.phpupgrade_162_to_163.phpupgrade_164_to_165.phpupgrade_166_to_167.php
2-6496.book Page 125 Tuesday, November 19, 2002 3:47 PM
126
Gibt’s was Neues?
7.2 Das sind ja Neuigkeiten!Nun wollen wir SimpleNews ein bisschen Leben einhauchen, indem wir einen Test-Artikel bereitstellen.
1 Wechseln Sie zur Administrationsseite http://localhost/simpnews/admin/.
2 Loggen Sie sich als Adminuser (goofy) ein. Zunächst werden Sie sicherlich von dem ungewöhnlichen Farbspiel überrascht ...
3 Sie sehen jetzt die Administrationsseite, die beim ersten Anblick erschlagend viele Funktionen bietet (Abbildung 7.5).
Abbildung 7.5: Die Administrationsseite
4 Wir fangen ganz oben an: Klicken Sie auf den Link Kategorien im Bereich Allgemein.
5 Jeder News-Artikel sollte einer Kategorie zugeordnet sein. Also müssen wir erst einmal eine Kategorie erstellen. Klicken Sie auf den Link neue Kategorie.
2-6496.book Page 126 Tuesday, November 19, 2002 3:47 PM
Das sind ja Neuigkeiten!
127
6 In das Feld Kategoriename schreiben Sie Politik und klicken auf hinzufügen (Abbildung 7.6).
Abbildung 7.6: Neue Kategorie erstellen
7 Gehen Sie wieder ins Hauptmenü und wählen Sie den Link Newseinträge bearbeiten aus der Rubrik News.
8 Da wir einen News-Artikel zur Kategorie Politik hinzufügen wollen, müssen wir zuerst die Kategorie wechseln. Wählen Sie dazu aus der Liste die Kategorie Politik aus und klicken Sie auf wechseln (Abbildung 7.7).
Abbildung 7.7: Wechsel der Kategorie
2-6496.book Page 127 Tuesday, November 19, 2002 3:47 PM
128
Gibt’s was Neues?
9 Nun können Sie einen neuen News-Artikel wie in Abbildung 7.8 gezeigt verfassen. Die Titelgrafiken sind vordefiniert, es können aber problemlos weitere hinzugefügt oder vorhandene gelöscht werden. Dazu müssen Sie lediglich die Dateien im Ver-zeichnis gfx\icons bearbeiten. Tippen Sie also einen von Ihnen gewünschten Text ein.
Abbildung 7.8: Neuen Artikel verfassen
10 Scrollen Sie ans Ende der Seite und klicken Sie auf den Link hinzufügen .
PROF
ITIP
P Vielleicht fragen Sie sich, was :lol: im Text des News-Artikels bedeutet.Das ist Chatter-Slang und meint laughing out loud (laut loslachen).SimpleNews kennt den Chatter-Slang und übersetzt ihn in Smileys. Siekönnen aber auch direkt die Smileys unter dem Feld News anklicken,um Sie in den Text einzufügen.
2-6496.book Page 128 Tuesday, November 19, 2002 3:47 PM
Anpassen des Designs
129
Das war’s. Sie haben Ihren ersten News-Artikel geschrieben. Den wollen Sie sich jetztnatürlich anschauen. Öffnen Sie dazu die URL http://localhost/simpnews/news.php?category=1.
Abbildung 7.9: Der News-Artikel aus der Benutzersichtweise
7.3 Anpassen des DesignsDie News-Seite sieht etwas altbacken aus, das wollen wir schleunigst ändern!
Alle Einstellungen, die Layout und Design betreffen, finden Sie im Menü Layout unterEinstellungen auf der Administrationsseite.
Wechseln Sie in dieses Untermenü. Auf der folgenden Seite können Sie bestimmen,welches Layoutschema verwendet werden soll. Zurzeit existiert nur ein Schema – siewissen schon, das farblich wenig ansprechende. Klicken Sie auf den Link neues Layout,um ein anderes Schema zu definieren. Sie gelangen zur Layout-Definitionsseite (Ab-bildung 7.10).
2-6496.book Page 129 Tuesday, November 19, 2002 3:47 PM
130
Gibt’s was Neues?
Abbildung 7.10: Definieren eines neues Layoutschemas
Auch hier ist man beim ersten Anblick überwältigt von der Vielzahl der Optionen. Eslässt sich wirklich alles einstellen! Die einzelnen Hauptrubriken sind durch grüneÜberschriften voneinander getrennt, Überschriften von Unterrubriken sind in Blau-lila dargestellt.
1 Geben Sie dem Schema zunächst einen Namen. Schreiben Sie in das Feld ID den Namen Neu.
2 Um eine farblich etwas aufgeräumtere News-Seite zu erhalten, geben Sie folgende Werte ein:
In der Rubrik Überschrift :
Hintergrundfarbe: #CCCCCC
Schriftfarbe: #000000
2-6496.book Page 130 Tuesday, November 19, 2002 3:47 PM
Anpassen des Designs
131
3 In der Rubrik Kategorieliste kreuzen Sie bitte das Kontrollkästchen aktivieren an.
4 In der Rubrik News, Unterrubrik Überschrift :
Hintergrundfarbe: #777777
Schriftfarbe: #FFFFFF
5 In der Unterrubrik Text:
Hintergrundfarbe: #FFFFFF
Schriftfarbe: #000000
6 In der Rubrik Grafiken unter Seitenhintergrund: kein Eintrag
7 In der Rubrik Seitenlayout unter Hintergrundfarbe: #FFFFFF
Das Ergebnis sehen Sie in Abbildung 7.11.
Abbildung 7.11: Verändertes Seitenlayout
Spielen Sie selbst ein bisschen an den Farbeinstellungen herum, es macht Spaß!
2-6496.book Page 131 Tuesday, November 19, 2002 3:47 PM
132
Gibt’s was Neues?
7.4 Darf’s ein bisschen mehr sein?Sie haben gesehen, das Grundprinzip von SimpleNews ist in der Tat simpel. Über dieAdministrationsseite lassen sich Kategorien und News-Beiträge erstellen, die dannmithilfe von Layoutschemas dargestellt werden.
Aber das ist noch lange nicht alles, was SimpleNews kann. Es bietet eine Vielzahl analternativen Darstellungsweisen für die News-Artikel. Ich möchte Ihnen einige davonvorstellen.
Zunächst gibt es ein paar Variationen der klassischen Darstellungsweise. Probieren Sieeinmal die URL http://localhost/simpnews/news3.php?category=1 aus (Abbildung 7.12)Die News werden hier tabellarisch angezeigt, aber nur die Schlagzeilen. Ähnliche Varia-tionen bieten die Scripts news2.php und news4.php.
Abbildung 7.12: Anzeige der News in Tabellenform
Es sind aber auch ganz andere, etwas aufregendere und dynamischere Darstellungs-weisen möglich.
VORS
ICHT
!
Damit Sie die Fähigkeiten sinnvoll testen können, fügen Sie der Kate-gorie Politik noch mindestens einen News-Beitrag Ihrer Wahl hinzu.
2-6496.book Page 132 Tuesday, November 19, 2002 3:47 PM
Darf’s ein bisschen mehr sein?
133
Es ist zum Beispiel möglich, die Neuigkeiten mithilfe eines JavaScript-Newsfaders dar-zustellen. Ein Newsfader blendet die News-Artikel periodisch nacheinander ein. Siekönnen ihn über die URL http://localhost/simpnews/js_newsfader.php?category=1 auf-rufen (Abbildung 7.13).
Abbildung 7.13: Der Newsfader
Ganz ähnlich arbeitet der JavaScript-Newsscroller. Statt die News einzublenden,scrollt er die Beiträge nacheinander über den Bildschirm. Die URL lautet: http://local-host/simpnews/js_newsscroller.php?category=1.
Für das nächste Beispiel müssen wir ein paar Anpassungen bei den Einstellungen aufder Adminsitrationsseite vornehmen.
1 Wechseln Sie zur Admin-Seite in das Layoutmenü für unser Farbschema.
2 Scrollen Sie nach unten bis zur Rubrik Newsticker, Unterrubrik angezeigte News (Abbildung 7.14). Tragen Sie in das Feld Zeitrahmen eine –1 ein.
VORS
ICHT
!Die nachfolgenden Beispiele funktionieren nur, wenn der BenutzerJavaScript und Java-Applets in seinem Browser aktiviert hat. Meis-tens ist das der Fall, da die beiden Technologien standardmäßig akti-viert sind.
2-6496.book Page 133 Tuesday, November 19, 2002 3:47 PM
134
Gibt’s was Neues?
Abbildung 7.14: Parameter für den Newsticker
3 Wiederholen Sie den Eintrag für die Rubrik Newsscroller und Newstyper. Tragen Sie außerdem in beide Rubriken als Höhe den Wert 100 ein.
Jetzt sind Sie sicherlich schon gespannt, welche Funktionalitäten sich hinter Newsticker,Newsscroller und Newstyper verbergen. Der Newsticker scrollt News-Artikel von rechtsnach links über den Bildschirm: http://localhost/simpnews/newticker.php?category=1.
Der Newsscroller arbeitet wie der JavaScript-Newsscroller, aber das Scrolling ist etwasweicher, da es mithilfe eines Java-Applets realisiert wurde. Dafür muss allerdings dieJava-Laufzeitumgebung gestartet werden, was eine Verzögerung beim erstmaligenLaden der Seite bedeutet.
Der Newstyper letztendlich gibt die Neuigkeiten Buchstabe für Buchstabe aus, so alsob sie gerade eingetippt werden (Abbildung 7.15).
2-6496.book Page 134 Tuesday, November 19, 2002 3:47 PM
Darf’s ein bisschen mehr sein?
135
Abbildung 7.15: Der Newstyper
Zu guter Letzt noch ein Schmankerl: ein Newsscroller mit Sternenhintergrund. WechselnSie zur URL http://localhost/simpnews/starscroller.php?category=1 (Abbildung 7.16). DieParameter wie Höhe und Scrollgeschwindigkeit können Sie wieder über die altbekannteAdministrationsseite in der Rubrik Scroller mit Sternenhintergrund einstellen.
Abbildung 7.16: Der Sternenscroller
PROF
ITIP
P
Auch für den JavaScript-Newsfader und JavaScript-Newsscroller kön-nen Sie im Layoutmenü Einstellungen vornehmen, um zum Beispieldie Hintergrundfarbe oder die Schriftgröße zu ändern.
2-6496.book Page 135 Tuesday, November 19, 2002 3:47 PM
136
Gibt’s was Neues?
7.5 News-Beiträge in die eigene Seite einbauenBisher haben Sie die News-Beiträge losgelöst von einem Seitenkontext gesehen. WennSie vorhaben, SimpleNews zu benutzen, wollen Sie es sicherlich in Ihre Seite vernünftigeinbinden. Dazu stehen Ihnen viele Wege zur Verfügung. Für die klassische Darstel-lungsweise ist es – wie sie bereits gesehen haben – möglich, die Farben an Ihre Websiteanzupassen. Sie können aber außerdem noch einen beliebigen Seitenkopf und -fuß be-stimmen, der HTML-Anweisungen enthalten kann:
1 Wechseln Sie zur Administrationsseite (http://localhost/simpnews/admin/).
2 Klicken Sie auf den Eintrag Layout aus im Untermenü Einstellungen und wählen Sie unser Test-Layoutschema.
3 Scrollen Sie bis zur Rubrik Seitenlayout.
4 Aktivieren Sie das Kontrollkästchen benutzerdefinierten Header aktivieren.
5 Schreiben Sie in den Textbereich beliebigen HTML-Code, zum Beispiel:
<center><h1>Peters tolle Homepage<h1><h3><i>Neuigkeiten</i></h3></center>
6 Bestätigen Sie Ihre Eingaben mit einem Klick auf aktualisieren.
Testen Sie die Darstellungsweise der Seite http://localhost/simpnews/news.php?cate-gory=1. Es sollte wie in Abbildung 7.17 aussehen.
VORS
ICHT
!
Geben Sie den Code ohne Zeilenumbrüche ein, sonst werden dieseUmbrüche in HTML-Tags umgesetzt.
2-6496.book Page 136 Tuesday, November 19, 2002 3:47 PM
News-Beiträge in die eigene Seite einbauen
137
Abbildung 7.17: Individueller Seitenkopf
Die dynamischen Darstellungsweisen lassen sich durch PHP-Anweisungen in beliebigeSeiten einbinden. Sie können dabei die Kategorie als Variable bestimmen oder wie bis-her in der URL übergeben. Nehmen wir an, Sie hätten folgende einfache Seite:
<html> <h1>Meine Seite</h1> Die neuesten Neuigkeiten:</html>
Um z.B. den Newsticker hinzuzufügen, müssen Sie nur das entsprechende Scriptinkludieren:
<html> <h1>Meine Seite</h1> Die neuesten Neuigkeiten aus der Politik: <?php $category=1; include "newsticker.php"; ?></html>
2-6496.book Page 137 Tuesday, November 19, 2002 3:47 PM
138
Gibt’s was Neues?
Das Ergebnis sehen Sie in Abbildung 7.18.
Abbildung 7.18: Seite mit eingebundenem Newsticker
Wenn Sie die News nur in einer kleinen Ecke Ihrer Seite übersichtlich darstellen wollen,bietet sich das Script hotnews.php an:
<html> <h1>Meine Seite</h1> Die neuesten Neuigkeiten aus der Politik: <?php $category=1; include "hotnews.php"; ?></html>
Diesmal sieht die Seite aus wie in Abbildung 7.19.
Abbildung 7.19: Das Hotnews-Script
2-6496.book Page 138 Tuesday, November 19, 2002 3:47 PM
News-Beiträge in die eigene Seite einbauen
139
Zusammen mit den Einstellungsmöglichkeiten im Layoutmenü ergibt sich so einegroße Flexibilität, wie Sie die News-Beiträge auf Ihrer Seite präsentieren können. Dasist auch die große Stärke von SimpleNews gegenüber anderen Scripts.
Ergebnis dieses WorkshopsSie haben in diesem Workshop die vielfältigen Möglichkeiten kennen gelernt, die Ih-nen das Skript SimpleNews bietet, um Neuigkeiten auf Ihrer Website zu präsentieren.Nutzen Sie sie !
2-6496.book Page 139 Tuesday, November 19, 2002 3:47 PM
2-6496.book Page 140 Tuesday, November 19, 2002 3:47 PM
Workshop 8
Schweigen ist Silber, Reden ist Gold
Durch das Internet Freunde finden
Chats sind „in“. Im Gegensatz zu E-Mails oder Foren ist man in direktem Kontakt mitanderen Surfern, die Dialoge sind spontan. Trotzdem bleibt eine gewisse Anonymität,da man über Schrift kommuniziert. Eines der interessantesten Dinge ist dabei, dassman auf alle möglichen (und unmöglichen) Leute trifft, die man sonst nie kennen ler-nen würde. Mir sind persönlich mehrere Leute bekannt, die über Chats Ihren Traum-partner kennen gelernt haben! Chats machen eine Website lebendiger, aber es ist nichtganz einfach, einen Chat erst mal in Schwung zu bekommen. Da die Chatter währendihrer Dialoge gleichzeitig online sein müssen, ist dies schwieriger zu erreichen als beiForen. Dabei kann Ihnen auch dieses Buch wenig helfen. In diesem Kapitel werde ichIhnen zeigen, dass es ganz einfach ist, einen Chat auf einer Webseite einzubinden.Dazu benutzen wir eines der vielen freien und kostenlos erhältlichen Chat-Scriptsnamens PHPOpenChat.
2-6496.book Page 141 Tuesday, November 19, 2002 3:47 PM
142
Schweigen ist Silber, Reden ist Gold
Ergebnis dieses WorkshopsNach diesem Workshop werden Sie in der Lage sein, einen professionellen Chat in IhreWebsite zu integrieren.
2-6496.book Page 142 Tuesday, November 19, 2002 3:47 PM
Installation des Chats
143
8.1 Installation des Chats
Legen Sie ein Unterverzeichnis namens chat in Ihrem Webdokumentenordner an – imFalle von PHPTriad ist dies c:\apache\htdocs – und entpacken Sie das Zip-Archiv in dasneu angelegte Verzeichnis.
Die Script-Dateien enthalten eine webbasierte Installationsroutine, die alle nötigenDatenbanktabellen anlegt. Damit PHPOpenChat und sein Installationsscript korrektarbeiten, müssen Sie zu allererst den so genannten Include-Path in der PHP-Konfigu-rationsdatei php.ini ändern.
Gehen Sie dazu folgendermaßen vor:
1 Öffnen sie die PHP-Konfigurationsdatei php.ini in einem Texteditor. Die Datei finden Sie unter c:\apache\php.
2 Suchen Sie die Rubrik Paths and Directories und ändern Sie den Include-Pfad für Windows wie in Abbildung 8.1 gezeigt.
Abbildung 8.1: Ändern des Include-Pfads
3 Speichern sie die Datei und schließen Sie den Texteditor.
CD-R
OMAU
F DE
R
Wie immer finden Sie alles, was Sie brauchen, auf der CD-ROM. DasChat-Script verbirgt sich in einem Zip-Archiv namens phpopenchat-2.3.0.zip und liegt im Ordner \software\PHPOpenChat.
Im Internet finden Sie eine aktuelle Version unter http://www.ortelius.de/phpopenchat/.
2-6496.book Page 143 Tuesday, November 19, 2002 3:47 PM
144
Schweigen ist Silber, Reden ist Gold
Damit sind die Vorarbeiten getan und wir können mit der eigentlichen Installationvon PHPOpenChat beginnen:
1 Starten Sie das Installationsscript, indem Sie in einem Browser die URL http://localhost/chat/html/admin/install.php aufrufen.
2 Sie sehen nun den ersten Bildschirm des PHPOpenChat-Installers (Abbildung 8.2). Geben Sie als Erstes die Nutzerkennung für den Datenbankzugriff auf MySQL ein. In unserem Fall nehmen wir den Benutzer donald mit Passwort donald.
VORS
ICHT
!Wenn Sie den Chat auf Ihrem Webspace installieren wollen, taucht einProblem auf: Die meisten Hoster werden Sie nicht die PHP-Konfigura-tionsdatei verändern lassen. Doch zum Glück lässt sich das mit einemkleinen Trick umgehen. Kopieren Sie einfach alle Dateien aus demincludes-Verzeichnis in die Verzeichnisse html, admin, chatmail undforum. Führen Sie dann das Installationsscript wie beschrieben aus undkopieren Sie anschließend die Datei defaults_inc.php aus dem Ordneradmin in die Ordner html, chatmail und forum. Aber Achtung: WennSie per Hand etwas in der Konfigurationsdatei defaults_inc.php verän-dern, müssen Sie sie wieder in alle Verzeichnisse kopieren.
Falls Ihr Hoster den Apache-Webserver benutzt, gibt es auch einenanderen, einfacheren Weg. Erstellen Sie in den Verzeichnissen admin,forum und chatmail jeweils eine Datei namens .htacces mit folgendemInhalt:
php_value include_path ".:../../includes"
Zusätzlich erstellen Sie im html-Verzeichnis eine Datei .htaccess mitdem folgenden Inhalt:
php_value include_path ".:../includes"
Der Apache-Webserver liest diese Datei in jedem Verzeichnis undführt die darin enthaltenen Befehle aus. In unserem Fall weisen wirihn an, den include-Pfad für PHP entprechend zu setzen. Wenn esnicht funktioniert, fragen Sie Ihren Hoster, ob er .htaccess-Dateienunterstützt.
2-6496.book Page 144 Tuesday, November 19, 2002 3:47 PM
Installation des Chats
145
Abbildung 8.2: Der Installer
3 Klicken Sie auf die Schaltfläche Continue. Wenn Sie einen Bildschirm wie in Abbildung 8.3 sehen, dann steht schon mal die Datenbankverbindung. Jetzt geht es darum, in welcher Datenbank die Chat-Daten gespeichert werden sollen. Wir wählen dazu eine neue Datenbank namens chat. Geben Sie also in das Feld new database den Namen chat ein und bestätigen Sie Ihre Auswahl mit Continue.
Abbildung 8.3: Auswählen der Datenbank
2-6496.book Page 145 Tuesday, November 19, 2002 3:47 PM
146
Schweigen ist Silber, Reden ist Gold
4 Die beiden nächsten Installationsschritte benötigen keine Eingaben. Achten sie nur darauf, dass keine Fehlermeldungen erscheinen. Klicken Sie auf let’s go on und dann auf next Step.
5 Sie sind nun auf der letzten Seite der Installation (Abbildung 8.4). Hier können Sie ein paar grundlegende Dinge konfigurieren. Geben Sie zunächst einmal ein erstes Thema vor, über das sich die Chatter unterhalten sollen. Tragen Sie dazu in dem Feld Name of your first channel beispielsweise das Thema Australien ein. Als Nächstes wird unter der Rubrik Passphrase aus Sicherheitsgründen nach einer beliebigen Zeichenkette gefragt, die die Basis für die Verschlüsselung der Nick-names (Namen der chatter) bildet. Was Sie hier eingeben, ist ziemlich egal. Als Letztes stellen Sie noch die Sprache des Chats auf deutsch um.
Abbildung 8.4: Der letzte Installationsschritt
6 Klicken Sie auf Submit, um die Installation abzuschließen.
2-6496.book Page 146 Tuesday, November 19, 2002 3:47 PM
Ist da jemand?
147
8.2 Ist da jemand?Nach der anstrengenden Installation sind Sie wahrscheinlich sehr gespannt auf dieResultate. Schauen wir uns also einmal die Funktionsweise des Chats an. Wechseln Sieim Browser auf die URL http://localhost/chat/html/, um zum Login-Bildschrim desChats zu kommen (Abbildung 8.5).
Abbildung 8.5: Der Login-Bildschirm von PHPOpenChat
Jeder, der mitreden möchte, benötigt einen so genannten Nickname (Spitzname), unterdem seine Beiträge erscheinen. Kennen Sie den Film E-Mail für dich mit Tom Hanksund Meg Ryan? Hier verlieben sich die beiden Hauptdarsteller mit den SpitznamenNY152 und Shopgirl übers Internet. Ein guter Nickname verrät etwas über Sie und IhreInteressen oder Ihre Lebensanschauung, ohne Ihre wahre Identität preiszugeben.
Um den Chat zu testen, müssen Sie sich also erst einmal einen Spitznamen suchen undregistrieren:
1 Klicken Sie auf den Link ich möchte meinen Nick registrieren .
2 Sie sind jetzt auf der Registrationsseite (Abbildung 8.6). Geben Sie dort Ihren gewünschten Spitznamen, ein Passwort und eine E-Mail-Adresse ein. Alle anderen Felder sind optional.
2-6496.book Page 147 Tuesday, November 19, 2002 3:47 PM
148
Schweigen ist Silber, Reden ist Gold
Abbildung 8.6: Die Registrierung eines neuen Chatters
3 Klicken Sie auf registrieren, um einen neuen Benutzer mit dem ausgesuchten Spitznamen zu erstellen.
Jetzt können Sie auf die Login-Seite zurückkehren und sich mit der soeben erstelltenBenutzerkennung anmelden. Und schon sind Sie mittendrin im Chat, der auf IhremTestsystem natürlich etwas langweilig ist, da Sie nur mit sich selbst reden können. Aberdafür wenigstens mal auf eine neue Art und Weise. Im oberen Bereich des Bildschirmssehen Sie die Ausgaben, also die Dialoge. Im unteren Bereich können Sie einen Texteingeben (Abbildung 8.7).
2-6496.book Page 148 Tuesday, November 19, 2002 3:47 PM
Ist da jemand?
149
Abbildung 8.7: Mittendrin im Chat
Wenn Sie ein Chat-Neuling sind, müssen Sie unbedingt den Chatter-Slang kennen ler-nen. Hier gibt es viel zu beachten, damit Sie sich nicht gleich als totales Greenhorn outen.Über den Link Hilfe bekommen Sie einige Informationen. Ganz wichtig sind zum Bei-spiel Smileys, um seine momentane Stimmung auszudrücken. Smileys kennen Sie viel-leicht schon aus E-Mails. :-) heißt „lachen“ und :-( heißt „traurig sein“. Wenn Sie dieseZeichen in Ihren Text einbauen, erscheinen in der Ausgabe echte grafische Smileys. Esgibt aber noch eine Menge anderer Zeichen, die von PHPOpenChat grafisch umgesetztwerden (Abbildung 8.8). Probieren Sie einmal ein paar aus und üben Sie den Chat-Slang,es macht Spaß :-))
2-6496.book Page 149 Tuesday, November 19, 2002 3:47 PM
150
Schweigen ist Silber, Reden ist Gold
Abbildung 8.8: Zeichen, die grafisch umgesetzt werden
8.3 Die AdministrationPHPOpenChat hat eine eigene Administrationsseite, mit deren Hilfe Sie als Verant-wortlicher für einen Chat häufige Aufgaben erledigen können.
Mit dem Admin-Tool sind u.a. folgende Aktionen möglich:
■ Neue Chats zu bestimmten Themen (Channels) einrichten oder alte löschen
■ Paten festlegen, die aufpassen, dass alles in geordneten Bahnen verläuft
■ Rundschreiben an Chatter schicken, um Sie über Neuigkeiten auf dem Laufen-dem zu halten
Angenommen, Sie möchten einen zweiten Chat zum Thema Computerspiele einrich-ten. Sie wollen sich um diesen Chat kümmern und unverschämte oder nervige Chatterhinauswerfen können. Es dürfen aber nicht alle registrierten Chatter mitreden, son-dern nur ein kleiner Kreis. Das funktioniert wie folgt:
2-6496.book Page 150 Tuesday, November 19, 2002 3:47 PM
Die Administration
151
1 Wechseln sie zur URL der Administrationsseite: http://localhost/chat/html/admin/ (Abbildung 8.9).
Abbildung 8.9: Die Administrationsseite
2 Klicken Sie auf den Link Neuen Channel anlegen.
3 Füllen Sie die Felder analog zu Abbildung 8.10 aus. Indem Sie dem Channel ein Kennwort geben, können nur diejenigen Chatter den Chat-Raum betreten, die dieses Passwort kennen. Die Exit URL bestimmt, auf welche Seite der Benutzer kommt, wenn er den Chat verlässt.
2-6496.book Page 151 Tuesday, November 19, 2002 3:47 PM
152
Schweigen ist Silber, Reden ist Gold
Abbildung 8.10: Erstellen eines neuen Channels
4 Klicken Sie auf Daten speichern, um den Channel zu erstellen.
5 Klicken Sie in der Menüleiste auf Administration der Paten, um zu bestimmen, wer andere Chatter rauswerfen darf.
6 Fügen Sie Ihren eigenen Spitznamen als Paten hinzu (Abbildung 8.11).
2-6496.book Page 152 Tuesday, November 19, 2002 3:47 PM
Chat-Hygiene
153
Abbildung 8.11: Paten definieren
Das war’s, Sie können jetzt den Chat testen!
Da Sie Pate sind, erscheint im unteren Menü des Chats der neue Link Paten-Funktion,mit dessen Hilfe Sie unerwünschte Chatter rauswerfen können.
8.4 Chat-HygieneEinen Weg, wie Sie Ihren Chat „sauber“ halten können, haben Sie jetzt bereits kennengelernt: die Patenfunktion. Doch was tun, wenn ein Pate gerade nicht online ist?
Folgende Gefahren können auftauchen:
■ Ein Chatter verbreitet schmutzige oder anzügliche Dinge, benimmt sich unmög-lich und beschimpft andere.
■ Ein Chatter nutzt die Gelegenheit, um auf eine Webseite mit von Ihnen nichtakzeptiertem Inhalt zu verweisen (URLs werden im Chat automatisch als Linkdargestellt).
■ Ein Chatter benimmt sich zwar gesittet, aber alle anderen Chatter finden ihn nervigund würden ihn gerne rauswerfen.
Leider kommt so etwas relativ häufig vor, da man ja nicht kontrollieren kann, wermitchattet. Aber PHPOpenChat bietet Techniken, wie man den Inhalt der Dialoge kon-trollieren kann. Ich möchte Ihnen anhand von ein paar Beispielen zeigen, wie das geht.
Nehmen wir zunächst einmal an, Sie sind ein extrem höflicher Mensch und möchtenin Ihrem Chat die Schimpfworte Mist, Scheiße und verdammt nochmal verbieten:
1 Wechseln Sie in das includes-Verzeichnis, auf dem Testsystem ist dies das Ver-zeichnis c:\apache\htdocs\chat\includes.
2-6496.book Page 153 Tuesday, November 19, 2002 3:47 PM
154
Schweigen ist Silber, Reden ist Gold
2 Öffnen Sie die Datei defaults_inc.php in einem Texteditor. Dies ist die zentrale Konfigurationsdatei für PHPOpenChat.
3 Suchen Sie die Definition der verbotenen Wörter. Diese nennen sich NO_NO_WORDS. Ich möchte an dieser Stelle nicht wiedergeben, was da schon steht, denn sonst kommt das Buch möglicherweise auf den Index jugendgefähr-dender Schriften ...
4 Sie können beliebige weitere Wörter oder Satzteile der Liste hinzufügen, indem Sie die Worte mit einem senkrechten Strich trennen. Also:
$NO_NO_WORDS=“bisherige Wörter | Mist | Scheisse | verdammt nochmal“
5 Übrigens: Der senkrechte Strich ist auf einer deutschen Tastatur neben der (Y)-Taste in Kombination mit (AltGr) zu erreichen.
Wann immer jetzt ein Chatter eines dieser Wörter benutzt, erscheint stattdessen...Oops... auf dem Bildschirm.
Nun kann es immer noch sein, dass ein Chatter zwar keine unerwünschten Wörtermehr benutzt, aber trotzdem nervt oder unverschämt ist. Andere Chatter können ihndann ignorieren, also aus den Beiträgen ausblenden. Dabei wird der Störenfried nurfür den Ignorierer ausgeblendet, alle anderen sehen ihn aber noch. Diese Technik kann
VORS
ICHT
!
Die Dateien von PHPOpenChat wurden im UNIX-Format abgespei-chert, was bedeutet, dass die Zeilenumbrüche auf einem Windows-System nicht vorhanden sind. Deshalb wäre es sehr unkomfortabel,eine Datei mit dem Windows-Standard-Texteditor zu bearbeiten.Benutzen Sie einen professionellen Texteditor wie UltraEdit, Textpadoder JEdit. Sollten Sie keinen installiert haben, finden Sie auf der CD-ROM unter \software\Texteditoren eine Testversion von Textpadsowie den kostenlosen, sehr guten Texteditor JEdit. Für Letzterenmüssen Sie allerdings eine Java-Laufzeitumgebung installiert haben.
VORS
ICHT
!
Je mehr Worte Sie verbieten, desto langsamer wird der Chat, da jederBeitrag nach den Unwörtern durchsucht werden muss. Außerdemfinden Chatter schnell Alternativen, wenn Sie merken, dass ein Wortverboten ist.
2-6496.book Page 154 Tuesday, November 19, 2002 3:47 PM
Chat-Hygiene
155
auch dann angewendet werden, wenn man sich nur auf bestimmte Gesprächspartnerkonzentrieren möchte.
Und so ignoriert man:
1 Wählen Sie aus dem Chat-Menü den Link Einladen/Ignorieren.
2 Klicken Sie im auftauchenden Fenster auf den grünen Link Chatter Ignorieren.
3 In der rechten Auswahlbox sehen Sie alle zurzeit am Chat beteiligten Benutzer. Durch Klick auf den Linkspfeil können Sie einen Benutzer zur Auswahlbox Ignorierte Chatter übertragen und damit ignorieren (Abbildung 8.12).
Abbildung 8.12: Ignorieren anderer Chatter
PROF
ITIP
P Generell ist es aber – wie in persönlichen Gesprächen auch – eherunhöflich, jemanden zu ignorieren. Für private Gespräche besteht inPHPOpenChat die Möglichkeit, in einen privaten Raum zu gehen. Fürjeden neuen Chatter wird automatisch ein persönlicher Channel ein-gerichtet, der den Namen des Chatters trägt. Sie finden ihn in derChannel-Auswahlliste.
2-6496.book Page 155 Tuesday, November 19, 2002 3:47 PM
156
Schweigen ist Silber, Reden ist Gold
Wie die rote Hinweismeldung in Abbildung 8.12 bereits andeutet, wird ein Chatterautomatisch gesperrt, wenn eine bestimmte Anzahl Benutzer ihn ignorieren.
8.5 Anpassen des LayoutsSo, nun können Sie den Chat installieren und administrieren und kennen auch denChat-Knigge. Sicherlich wollen Sie nun einen Chat zu Ihrer Homepage hinzufügen.Dazu sollte er sich aber nicht allzu sehr von Ihrem Seitendesign absetzen, sondern sichmöglichst nahtlos integrieren. Zum Glück ist das mit PHPOpenChat machbar, Siemüssen allerdings ein wenig in die HTML-Untiefen abtauchen. Ich werde Ihnenanhand von Beispielen zeigen, wie Sie das Aussehen des Chats bestimmen können.
Zunächst wollen wir das User-Interface etwas aufgeräumter gestalten, denn weniger istmanchmal mehr. Dazu schalten wir einige der Menüs einfach aus.
Öffnen Sie die Konfigurationsdatei defaults_inc.php und suchen Sie den Bereich, denSie in Abbildung 8.13 sehen. Die Parameter entsprechen den Menüs und Sie könnensie über die Werte TRUE oder FALSE ein- bzw. ausschalten. Als Konsequenz derÄnderungen sehen Sie in Abbildung 8.14 ein sehr vereinfachtes Chat-Menü.
Abbildung 8.13: Menüpunkte auswählen
PROF
ITIP
P
Die Anzahl der zum Sperren notwendigen Ignorierer können Sie in derKonfigurationsdatei defaults_inc.php einstellen. Der zugehörige Parame-ter nennt sich $KICK_COUNT und ist standardmäßig auf 15 eingestellt.
2-6496.book Page 156 Tuesday, November 19, 2002 3:47 PM
Anpassen des Layouts
157
Abbildung 8.14: Das vereinfachte Chatmenü
Auch die Hintergrund- und die Textfarbe können Sie sehr einfach verändern.
1 Ändern Sie für die Textfarbe den Parameter DEFAULT_TEXT_COLOR in der Konfigurationsdatei um in den gewünschten Wert. Die Farbe wird in HTML-Notation angegeben (siehe Anhang). Nehmen Sie beispielsweise Blau: #0000ff.
2 Die Hintergrundfarbe wird für jeden Channel einzeln bestimmt, und zwar über die Administrationsseite. Wechseln Sie also zur URL http://localhost/chat/html/admin/ und klicken Sie auf den bearbeiten-Link des Channels Australien.
3 Schreiben Sie in das Feld Hintergrundfarbe den Wert #ffffff (Weiß) und in das Feld Farbe des Spitznamens den Wert #0000ff für Blau (Abbildung 8.15).
Abbildung 8.15: Anpassen der Farben
2-6496.book Page 157 Tuesday, November 19, 2002 3:47 PM
158
Schweigen ist Silber, Reden ist Gold
4 Bestätigen Sie Ihre Änderungen durch einen Klick auf die Schaltfläche Daten speichern.
Das veränderte Farbschema erzeugt einen Chat wie in Abbildung 8.16 dargestellt.
Abbildung 8.16: Chat in einfachem Weiß
Ein eigenes Login-FormularEs wäre doch schön, wenn sich auf Ihrer Homepage ein Login-Formular für den Chatbefinden würde, sodass Sie gänzlich auf den PHPOpenChat-Login-Bildschirm ver-zichten können. Dazu ist ein wenig Programmierarbeit nötig. Aber zum Glück für Siehabe ich ein fertiges Script schon vorbereitet.
CD-R
OMAU
F DE
R Ein ganz einfaches Login-Formular finden Sie auf der CD-ROMunter \software\PHPOpenChat\simple_login.php.
2-6496.book Page 158 Tuesday, November 19, 2002 3:47 PM
Anpassen des Layouts
159
Das Script lautet wie folgt:
<?include ("login_inc.php");include("defaults_inc.php");?><html> <body> <form action="index.<?=$FILE_EXTENSION?>" method="post"> Spitzname: <input name="nick" type="text"> <br> Passwort: <input type="password" name="password"> <br> <input name="action" type="submit" value="Los" > <input type=hidden name="<?=session_name()?>" value="<?=session_id()?>" > <input type=hidden name="entry" value="Australien" > </form> </body></html>
Die Ausgabe ist nicht besonders spektakulär (Abbildung 8.17).
Abbildung 8.17: Einfaches Login
2-6496.book Page 159 Tuesday, November 19, 2002 3:47 PM
160
Schweigen ist Silber, Reden ist Gold
Das Entscheidende ist hierbei der HTML-Sourcecode zwischen den beiden form-Tags. Diesen Code können Sie irgendwo auf Ihrer Homepage einbinden. Vergessen Sieaber nicht die include-Anweisungen.
Die Template-DateienWenn Sie zu den ewig unzufriedenen Perfektionisten gehören, könnte es sein, dass Ih-nen die bisher dargestellten Möglichkeiten der Anpassung nicht reichen. Auch dies istkein Problem, denn PHPOpenChat bietet auch für Sie etwas Passendes: die Template-Dateien.
In diesen Dateien, erkennbar durch die Endung _tpl.php, wird das Layout vieler Seitenoder Seitenbestandteile durch HTML und Stylesheet-Anweisungen festgelegt. Es ge-hört natürlich eine gehörige Portion Know-how dazu, diese Templates anzupassen,aber vielleicht gehören Sie ja zu den HTML/CSS-Hackern. Selbst wenn Sie noch großeEhrfurcht vor HTML haben, können Sie ein wenig herumprobieren. Vergessen Sie indiesem Fall nur nicht, eine Sicherheitskopie der Originaldatei zu machen, auf die Sieim Notfall zurückgreifen können.
Legen wir los! Mithilfe der Templates wollen wir eine kosmetische Verbesserung vor-nehmen. Vielleicht ist Ihnen auch schon aufgefallen, dass die Input-Zeile, in die SieIhren Betrag eintippen, sehr klein ist. Der Text ist dadurch schlecht lesbar. Um dies zuändern, müssen wir nur das entsprechende Template und die HTML/CSS-Anweisun-gen zur Erzeugung des Eingabefeldes verändern:
VORS
ICHT
!
Vermutlich steht Ihre Homepage in einem anderen Verzeichnis alsdie Chat-Dateien. Damit der oben stehende Code funktioniert, müs-sen Sie im action-Attribut den Pfad zum Chat-Verzeichnis angeben,zum Beispiel:
<form action="chat/html/index.<?=$………
Die include-Anweisungen funktionieren ohne Modifikation, weil Sieden include-Pfad für PHP in der Konfigurationsdatei php.ini ange-passt haben.
2-6496.book Page 160 Tuesday, November 19, 2002 3:47 PM
Anpassen des Layouts
161
1 Öffnen Sie mit einem Texteditor die Datei input_tpl.php im Verzeichnis c:\apache\htdocs\chat\includes und gehen Sie zur Zeile 46 (Abbildung 8.18).
Abbildung 8.18: Bearbeiten des input-Templates
2 Löschen Sie in dieser Zeile die gesamte Style-Anweisung für das Eingabefeld, also die folgenden Zeichen:
STYLE="font-size: 10px;font-family:MONOSPACE;"
Damit wird ab sofort das Standarddesign für ein Eingabefeld benutzt, sodass derText besser lesbar wird.
3 Speichern Sie die Datei und testen Sie das Ergebnis der Änderung.
PROF
ITIP
P Sie finden alle Templates im include-Verzeichnis. Wenn Sie sichzutrauen, die Templates zu verändern, ist der Schritt allerdings nichtgroß, die tatsächlichen PHP-Dateien zu ändern. Insbesondere dieAnpassung der Datei frame_set.php im Verzeichnis html ist sinnvoll. Indieser Datei wird die Größe der einzelnen Frames des Chats (Ausgabe-bereich, Eingabebereich, Menübereich) festgelegt.
2-6496.book Page 161 Tuesday, November 19, 2002 3:47 PM
162
Schweigen ist Silber, Reden ist Gold
Ergebnis dieses WorkshopsSie haben gelernt, wie man PHPOpenChat installiert, konfiguriert und bedient. Damitkönnen Sie jetzt einen Chat auf Ihrer Homepage realisieren.
2-6496.book Page 162 Tuesday, November 19, 2002 3:47 PM
Workshop 9
Jede Stimme zählt
Was wäre eine Demokratie ohne Wahlen und Umfragen?
Es sind die netten Kleinigkeiten, die Websites interessant machen. Umfragen gehörendazu, sie machen die Site „offener“. Man hat das Gefühl, mit vielen anderen Leuten zuinteragieren und kann wertvolle Informationen gewinnen. Auch für dieses Anwen-dungsgebiet gibt es fertige PHP-Scripts. Die Befragung von Surfern ist damit so ein-fach wie noch nie: Ob Musik, Sport oder Politik, ständig fordern so genannte Votings(Umfragen) zum Klicken auf.
Als Beispiel für solche Applikationen wird in diesem Kapitel das kostenlose SkriptAdvanced Poll vorgestellt, das das Erstellen diverser Umfragen zu einem Kinderspielmacht.
VORS
ICHT
!
Kostenlos ist Advanced Poll laut Lizenzbedingungen nur dann, wennSie es für private, nichtkommerzielle Zwecke einsetzen. Ansonstenmüssen Sie es registrieren lassen.
2-6496.book Page 163 Tuesday, November 19, 2002 3:47 PM
164
Jede Stimme zählt
Ergebnis dieses WorkshopsNach dem Durcharbeiten dieses Workshops werden sie in der Lage sein, Umfragen inIhre Homepage zu integrieren.
9.1 InstallationUnd so installieren Sie Advanced Poll:
1 Legen Sie ein Unterverzeichnis namens vote auf Ihrem Webserver an, im Falle von PHPTriad unter \apache\htdocs.
2 Wechseln Sie in das Verzeichnis software\AdvanvedPoll auf der CD-ROM.
3 Extrahieren Sie das Archiv pollphp.zip in das im ersten Schritt erzeugte Verzeichnis und wechseln Sie in dieses Verzeichnis.
4 Öffnen Sie die Datei include\config.inc.php in einem Texteditor und ändern Sie die Einstellungen für die Datenbankanbindung:
$POLLDB["dbName"] = "meineDB";$POLLDB["host"] = "localhost";$POLLDB["user"] = "donald";$POLLDB["pass"] = "donald";$POLLDB["class"] = "class_mysql.php";
2-6496.book Page 164 Tuesday, November 19, 2002 3:47 PM
Installation
165
5 Öffnen Sie einen Browser und gehen sie auf die Seite http://localhost/vote/db/install.php (Abbildung 9.1).
Abbildung 9.1: Der Installationsassistent von Advanced Poll
6 Klicken Sie auf Next, um mit der Installation zu beginnen. Der Assistent ist üblichen Windows- Installationsassistenten nachempfunden.
7 Bestätigen Sie, dass Sie den Lizenzbestimmungen zustimmen, und fahren Sie mit Klick auf Next fort.
8 Die notwendigen Tabellen werden nun in MySQL angelegt und mit Demo-Daten gefüllt.
9 Nachdem alle Tabellen erfolgreich angelegt wurden, müssen Sie einen Benutzer anlegen, der Administrationsrechte hat. Über diesen Admin-User können Sie dann später Advanced Poll bequem bedienen. Wählen Sie als Benutzernamen goofy mit gleichnamigem Passwort (Abbildung 9.2) und klicken Sie auf Next.
2-6496.book Page 165 Tuesday, November 19, 2002 3:47 PM
166
Jede Stimme zählt
Abbildung 9.2: Anlegen des Admin-Users
10 Die Installation ist damit beendet. Klicken Sie auf Done, um auf eine Demoseite zu gelangen, wo Sie einen ersten Eindruck von der Funktionalität von Advanced Poll bekommen können (Abbildung 9.3).
2-6496.book Page 166 Tuesday, November 19, 2002 3:47 PM
Installation
167
Abbildung 9.3: Demoseite mit Umfragen
Versuchen Sie es einfach einmal! Wählen Sie ein Betriebssystem aus und klicken Sieauf Vote. Sie sollten dann die Ergebnisse der Umfrage sehen.
Wie Sie vielleicht schon festgestellt haben, sind die Umfragen in English. Doch zumGlück ist Advanced Poll multilingual, Sie können aus einer Vielzahl von unterstütztenSprachen wählen.
PROF
ITIP
P
Advanced Poll hat eine Funktion, die es unmöglich macht, an dersel-ben Umfrage mehrfach teilzunehmen. Sobald Sie abgestimmt haben,bekommen Sie nur noch die Ergebnisse angezeigt, wenn Sie wiederauf die Umfrageseite gehen. So wird es Betrügern schwer gemacht, dieIhre Meinung „durchboxen“ wollen und einfach stundenlang abstim-men oder ein Skript dafür schreiben. Advanced Poll benutzt Cookies(kleine Dateien mit Nutzerdaten, die lokal gespeichert wird), um sichzu merken, von welchem Rechner bereits eine Stimme abgegebenwurde. Wenn Sie das Cookie löschen, dürfen Sie natürlich auch wie-der neu abstimmen ...
2-6496.book Page 167 Tuesday, November 19, 2002 3:47 PM
168
Jede Stimme zählt
9.2 Erstellen neuer Umfragen Advanced Poll beinhaltet ein komfortables Administrationstool, mit dessen Hilfe Siekein Programmierer sein müssen, um Umfragen in Ihre Website zu integrieren. Umauf die Startseite des Admin-Tools zu gelangen, öffnen Sie einen Browser und rufenSie die URL http://localhost/vote/db/admin/ auf.
Als Erstes wollen wir die Sprache umstellen:
1 Rufen Sie die URL http://localhost/vote/db/admin/ auf und loggen Sie sich mit dem Benutzernamen goofy ein. Sie gelangen in das Hauptmenü der Advanced-Poll-Administration (Abbildung 9.4).
Abbildung 9.4: Das Hauptmenü der Advanced-Poll-Administration
2 Das Admin-Tool ist einer Windows-Oberfläche nachempfunden. Wählen Sie aus dem Menü den Punkt General Settings.
3 Stellen Sie unter Language die Sprache german ein und klicken Sie auf Submit Settings am Ende der Seite. Alle weiteren Seiten werden jetzt in deutscher Sprache dargestellt.
2-6496.book Page 168 Tuesday, November 19, 2002 3:47 PM
Erstellen neuer Umfragen
169
Abbildung 9.5: Einstellen der Sprache
Damit wir loslegen können, müssen wir zunächst noch ein bisschen aufräumen unddie vorhandenen Beispielumfragen löschen. Wählen Sie dazu aus dem Menü denPunkt Umfragen. Am rechten Seitenrand haben Sie in der Spalte Aktion die Möglich-keit, bestehende Umfragen zu löschen. Löschen Sie die drei Beispielumfragen.
Um nun eine neue Umfrage anzulegen, gehen Sie folgendermaßen vor:
1 Gehen Sie in das Hauptmenü der Admin-Seite und wählen Sie General Settings. Sie gelangen wieder auf die Seite, auf der Sie die Sprache umgestellt haben.
2 Scrollen Sie etwas nach unten bis zur Rubrik Verschiedenes. Stellen Sie die Anzahl der Optionen, die bei einer Umfrage zur Auswahl stehen sollen, auf 3 ein (Abbil-dung 9.6). Aktivieren Sie außerdem unter Anzeige die Option Stimmen, damit bei den Umfrageergebnissen die tatsächliche Anzahl von Stimmen und keine Prozent-werte angegeben werden.
2-6496.book Page 169 Tuesday, November 19, 2002 3:47 PM
170
Jede Stimme zählt
Abbildung 9.6: Das Verändern globaler Parameter
3 Bestätigen Sie Ihre Änderungen mit Klick auf Einstellungen speichern.
4 Wählen Sie aus dem Hauptmenü den Punkt Neue Umfrage erstellen. Sie gelangen auf eine Seite, auf der Sie die verschiedenen Einstellungen vornehmen können.
5 Tippen Sie als Frage „Was essen Sie lieber?“ ein. Als Optionen geben Sie an: Pizza, Schnitzel, Döner . Für jede Option lässt sich eine Farbe wählen, die für die grafische Auswertung benutzt wird (Abbildung 9.7). Aktivieren Sie das Kontrollkästchen Kommentare erlauben, damit Benutzer Bemerkungen zu der Umfrage machen können.
2-6496.book Page 170 Tuesday, November 19, 2002 3:47 PM
Einbetten der Umfrage
171
Abbildung 9.7: Die Daten der neuen Umfrage
6 Wenn Sie alles eingetragen haben, klicken Sie auf Neue Umfrage erstellen und Sie gelangen auf die Übersichtsseite, wo Ihre neue Umfrage erscheint. Merken sie sich die ID der neuen Umfrage, Sie brauchen sie später, um die Umfrage in Ihre Webseite einzubauen. Die ID wird vermutlich den Wert 4 haben, da schon drei Umfragen vorhanden sind..
So, damit haben Sie die Umfrage erstellt. Das ist aber erst die halbe Miete, schließlichwollen Sie diese Umfrage ja Benutzern zugänglich machen. Wie das geht, erfahren Sieim nächsten Unterkapitel.
9.3 Einbetten der UmfrageIn der Advanced Poll-Installation ist leider keine einfache Vorlage dabei, die Ihnenzeigt, wie man Umfragen in HTML-Seiten einbettet. Also müssen wir die Ärmel hoch-krempeln und ein bisschen programmieren. Zunächst gibt es ein paar Dinge, die im-mer ausgeführt werden müssen, wenn Sie Advanced Poll auf Ihren Seiten benutzenwollen. Diese Anweisungen, die immer dieselben sind, wollen wir in einer eigenstän-digen Datei namens poll_init.php ablegen.
2-6496.book Page 171 Tuesday, November 19, 2002 3:47 PM
172
Jede Stimme zählt
1 Öffnen Sie einen Texteditor und legen Sie eine Datei namens poll_init.php in Ihrem Advanced-Poll-Verzeichnis \apache\htdocs\vote\db an.
2 Als Erstes muss die Variable $poll_path definiert werden, die den Pfad zum Advanced-Poll-Verzeichnis enthält.
<?php$poll_path = "c:\apache\htdocs\vote\db";
3 Danach muss die Datei poll_cookie.php eingebunden werden.
require "./poll_cookie.php";
4 Jetzt wird mit der header-Anweisung ein HTTP-Header geschickt, der den Browser anweist, die Seite nicht in seinem Cache zu speichern. Das ist sinnvoll, da Sie ja immer die neuesten Umfrageergebnisse sehen wollen und keine zwischengespeicherte Seite.
header("Expires: Mon, 01 Jan 2000 05:00:00 GMT");header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");header("Cache-Control: no-cache, must-revalidate");header("Pragma: no-cache");
5 Als Nächstes werden ein paar notwendige Dateien eingebunden:
require $poll_path."/include/config.inc.php";require $poll_path."/include/$POLLDB[class]";require $poll_path."/include/class_poll.php";
CD-R
OMAU
F DE
R Wenn Sie sich die Mühe nicht machen wollen, die Datei selbst zuerstellen, können Sie sie auch von der CD-ROM kopieren. Sie findenSie im Verzeichnis \software\AdvancedPoll.
VORS
ICHT
!
Wenn Sie Advanced Poll auf Ihrem Webspace installieren, wird derPfad anders lauten. Dann müssen Sie die Datei entsprechend anpassen.
2-6496.book Page 172 Tuesday, November 19, 2002 3:47 PM
Einbetten der Umfrage
173
6 Jetzt sind alle Vorarbeiten getan und das eigentliche Programm kann starten. Es werden die nötigen Objekte erzeugt und eine Verbindung zur Datenbank wird hergestellt:
$CLASS["db"] = new polldb_sql;$CLASS["db"]->connect();
$php_poll = new poll();?>
7 Speichern Sie die Datei.
Hier noch einmal das vollständige Listing:
<?php$poll_path = "c:\apache\htdocs\vote\db";
require "./poll_cookie.php";
header("Expires: Mon, 01 Jan 2000 05:00:00 GMT");header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");header("Cache-Control: no-cache, must-revalidate");header("Pragma: no-cache");
require $poll_path."/include/config.inc.php";require $poll_path."/include/$POLLDB[class]";require $poll_path."/include/class_poll.php";
$CLASS["db"] = new polldb_sql;$CLASS["db"]->connect();
$php_poll = new poll();?>
Wenn Sie die soeben erstellte Datei zur Verfügung haben, dann ist der Rest, nämlichdas Anzeigen einer Umfrage auf Ihrer Webseite, ein leichte Sache.
Alles, was Sie noch tun müssen, ist die Datei poll_init.php einzubinden und dann denBefehl zum Anzeigen einer Umfrage aufzurufen. Der Befehl lautet:
echo $php_poll->poll_process(4);
4 ist die ID der Umfrage, die Sie anzeigen wollen.
2-6496.book Page 173 Tuesday, November 19, 2002 3:47 PM
174
Jede Stimme zählt
Nachfolgend sehen Sie ein einfaches Beispiel, das eine Ausgabe wie in Abbildung 9.8erzeugt:
<?php include "c:\apache\htdocs\vote\db\poll_init.php"; ?><html><body> <h1>Umfrage</h1> <?php echo $php_poll->poll_process(4); ?></body></html>
Abbildung 9.8: Eine einfache Umfrage
Um das Prinzip deutlich zu machen, lassen Sie uns noch eine neue Umfrage erstellenmit folgenden Daten:
Frage: Wie oft treiben Sie Sport?
Optionen:
Mindestens einmal pro Woche
Mindestens einmal pro Monat
Mindestens einmal pro Jahr
Wenn Sie sich diese Umfrage auf der Admin-Seite in der Übersicht anschauen, dannwird sie vermutlich die ID 5 haben.
2-6496.book Page 174 Tuesday, November 19, 2002 3:47 PM
Einbetten der Umfrage
175
Um die neue Umfrage in das obige Beispiel einzubetten, können Sie das Listing zumBeispiel folgendermaßen abändern:
<?php include "c:\apache\htdocs\vote\db\poll_init.php"; ?><html><body> <h1>Umfrage</h1> <table> <tr> <td> <?php echo $php_poll->poll_process(4); ?> </td> <td> <?php echo $php_poll->poll_process(5); ?> </td> </tr> </table></body></html>
Die beiden Umfragen werden in einer HTML-Tabelle nebeneinander angezeigt (Abbil-dung 9.9).
Abbildung 9.9: Zwei Umfragen auf einer Webseite
2-6496.book Page 175 Tuesday, November 19, 2002 3:47 PM
176
Jede Stimme zählt
9.4 Anpassen des ErscheinungsbildesSie können jetzt Umfragen erstellen und auch anzeigen, aber auch hier entsteht dasProblem, dass Ihnen das Design der Umfrage vielleicht nicht gefällt oder nicht zu IhrerWebseite passt.
Um dieses Problem möglichst elegant zu lösen, arbeitet Advanced Poll mit so genann-ten Templates, also Vorlagen, die benutzt werden, um das Erscheinungsbild der Um-frage zu beeinflussen. Die Vorlagen benutzen dazu HTML- und PHP-Anweisungen.Sie werden in diesem Unterkapitel lernen, wie Sie Templates erstellen und anpassenkönnen, um das Design Ihrer Umfragen individuell anzupassen.
Advanced Poll hat schon ein paar fertige Templates mitinstalliert. Schauen wir unszunächst einmal an, wie man diese Templates einer Umfrage zuweisen kann. Der dazunötige Befehl lautet:
$php_poll->set_template_set("template_name");
Ändern Sie also das Listing aus dem letzten Unterkapitel wie folgt ab, um die beidenUmfragen mit zwei verschiedenen Designs zu versehen:
<?php include "c:\apache\htdocs\vote\db\poll_init.php"; ?><html><body> <h1>Umfrage</h1> <table> <tr> <td> <?php $php_poll->set_template_set("plain"); echo $php_poll->poll_process(4); ?> </td> <td> <?php $php_poll->set_template_set("simple"); echo $php_poll->poll_process(5);
PROF
ITIP
P Sie können auch ohne Templates kleinere Änderungen am Design vor-nehmen. Wählen Sie dazu aus dem Menü den Punkt Allgemeine Ein-stellungen. Hier können Sie in dem Bereich Tabellen, Schrift und Farbemit den Einstellungen herumspielen.
2-6496.book Page 176 Tuesday, November 19, 2002 3:47 PM
Anpassen des Erscheinungsbildes
177
?> </td> </tr> </table></body></html>
Die Parameter plain und simple sind die Namen zweier mitgelieferter Templates.Das Ergebnis sehen Sie in Abbildung 9.10.
Abbildung 9.10: Unterschiedliche Design-Vorlagen ( links plain, rechts simple)
Sie sind natürlich nicht auf die mitgelieferten Templates angewiesen, sondern Sie kön-nen einfach Ihre eigenen schreiben. Wie dies funktioniert, möchte ich Ihnen anhandeines Beispiels zeigen:
1 Gehen Sie auf die Administrationsseite von Advanced Poll (http://localhost/vote/db/admin/).
2 Wählen Sie den Punkt Templates aus dem Menü.
3 Am rechten Fensterrand können Sie jetzt die Vorlage auswählen, die Sie verän-dern oder ansehen möchten (Abbildung 9.11).
2-6496.book Page 177 Tuesday, November 19, 2002 3:47 PM
178
Jede Stimme zählt
Abbildung 9.11: Die Template-Verwaltung
4 Klicken Sie auf den Link Neues Template Set.
5 Geben Sie als Namen für das Template meinDesign ein (Abbildung 9.12) und kli-cken Sie auf Speichern.
VORS
ICHT
!
Vergessen Sie nicht, die kleine Grafik neben der Optionsliste zu kli-cken, nachdem Sie eine Vorlage ausgewählt haben. Andernfalls über-schreiben Sie das derzeit ausgewählte Template.
2-6496.book Page 178 Tuesday, November 19, 2002 3:47 PM
Anpassen des Erscheinungsbildes
179
Abbildung 9.12: Erstellen eines neuen Templates
6 Wählen Sie aus der Liste am rechten Fensterrand das soeben angelegte Template aus und klicken Sie auf die kleine Grafik neben der Liste.
7 Wenn Sie auf der richtigen Seite sind, sehen Sie nun drei leere Textbereiche mit den Überschriften display_head, display_loop und display_foot. Diese Bereiche definieren,
■ was als Überschrift in der Umfrage steht (display_head),
■ wie die verschiedenen Optionen dargestellt werden (display_loop),
■ wie abschließende Elemente, zum Beispiel die Wähl-Schaltfläche, aussehen(display_foot).
Diese Textbereiche werden wir nacheinander füllen, um ein schlichtes Design zu ver-wirklichen. Die Umfrage soll in vier Zeilen ohne irgendwelchen Schnickschnack dar-gestellt werden. Die erste Zeile enthält die Frage, die zweite die Optionen, die dritteden Button zum Abstimmen und die vierte Zeile den Link zu den Ergebnissen der Um-frage. Also, los geht’s:
1 Tippen Sie folgende Zeilen in den Textbereich display_head:
<form method="post" action="$this->form_forward"><div style="background-color: #DDDDDD"> <b>$question</b> <br>
Die Variable $question beinhaltet dabei die Frage.
2-6496.book Page 179 Tuesday, November 19, 2002 3:47 PM
180
Jede Stimme zählt
2 Als Nächstes füllen Sie den Textbereich display_loop:
<input type="radio" name="option_id" value="$data[option_id]">$data[option_text]
Hier wird ein HTML-Radio-Button definiert. Die notwendigen Daten wie Options-ID und Text enthält das Array $data. Dieser Code wird so lange wiederholt, wieDaten vorhanden sind. In unserem Fall also drei Mal, sodass wir als Ergebnis dreiRadio-Buttons erhalten, die nebeneinander liegen.
3 Jetzt fehlt nur noch der Textbereich display_foot. Der Inhalt ist etwas länger, weil hier auch der Link zu den Ergebnissen definiert ist:
<br><input type="submit" value="Abstimmen" class="input" name="submit"><input type="hidden" name="action" value="vote"><input type="hidden" name="poll_ident" value="$poll_id"><br><a href="$this->form_forward?action=results&poll_ident=$poll_id"> Ergebnisse</a></form></div>
4 Klicken Sie auf Speichern.
PROF
ITIP
P Vielleicht haben Sie sich gewundert, dass Sie eine PHP-Variable wie$question ohne die umschließenden Skript-Tags <?php ... ?>benutzen können. Das ist hier möglich, weil PHP die Templates nocheinmal parst und erkennt, dass Variablen darin enthalten sind. In einernormalen HTML-Seite würde das aber nicht funktionieren.
2-6496.book Page 180 Tuesday, November 19, 2002 3:47 PM
Anpassen des Erscheinungsbildes
181
Über die Vorschau-Funktion im linken oberen Fensterbereich können Sie sich ein Bildmachen, welche Auswirkungen Ihre Änderungen oder neu erstellten Templates haben(Abbildung 9.13).
Abbildung 9.13: Die Vorschau-Funktion
Sie haben nun ein Erscheinungsbild für die Umfrage festgelegt. Leider genügt das nochnicht, denn Sie müssen auch noch ein Design für die Ergebnisse definieren. Sollten SieKommentare zulassen, müssen Sie auch für diese ein Design programmieren oder einvorhandenes anpassen.
Die verschiedenen Vorlagen für die Rubriken Umfrage (Poll View), Ergebnisse (PollResult) und Kommentare (Comment) erreichen Sie über Links im oberen linken Fens-terbereich (Abbildung 9.14).
Abbildung 9.14: Menü für Template-Rubriken
Gehen Sie folgendermaßen vor, um die Vorlage für Umfrage-Ergebnisse festzulegen:
1 Klicken Sie auf den Link zu Poll Result (Abbildung 9.14).
2-6496.book Page 181 Tuesday, November 19, 2002 3:47 PM
182
Jede Stimme zählt
2 Tippen Sie folgenden Code in den Textbereich display_head:
<table><tr> <td bgcolor="yellow"> <b>$question</b> </td></tr><tr> <td bgcolor="white">
3 Das Code-Fragment für display_loop ist simpel, da wir auf eine grafische Darstel-lung mit Balkendiagramm verzichten. Es lautet:
$option_text : $vote_count <br>
4 Jetzt fehlt nur noch display_foot, wo wir die Gesamtzahl der Stimmen ausgeben:
</td></tr><tr> <td bgcolor="#00ff00"> <b>Insgesamt wurden $total_votes Stimmen abgegeben</b> </td></tr></table>
Das Resultat können Sie sich wieder über die Vorschau-Funktion ansehen (Abb. 9.15).
Abbildung 9.15: Die Ergebnisse in der Vorschau
2-6496.book Page 182 Tuesday, November 19, 2002 3:47 PM
Hilfe!
183
9.5 Hilfe!Probleme sind normal, jeder hat sie, jeder ärgert sich, jeder wünscht sich manchmaleine Welt ohne diese dämlichen, verflixten Computer.
Wenn Ihre Frustationsschwelle erreicht ist und Sie nicht mehr weiter wissen, dann gibtes zum Glück eine Adresse, wo Sie Hilfe bekommen können: die offizielle Seite vonAdvanced Poll. Dort werden auch noch andere Scripts angeboten und u.a. auch eindeutschsprachiges Supportforum (Abbildung 9.16).
Die Adresse lautet: http://www.proxy2.de.
Abbildung 9.16: Das deutsche Supportforum für Advanced Poll
2-6496.book Page 183 Tuesday, November 19, 2002 3:47 PM
184
Jede Stimme zählt
Ergebnis dieses WorkshopsMit Hilfe des in diesem Workshop gewonnenen Wissens können Sie beliebige Umfragenmit dem PHP-Skript Advanced Poll in Ihre Website integrieren.
2-6496.book Page 184 Tuesday, November 19, 2002 3:47 PM
Workshop 10
Sagen Sie Ihre Meinung
In einem Forum über Gott und die Welt streiten
Foren und Pinnwände auf einer Website gelten als Königsweg zu hohen Besucherzah-len. Außerdem sind sie ein gutes Instrument, die Besucher mit aktuellen Informatio-nen zu versorgen, ohne selbst alle Inhalte bereitstellen zu müssen.
Mit der Einrichtung eines Forums ist es allerdings nicht getan. Die Kunst besteht darin,die Surfer durch geschicktes Foren-Management zum Schreiben zu bewegen. Ist das ge-schafft, kann sich ein solches Forum schnell zu einem virtuellen Publikumsmagnetenentwickeln. Die einzelnen Themen im Forum, Threads genannt, bieten teilweise unter-haltsamen, vielfach auch informativen Lesestoff. Diese sind oft interessanter als dieLektüre langatmiger und visuell schlecht aufbereiteter Artikel.
2-6496.book Page 185 Tuesday, November 19, 2002 3:47 PM
186
Sagen Sie Ihre Meinung
Ergebnis dieses WorkshopsIn diesem Workshop werden Sie lernen, wie man ein Forum einrichtet, konfiguriertund administriert.
10.1 Historisch gewachsen Webforen sind nichts weiter als die Fortsetzung der Newsgroups-Kultur aus alten In-ternet-Tagen mit den Mitteln des Webs. Das bedeutet in erster Linie ein ansprechendesgrafisches User-Interface zur Eingabe von Diskussionsbeiträgen und deren Verknüp-fung mit einer Datenbank. Auch an die Darstellung der Diskussionsbäume und Inhalteeines Forums stellt der Surfer hohe Ansprüche. Insbesondere die Zusammenführungder zu unterschiedlichen Zeitpunkten eingegebenen User-Beiträge zu einem über-schaubaren Ganzen zählt zu den Herausforderungen für eine Forum-Applikation.
Das Angebot an Software, die diesen Anforderungen gerecht werden, ist groß. DiePalette reicht von kommerziellen Community-Lösungen bis zur Minimallösung ohneDatenbankanbindung. Im Umfeld von PHP und MySQL hat sich eine besonders krea-tive Entwicklergemeinde etabliert, aus deren Fundus zahlreiche Forumapplikationenstammen. Der Star der Szene ist ohne Zweifel Phorum, ein Open-Source-Projekt, zudem sich zahlreiche PHP-Programmierer zusammengetan haben.
Neben PHP setzt Phorum eine SQL-Datenbank voraus, vorzugsweise MySQL. Aberauch andere Produkte wie PostgreSQL, Sybase und MS SQL Server werden unterstützt.
Um Phorum zu installieren, muss man nicht unbedingt ein ausgebuffter PHP-Programmierer sein. Rudimentäre Kenntnisse reichen aus, um sein Web-angebot um
2-6496.book Page 186 Tuesday, November 19, 2002 3:47 PM
Die Installation
187
diese interaktive Komponente zu erweitern. Der PHP-Profi hat darüber hinaus dieChance, das Forums-Grundgerüst individuell anzupassen und zu erweitern – sowohlbei den Funktionen wie auch beim Design. Wer sich auf den Standard beschränkt,kann über das Administrations-Tool das Design nach seinen Wünschen beeinflussen,ohne programmieren zu müssen.
10.2 Die InstallationZur Installation der Phorum-Software führen Sie die nächsten Schritte aus:
1 Extrahieren Sie das Archiv in das Dokumentenverzeichnis Ihres Webservers (c:\apache\htdocs). Sie finden nach dem Entpacken ein Verzeichnis namens phorum-3.3.2c vor (Abbildung 10.1).
Abbildung 10.1: Extrahieren der nötigen Dateien
2 Ändern Sie den Verzeichnisnamen von phorum-3.3.2c in phorum ab. Das macht es später einfacher, die Phorum-Applikation anzusteuern.
CD-R
OMAU
F DE
R
Im Verzeichnis software\phorum auf der CD-ROM finden Sie dasArchiv phorum-3.3.2c.zip, das alle notwendigen Dateien von Phorumenthält.
Im Internet erhalten Sie eine aktuelle Version unter http://www.phorum.org.
2-6496.book Page 187 Tuesday, November 19, 2002 3:47 PM
188
Sagen Sie Ihre Meinung
3 Öffnen Sie einen Browser und tippen Sie als URL http://localhost/phorum/admin/ ein. Da Phorum bisher noch nicht installiert ist, meldet sich nun das Installations-script (Abbildung 10.2). Wählen Sie als Datenbank MySQL und klicken Sie auf Submit.
Abbildung 10.2: Auswahl der Datenbank
4 Als Nächstes müssen Sie die Datenbank-Einstellungen vornehmen. Geben Sie dazu als Datenbankserver localhost ein, als Datenbankname meineDB und als Datenbank-User donald mit gleichnamigem Passwort (Abbildung 10.3). Klicken Sie auf Submit, um zum nächsten Bildschirm zu gelangen.
Abbildung 10.3: Einstellen der Datenbank-Parameter
2-6496.book Page 188 Tuesday, November 19, 2002 3:47 PM
Die Installation
189
5 Um Phorum zu administrieren, muss man sich als Administrator einloggen. Dieser Benutzer wird Admin-User genannt. Den Admin-User müssen sie nun anlegen. Geben Sie dazu einen Benutzernamen und ein Passwort an, zum Bei-spiel den Namen goofy mit gleichnamigem Passwort (Abbildung 10.4).
Abbildung 10.4: Erstellen des Admin-Benutzers
6 Im letzten Schritt der Installation müssen Sie nur noch die URL eingeben, unter der Phorum erreicht werden kann, und eine E-Mail-Adresse, zu der Störungsmeldungen geschickt werden (Abbildung 10.5). Die URL wird dabei meist schon automatisch richtig ausgewählt. Klicken Sie auf Submit, um die Installation fertig zu stellen.
Abbildung 10.5: Eingabe von URL und E-Mail-Adresse
2-6496.book Page 189 Tuesday, November 19, 2002 3:47 PM
190
Sagen Sie Ihre Meinung
Sind diese Basiseinstellungen durchgeführt, müssen Sie als Nächstes mindestens einForum neu anlegen. Auch dies geschieht mithilfe des Adminstrations-Tools. Vorher soll-ten Sie jedoch noch die Sprache für das Forum von Englisch in Deutsch ändern. Phorumunterstützt eine Vielzahl anderer Sprachen für die Foren, allerdings nicht zur Administ-ration. Diese bleibt leider immer in English. Selbst Sprachen wie Ukrainisch, Polnisch,Chinesisch und Russisch stehen zur Auswahl. Um Ihr Forum an ein anderssprachigesPublikum anzupassen, laden Sie aus dem Fundus von http://www.phorum.org unter derRubrik Languages die passende Sprachdefinition. Die Seite ist wegen der vielen unter-schiedlichen Versionen der Sprachfiles etwas verwirrend. Achten Sie beim Downloaddarauf, dass die Version mit der des Forums übereinstimmt. Auf der CD-ROM findenSie im Unterverzeichnis software\phorum die Datei german.php für deutsche Sprach-unterstützung.
Um diese Sprachdatei benutzen zu können, gehen Sie folgendermaßen vor:
1 Übertragen Sie die Datei german.php in das Phorum-Unterverzeichnis lang auf Ihrem Server.
Abbildung 10.6: Kopieren der Sprachdatei
2 Öffnen Sie einen Browser und gehen Sie zur URL http://localhost/phorum/admin/. Diesmal kommen Sie auf die Login-Seite des Phorum-Admininstrations-Tools. Geben Sie hier die Daten Ihres Admin-Users ein, also goofy mit Passwort goofy. Nach dem Einloggen präsentiert sich Ihnen das Hauptmenü der Phorum-Administration (Abbildung 10.7).
2-6496.book Page 190 Tuesday, November 19, 2002 3:47 PM
Die Installation
191
Abbildung 10.7: Das Hauptmenü der Administrationsseite
3 Wählen Sie auf der Phorum-Administrationsseite den Punkt Global Options im Menü Phorum Setup.
4 Hier können sie als Default Language alle Sprachen auswählen, die im lang-Ver-zeichnis als Dateien vorhanden sind. Wählen Sie also german für die deutsche Sprachunterstützung (Abbildung 10.8).
Abbildung 10.8: Einstellen der Sprache für die Foren
2-6496.book Page 191 Tuesday, November 19, 2002 3:47 PM
192
Sagen Sie Ihre Meinung
10.3 Neues Forum einrichtenNach der erfolgreichen Installation können Sie sich über den Menüpunkt New Forumauf der Administrationsseite an die Einrichtung des ersten Forums machen. Es gibt dabeieine Unzahl von Parametern, die Sie verändern und individuell festlegen können, ohneeine Zeile PHP-Code programmieren zu müssen. Es gibt einige Pflichtfelder, die ausge-füllt werden müssen, andernfalls scheitert die Einrichtung. Gehen Sie wie folgt vor:
1 Wählen Sie den Menüpunkt New Forum unter der Rubrik Forum Maintenance auf der Administrationsseite. Es öffnet sich eine Seite, in der Sie sehr viele Informatio-nen eingeben können. Für den Anfang reicht es aber, wenn Sie einen Namen, eine Beschreibung und einen Tabellennamen festlegen (Abbildung 10.9).
Abbildung 10.9: Parameter für neues Forum eingeben
2-6496.book Page 192 Tuesday, November 19, 2002 3:47 PM
Neues Forum einrichten
193
2 Scrollen Sie zum Ende der Seite und klicken Sie auf Submit. Sie erhalten eine Bestätigungsmeldung und befinden sich jetzt auf der Administrationsseite für das UFO-Forum (Abbildung 10.10).
Abbildung 10.10: Administrationsseite des UFO-Forums
3 Geben Sie http://localhost/phorum/ in die URL-Leiste des Browsers ein, um zur Startseite des neuen Forums zu gelangen. Hier sehen Sie, wie sich das Forum den Benutzern präsentiert (Abbildung 10.11). Zurzeit ist das Forum noch sehr lang-weilig, da keine Beiträge existieren. Das werden wir aber bald ändern!
Abbildung 10.11: Das noch leere UFO-Forum
2-6496.book Page 193 Tuesday, November 19, 2002 3:47 PM
194
Sagen Sie Ihre Meinung
Damit steht das erste PHP-Forum und kann von interessierten Surfern mit Leben er-füllt werden. Alle Beiträge werden in MySQL-Datenbanken gespeichert. Dazu legt dasAdministrations-Tool bei der Einrichtung von Foren mehrere Tabellen an. DieGrundparameter aller eingerichteten Foren liegen in der Tabelle forums. Das Scriptindex.php generiert daraus die Forenübersicht. Zu jedem eingerichteten Forum gibt eszwei weitere Tabellen. In der einen sind Parameter wie Verfasser, Betreff und Themen-ID (Thread-ID) abgelegt, während die zweite die Nachrichtentexte enthält. Aus dieserDatenbasis erstellt das Script list.php die Ansicht der Nachrichten und Threads zu ei-nem Forum. Grafische Elemente, die sich im Verzeichnis /phorum/images/ befinden,sorgen für eine übersichtliche Darstellung auch umfangreicher Diskussionen. DieÜbersicht ist eine Tabelle mit Thema, Autor, Anzahl der Antworten und Datum derletzten Antwort. Mit einem Klick auf die Zelle mit dem Thema rufen Benutzer dieNachricht ab.
Die Präsentation der Nachrichten kann in zwei Varianten erfolgen: eine einfache Auf-listung der Threads oder die gesamte Baumstruktur. Umschalten kann man mit einemKlick auf Antworten anzeigen bzw. Zeige nur Themen.
10.4 Einen eigenen Beitrag schreibenWill ein Forumsbenutzer einen neuen Beitrag erstellen, klickt er auf Neues Thema unddas Script post.php startet das Eingabeformular (Abbildung 10.12).
Abbildung 10.12: Ein erster Beitrag
2-6496.book Page 194 Tuesday, November 19, 2002 3:47 PM
Einen eigenen Beitrag schreiben
195
Auszufüllen sind die Felder Namen, E-Mail-Adresse, Betreff und der eigentliche Nach-richtentext. Als Zusatzoption kann der Verfasser noch festlegen, dass Antworten aufdiese Message an seine E-Mail-Adresse gehen sollen. Dazu ist das Kästchen am Formu-larende zu aktivieren.
Klickt ein User dann im Forum auf diesen Beitrag, erscheint dieser auf dem Bildschirmund das Formular für eine Antwort wird gleich angehängt (Abbildung 10.13).
Abbildung 10.13: Auf Beiträge antworten
Weitere Links im Forum dienen zur Navigation im Forum, zum Beispiel, wenn dieThreadliste sich über mehrere Bildschirmseiten erstreckt.
In unserem Beispiel gibt es keine Benutzerverwaltung, d.h., Benutzer des Forums müs-sen sich nicht erst einloggen, bevor Sie Beiträge schreiben können. Mit einem einzigenMausklick kann man loslegen und eigene Beiträge oder Antworten im Forum platzie-ren. Wer aber eine Benutzerverwaltung im Forum möchte, kann das mit Phorum auchimplementieren. Wie dies funktioniert, erfahren Sie im nächsten Abschnitt.
2-6496.book Page 195 Tuesday, November 19, 2002 3:47 PM
196
Sagen Sie Ihre Meinung
10.5 SchutzmechanismenWilden Attacken anonymer Surfer ist der Betreiber eines Forums zum Glück nichtschutzlos ausgeliefert. Er kann wahlweise E-Mail- und IP-Adressen oder Namen sperren.Dazu müssen Sie die Scripts bad-emails.php, bad-hosts.php oder bad-names.php iminclude-Verzeichnis modifizieren. Um Missbrauch des Forums zu vermeiden, kannaußerdem eine so genannte Badword-Liste geführt werden, die unerwünschte Begriffeausfiltert. Die Liste der Unworte liegt in der Datei mit dem treffenden Namen censor.php.
Die Foren können auch mit einem Passwort geschützt werden. Allerdings ist dieseVorgehensweise etwas mühsam, denn jeder Besucher benötigt eine Zugangskennungund ein Passwort. Dafür gibt es prinzipiell zwei Möglichkeiten:
■ Wenn sich ein Benutzer, der bisher noch keine Kennung hatte, versucht einzu-loggen, kann er sich selbst als neuen Benutzer registrieren.
■ Sie als Administrator legen neue Benutzer an und vergeben die Kennung entspre-chend.
Gehen Sie folgendermaßen vor, um einen neuen Benutzer anzulegen:
1 Wählen Sie den Punkt UserAdmin unter Forum Maintenance auf der Administra-tionsseite.
2 Sie erhalten eine Übersicht aller angelegter Benutzer. Zurzeit gibt es nur den Admin-User. Klicken Sie auf den Link Add User, um einen neuen Benutzer hin-zuzufügen.
3 Geben Sie alle benötigten Informationen für den neuen Benutzer ein. Sie müssen zumindest eine Kennung, den Namen, die E-Mail-Adresse und das Passwort bestimmen (Abbildung 10.14). Klicken sie auf Save.
PROF
ITIP
P
Es ist Ihre Entscheidung, ob Sie eine Liste mit Unworten führen wol-len. Meistens erreicht man damit nicht allzuviel, da böswillige Leuteimmer einen Weg finden, „Müll“ in Foren zu schreiben.
2-6496.book Page 196 Tuesday, November 19, 2002 3:47 PM
Anpassen des Layouts
197
Abbildung 10.14: Anlegen eines neuen Benutzers
4 Jetzt können Sie sich unter der neuen Kennung einzuloggen.
10.6 Anpassen des LayoutsPhorum ist schnell installiert und lauffähig. In den wenigsten Fällen dürfte das Stan-dardlayout jedoch nahtlos in ein bestehendes Design einer Site passen. Für individu-elle Modifikationen besteht großer Spielraum, wobei man nicht einmal in den Codeder einzelnen Scripts eingreifen muss.
Wenn Ihnen die Navigationstexte des Forums zum Beispiel nicht passen, rufen Sie ein-fach die Sprachdatei auf und nehmen dort die gewünschten Änderungen vor. Wichtig istdabei nur, dass die Variablenwerte in Anführungszeichen stehen und die Zeilen mit ei-nem Semikolon enden. Auch wer keine PHP-Kenntnisse besitzt, kann hier aktiv werden.Allerdings sollte man die Auswirkungen genau überprüfen. Zum Beispiel können zu lan-ge Formulierungen die Präsentation des Forums auf dem Bildschirm verunstalten.
Die Farben der verschiedenen Forum-Bestandteile lassen sich über das Administrations-Tool verändern. Dabei haben Sie zwei Möglichkeiten:
■ Sie verändern die globalen Voreinstellungen (Default-Werte) der Farben. Dadurchwird die geänderte Darstellung für jedes Forum übernommen.
■ Sie verändern die Farben nur für einzelne Foren, die Standardeinstellungen sinddavon nicht betroffen. Gehen Sie dazu auf die Administrationsseite eines bestimm-ten Forums und wählen den Punkt Edit Properties. Hier können Sie die Farben ein-stellen.
2-6496.book Page 197 Tuesday, November 19, 2002 3:47 PM
198
Sagen Sie Ihre Meinung
Folgendes Beispiel soll die Vorgehensweise für die erste Möglichkeit verdeutlichen:
1 Wählen Sie auf der Administrationsseite den Punkt HTML Settings unter Phorum Setup.
2 Ändern Sie das Farbschema wie in Abbildung 10.15 gezeigt ab und bestätigen Sie Ihre Eingaben durch Klick auf die Schaltfläche Update. Wenn Ihnen die HTML-Notation für Farbwerte unbekannt ist, können Sie die Bedeutung im Anhang nachschlagen.
Abbildung 10.15: Ein alternatives Farbschema
3 Alle Foren haben nun das neue Standard-Farbschema. Testen Sie das Aussehen, indem Sie das UFO-Forum erneut aufrufen. Wie gefällt es Ihnen?
2-6496.book Page 198 Tuesday, November 19, 2002 3:47 PM
Anpassen des Layouts
199
Die PHP-Scripts header.php und footer.php im include-Verzeichnis der Phorum-Installation sind eine weitere Spielwiese für individuelle Anpassungen. Hier kann manmit wenigen HTML-Zeilen nachhaltige Auswirkungen erzielen. Hintergrundfarbenoder der Einbau eines Logos sind damit kein Problem. Noch größere Effekte lassensich durch den geschickten Einbau von Style-Definitionen erzielen. Wichtig ist beimBearbeiten nur, dass der integrierte PHP-Code (im Listing fett) unverändert erhaltenbleibt. In der Rohfassung sieht das Script header.php wie folgt aus (zur Übersicht wirddas Script erst ab dem body-Tag dargestellt):
<body bgcolor="<?php echo (empty($ForumBodyColor)) ? $default_body_color : $ForumBodyColor; ?>" link="<?php echo (empty($ForumBodyLinkColor)) ? $default_body_link_color : $ForumBodyLinkColor; ?>" alink="<?php echo (empty($ForumBodyALinkColor)) ? $default_body_alink_color : $ForumBodyALinkColor; ?>" vlink="<?php echo (empty($ForumBodyVLinkColor)) ? $default_body_vlink_color : $ForumBodyVLinkColor; ?>">
<div class="PhorumForumTitle"> <strong> <?php echo $ForumName; ?> </strong></div>
<br />
Möchten Sie nun zum Beispiel einen eigenen Text am Seitenanfang einfügen, müssensie nur entsprechende HTML-Anweisungen hinter dem body-Tag einfügen:
<h3>Diese Foren werden Ihnen mit freundlicher Unterstützung der Firma <b><i>Alien Technologies </b></i> präsentiert</h3><br>
Dieser Text erscheint jetzt am Beginn jeder Seite (Abbildung 10.16).
2-6496.book Page 199 Tuesday, November 19, 2002 3:47 PM
200
Sagen Sie Ihre Meinung
Abbildung 10.16: Angepasster Seitenheader
Das Script footer.php bestimmt im Gegensatz zu header.php das Aussehen des Seiten-fußes. Hier ist zum Beispiel festgelegt, dass die Grafik „powered by Phorum“ auf jederSeite ganz unten erscheint. Hier ist das Originalscript:
<br /><div align="center"> <a href="http://phorum.org"> <img src="images/button.gif" width="90" height="30" alt="phorum.org" border="0" /> </a></div></body></html>
Um diese Grafik zu entfernen, müssen Sie nur das div-Tag mit eingeschlossenem img-Tag und Link löschen:
<br /></body></html>
Erfahrenen PHP-Programmierern werden diese Anpassungsmöglichkeiten vielleichtnicht genügen. Weitergehende Veränderungen lassen sich natürlich per Scriptprogram-mierung realisieren. Es empfiehlt sich jedoch, solche Eingriffe nicht am lebenden Objektvorzunehmen. Bevor Sie sich an die Umprogrammierung heranwagen, sollten Sie injedem Fall eine Sicherung der lauffähigen Version anlegen.
2-6496.book Page 200 Tuesday, November 19, 2002 3:47 PM
Patches und Erweiterungen
201
10.7 Patches und ErweiterungenUnterstützung und Anregungen für Änderungen gibt es im Web reichlich. Ein umfang-reiche Online-Gemeinde hat sich daran gemacht, Phorum in vielfältiger Weise zu modi-fizieren und zu ergänzen. Treffpunkt diese Bastler ist die Site http://mods.phorum.org/.Hier findet man unzählige Anregungen, Codefragmente und fertige Zusatzscripts. Ineinem Forum kann man Fragen stellen und selber Tipps weitergeben.
Auch im deutschsprachigen Web hat sich eine aktive und zahlenmäßig große Pho-rum-Gemeinde etabliert. Deren Anlaufstelle ist die Seite http://www.myphorum.de(Abbildung 10.17). Hier gibt es ein Supportforum, in dem Anbieter von Foren Infor-mationen austauschen und Newbies Fragen stellen können. Ein interessanter Zusatz-service für alle, die das Forum zwar einsetzen möchten, aber mit PHP und SQL-Datenbanken nichts am Hut haben: Bei myphorum.de kann man auch Foren kostenloshosten. Schon über 2.500 Foren sind registriert. Viele Betreiber von Webseiten, die ih-ren Usern diese Diskussionsbasis anbieten wollen, ohne Phorum selbst auf IhremWebspace zu installieren, haben davon Gebrauch gemacht.
Abbildung 10.17: MyPhorum, die deutsche Anlaufstelle für Phorum
2-6496.book Page 201 Tuesday, November 19, 2002 3:47 PM
202
Sagen Sie Ihre Meinung
Wer das Forum in Aktion sehen will, sollte die Site des Magazins Stern (www.stern.de)aufsuchen. Über die Rubrik Politik/Interaktiv kommen Surfer zu Diskussionsforen zuverschiedenen Themen – realisiert mit Phorum.
Ergebnis dieses WorkshopsSie sind nun in der Lage mit Hilfe von phorum ein oder mehrere Foren in Ihre Websitemit aufzunehmen.
2-6496.book Page 202 Tuesday, November 19, 2002 3:47 PM
Workshop 11
Und Sie dachten, es wäre schwierig ...
Wie Sie sich das Leben leichter machen mit einem Content-Management-System
Sie sind jemand, der alles will? Die Fähigkeiten eines News-Systems, Umfragen, Foren,alles in einem? Und das am besten noch ohne Programmierarbeit?
Ich werde versuchen, Sie zufrieden zu stellen und biete Ihnen als Abschlusskapitel dasSahnehäubchen des Buches. Hier wird ein so genanntes Content-Management-Systembeschrieben, das es ermöglicht, die Inhalte der Website in der Datenbank abzulegen undmit wenig Aufwand eine umfangreiche Website darum zu basteln. Man glaubt es kaum,aber auch dafür gibt es fertige Scripts unter GPL-Lizenz, also frei benutzbar. Eines davonsoll in diesem Kapitel vorgestellt werden.
2-6496.book Page 203 Tuesday, November 19, 2002 3:47 PM
204
Und Sie dachten, es wäre schwierig ...
Ergebnis dieses WorkshopsWir werden in diesem Workshop eine fiktive Website erstellen rund ums ThemaSegeln. Sie wird unter anderem eine Umfrage und einen Bootsmarkt enthalten.
11.1 PHPNuke – die Eier legende WollmilchsauPHPNuke ist ein Webportal-System mit Content Management. Das bedeutet, es stelltein fertiges System zur Verfügung, das der Anwender nur ein wenig anpassen muss,um eine eigene professionelle Homepage zu erstellen. Der Inhalt (Content) wird vonPHPNuke verwaltet (Management), d.h., Benutzer können über entsprechende Bild-schirmmasken bestimmen, was auf der Seite dargestellt wird und wie es dargestelltwird. Dabei können die Rechte für verschiedene Benutzer sehr unterschiedlich sein. Eskönnte zum Beispiel einen Redakteur geben, der zwar Artikel beliebig hinzufügen oderlöschen darf, aber darüber hinaus keine Rechte hat. Andererseits kann es einen Desig-ner geben, der das Layout der Seite verändern darf, aber nicht den Inhalt. In unseremFall sind wir beides in einem, also benötigen wir auch nur eine Benutzerkennung, diewir später anlegen werden. Alle Surfer, die keine Benutzerkennung haben, können sichzumindest die Inhalte ansehen, also auf der Website navigieren.
PHPNuke ist frei verfügbar und erfreut sich einer großen Beliebtheit und Entwickler-gemeinde. Es werden täglich neue Erweiterungen oder Änderungen zum Downloadbereitgestellt, die das System noch besser machen.
Ein Alleskönner ist PHPNuke deshalb, weil viele Erweiterungen standardmäßig schonintegriert sind. So haben Sie die Möglichkeit, Umfragen, Foren oder Neuigkeiten inIhre Nuke-Seite einzubinden. Diese große Vielfalt hat aber auch ihren Preis: Das Er-scheinungsbild von PHPNuke ist nur in gewissen Grenzen flexibel einstellbar, einen
2-6496.book Page 204 Tuesday, November 19, 2002 3:47 PM
Installation
205
unkonventionellen Seitenaufbau können Sie damit nicht oder nur mit viel Program-mieraufwand realisieren.
Generell bekommt man als Anfänger spätestens dann Schwierigkeiten, wenn man diemitgelieferten Design-Vorlagen verändern möchte, denn dazu benötigt man schon ei-niges an Wissen über PHP, HTML und CSS. Aber zum Glück gibt es eine große Vielfaltan fertigen Themes, sodass Sie sicherlich eines finden werden, das Ihren Vorstellungenentspricht. Doch dazu später mehr. Lassen Sie uns zunächst einmal dieses großartigeTool installieren.
11.2 InstallationZur Installation von PHPNuke gehen Sie bitte folgendermaßen vor:
1 Extrahieren Sie das Archiv phpnuke.zip in das Dokumentenverzeichnis Ihres lokalen Webservers. In unserem Fall mit PHPTriad ist das c:\apache\htdocs. Nach dem Entpacken finden Sie einen Unterordner phpnuke, in dem alle benötigten Dateien zu finden sind.
2 Öffnen Sie die Datei config.php unterhalb des Verzeichnisses phpnuke\html und ändern Sie die Datenbankeinstellungen wie folgt ab:
$dbhost = "localhost";$dbuname = "donald";$dbpass = "donald";$dbname = "nuke";$prefix = "nuke";$user_prefix = "nuke";$dbtype = "MySQL";
3 Benutzen Sie phpMyAdmin, um eine neue Datenbank mit dem Namen nuke zu erstellen.
CD-R
OMAU
F DE
R
Sie finden die notwendige Archivdatei phpnuke.zip auf der CD-ROMim Verzeichnis \software\phpnuke.
Im Internet finden Sie eine aktuelle Version unter http://www.phpnuke.org.
2-6496.book Page 205 Tuesday, November 19, 2002 3:47 PM
206
Und Sie dachten, es wäre schwierig ...
4 Scrollen Sie etwas nach unten zur Rubrik SQL-Befehl(e) ausführen und klicken Sie auf Durchsuchen (Abbildung 11.1). Wählen Sie die Datei nuke.sql im Ver-zeichnis c:\apache\htdocs\phpnuke\sql.
Abbildung 11.1: Erstellen der nötigen Tabellen
5 Klicken Sie auf OK. Die Datei nuke.sql ist ein sogenannter SQL-Dump, in dem die notwendigen SQL-Befehle gespeichert sind, die zum Erstellen der Tabellen der Nuke-Datenbank nötig sind.
6 Wechseln Sie nun zur URL http://localhost/phpnuke/admin.php. Sie gelangen auf die Administrationsseite von PHPNuke. Beim erstmaligen Aufruf dieser Seite werden Sie aufgefordert, einen Admin-User anzulegen, mit dem Sie sich später als Administrator legitimieren können. Geben Sie als Kennung wieder goofy und das Passwort goofy an (Abbildung 11.2) und bestätigen Sie Ihre Eingaben mit Submit.
2-6496.book Page 206 Tuesday, November 19, 2002 3:47 PM
Installation
207
Abbildung 11.2: Erstellen des Super-Users
Damit ist die Installation von PHPNuke beendet. Im nächsten Abschnitt erfahren Sie,wie Sie einige grundlegende Einstellungen ändern können.
VORS
ICHT
! Der Benutzer, den Sie eben erstellt haben, ist der „PHPNuke-Gott“,denn er darf wirklich alles. Falls jemand die Kennung und das Pass-wort kennt oder errät, kann er Ihrer Website großen Schaden zufü-gen. Seien Sie also vorsichtig! Falls Sie anderen Benutzern Rechteeinräumen wollen, können Sie andere Administratoren einrichten,die weniger Rechte als goofy besitzen.
2-6496.book Page 207 Tuesday, November 19, 2002 3:47 PM
208
Und Sie dachten, es wäre schwierig ...
11.3 Erste SchritteSie werden sicherlich erschrecken, wenn Sie zum ersten Mal die Administrationsseitevon PHPNuke aufrufen. Es gibt sehr viele Menüpunkte und Möglichkeiten. Wir wer-den Schritt für Schritt vorgehen und zunächst ein paar globale Einstellungen ändern:
1 Wechseln Sie zu der URL http://localhost/phpnuke/admin.php und loggen Sie sich mit Ihrer Admin-Kennung (goofy) ein.
2 Sie sehen nun in der Mitte des Fensters das Administrationsmenü (Abbildung 11.3).
Abbildung 11.3: Das Administrationsmenü
3 Wählen Sie den Punkt Preferences, um die globalen Einstellungen zu verändern. Scrollen Sie etwas nach unten bis zur Rubrik General Site Info. Öffnen Sie die Optionsliste unter Default Theme for your site und wählen Sie Odyssey (Abbil-dung 11.4). Dieses Thema passt farblich gut zu unserer Segel-Website.
2-6496.book Page 208 Tuesday, November 19, 2002 3:47 PM
Erste Schritte
209
Abbildung 11.4: Auswählen einer Design-Vorlage
4 Direkt unter der Themenauswahl finden Sie die Spracheinstellungen. Wählen sie hier german.
5 Scrollen Sie bis ans Ende der Seite und klicken Sie auf Save Changes, um Ihre Ein-stellungen zu übernehmen.
6 Die Seite ist ja immer noch in English! Das liegt daran, dass Sie zwar die Vorein-stellung geändert haben, aber sich ins englische System eingeloggt haben. Die Sprache, die ein Surfer benutzt, wird in einem Cookie gespeichert. Damit wir in Deutsch weitermachen können, müssen Sie in der Rubrik Languages am linken Fensterrand german wählen (Abbildung 11.5). Übrigens, wie gefällt Ihnen das veränderte Design?
2-6496.book Page 209 Tuesday, November 19, 2002 3:47 PM
210
Und Sie dachten, es wäre schwierig ...
Abbildung 11.5: Sprache festlegen
7 Jetzt sind Sie allerdings aus der Administration rausgeworfen worden, so ein Ärger! Wählen Sie aus dem Menü am linken Fensterrand den Punkt Administration, um das zu beheben. Sie sollten das Adminstrationsmenü jetzt in deutscher Sprache sehen.
11.4 Ein bisschen AufräumarbeitBei PHPNuke kann es vorkommen, dass man den Wald vor lauter Bäumen nicht sieht,so umfangreich ist die Funktionalität. Allein das Menü am linken Fensterrand ist mitseinen vielen Einträgen erschlagend. Hier wollen wir ein bisschen aufräumen undFunktionen, die wir für die Segel-Seite nicht brauchen, entfernen.
Die einzelnen Bestandteile, aus denen sich eine PHPNuke-Site aufbaut, heißen Blöcke.Das linke Menü besteht aus den Blöcken Modules, Administration, Wartende news,Who’s online, Languages und Amazon.
Man kann natürlich bestimmen, welche Blöcke aktiv sein sollen und an welcher Stelleauf der Website sie platziert sind. Für unsere Segel-Seite wollen wir das linke Menüetwas abspecken:
1 Wählen Sie den Punkt Blöcke aus dem Administrationsmenü von PHPNuke.
2 Sie gelangen auf eine Seite, auf der Sie sehen können, welche Blöcke dargestellt werden und wo (Abbildung 11.6). Alle sichtbaren Blöcke haben den Status Aktiv. In der Spalte Position sehen Sie, wo der Block auf einer Seite platziert wird.
2-6496.book Page 210 Tuesday, November 19, 2002 3:47 PM
Ein bisschen Aufräumarbeit
211
Abbildung 11.6: Verwaltung der PHPNuke-Blöcke
3 Deaktivieren Sie alle Blöcke außer Modules, Administration, Who’s online und Survey. Die Funktion dafür finden Sie in der rechten Spalte Funktionen.
Unsere nächste Aufräumaktion gilt dem ersten Block Modules im linken Menü. Mo-dule bieten die verschiedenen Funktionalitäten von PHPNuke an. Es gibt ein Modulfür Foren, ein Modul für Neuigkeiten, eines für Umfragen usw. Wir wollen nun be-stimmen, welche Module für unsere Website aktiv sein sollen:
1 Klicken Sie auf den Link zu Modules im Administrationsmenü.
2 Deaktivieren Sie alle Module außer Forums, Search, Surveys, Topics und Web Links. Den Link zum Deaktivieren finden Sie in der rechten Spalte Funktionen (Abbildung 11.7).
PROF
ITIP
P Sie können Module auch ganz löschen. Das Deaktivieren ist abermeist sinnvoller, denn man kann deaktivierte Module zu einem spä-teren Zeitpunkt leicht wieder aktivieren, falls man Sie doch benötigt.Löschen auf der anderen Seite spart Speicherplatz.
2-6496.book Page 211 Tuesday, November 19, 2002 3:47 PM
212
Und Sie dachten, es wäre schwierig ...
Abbildung 11.7: Modules-Administration
Zwischendurch wollen wir einmal testen, wie sich die Seite einem Surfer präsentiert.Dazu müssen Sie sich aber erst ausloggen, denn andernfalls sehen Sie die Ausgabe fürden Admin-User. Danach gehen Sie auf die URL http://localhost/phpnuke/html/. Siewerden eine Seite wie in Abbildung 11.8 sehen.
Abbildung 11.8: Die aufgeräumte Version von PHPNuke
2-6496.book Page 212 Tuesday, November 19, 2002 3:47 PM
Sail away ...
213
Die Seite wirkt jetzt zwar aufgeräumter und übersichtlicher, da wir uns nur auf einenTeil der Möglichkeiten von PHPNuke beschränkt haben, aber mit Segeln hat sie nochnichts zu tun.
11.5 Sail away ...Nachdem wir das prinzipielle Layout und die Funktionalität bestimmt haben, geht esjetzt um die Inhalte. Ich weiß nicht, wie es Ihnen geht, aber mich stört schon seit ge-raumer Zeit das Logo von PHPNuke am Anfang jeder Seite. Also lassen Sie uns diesesals Erstes ändern.
Ausgerechnet so etwas Simples ist recht aufwändig, denn man muss dafür eine HTML-Seite der Design-Vorlage verändern . Aber keine Sorge, ich zeige Ihnen wie:
1 Für jede Design-Vorlage (theme) existiert ein Verzeichnis mit den dazugehörigen Templates und Bildern. Da wir eine Vorlage namens Odyssey benutzen, wechseln Sie ins Verzeichnis phpnuke\html\themes\Odyssey.
2 Kopieren Sie ins Unterverzeichnis images die Datei hafen.jpg von der CD-ROM. Diese Datei finden Sie im Ordner software\phpnuke\images.
3 Öffnen Sie die Datei header.html in einem Texteditor und suchen Sie die Zeilen 7–9, die folgenden Inhalt haben:
<td align="center"> <a href="index.php"> <img src="themes/Odyssey/images/logo.gif" alt=""._WELCOMETO." $sitename" border="0"> </a></td>
4 Ersetzen Sie den Bildnamen logo.gif durch hafen.jpg:
<td align="center"> <a href="index.php"> <img src="themes/Odyssey/images/hafen.jpg" alt=""._WELCOMETO." $sitename" border="0"> </a></td>
2-6496.book Page 213 Tuesday, November 19, 2002 3:47 PM
214
Und Sie dachten, es wäre schwierig ...
5 Ergänzen Sie den Code mit einer Seitenüberschrift:
<!-— neuer Code --><td><font face="Arial" style="font-size: 30px"> Helmuts<br>Segelseite</font></td><!—- Ende neuer Code --><td align="center"> <a href="index.php"> <img src="themes/Odyssey/images/hafen.jpg" alt=""._WELCOMETO." $sitename" border="0"> </a></td>
6 Speichern Sie die Datei.
Abbildung 11.9 zeigt das Ergebnis.
Abbildung 11.9: Angepasster Seitenkopf
Als Nächstes passen wir die Umfrage an, die am rechten Fensterrand erscheint (momen-tan nicht, weil wir als Admin-User eingeloggt sind).
2-6496.book Page 214 Tuesday, November 19, 2002 3:47 PM
Sail away ...
215
1 Wählen Sie aus dem Administrationsmenü den Punkt Umfragen.
2 Klicken Sie unter der Rubrik Umfragen verwalten den Link Umfrage löschen .
3 Selektieren Sie die einzig bisher existierende Umfrage und klicken Sie auf die Schaltfläche Löschen .
4 Sie sind jetzt wieder auf der Admin-Startseite. Um eine neue Umfrage zu erstel-len, wählen Sie wiederum Umfragen aus dem Administrationsmenü.
5 Als Nächstes müssen wir die Kategorie bestimmen, zu der die Umfrage gehören soll. Scrollen Sie dazu etwas nach unten bis zur Optionsliste Bereich, in der zurzeit Artikel ausgewählt ist. Klicken Sie auf den Link Hinzufügen neben der Optionsliste und fügen Sie einen neuen Bereich namens Segelreviere hinzu (Abbildung 11.10).
Abbildung 11.10: Neue Kategorie erstellen
6 Nach dem Speichern müssen Sie noch ein letztes Mal Umfragen aus dem Admi-nistrationsmenü wählen, denn jetzt wollen wir unsere neue Umfrage nach der ganzen Vorarbeit endlich erstellen.
7 Geben Sie als Frage ein: Was ist das beste Segelrevier? und als Optionen Mittel-meer, Karibik, Indischer Ozean und Nordsee (Abbildung 11.11).
2-6496.book Page 215 Tuesday, November 19, 2002 3:47 PM
216
Und Sie dachten, es wäre schwierig ...
Abbildung 11.11: Neue Umfrage erstellen
8 Scrollen Sie wieder zur Optionsliste Bereich und wählen Sie die neu erstellte Kate-gorie Segelreviere aus.
9 Das war’s. Scrollen Sie bis zum Ende der Seite und klicken Sie auf Umfrage erstellen.
An dieser Stelle lohnt sich ein Test, wie sich die Seite bisher einem potenziellen Besu-cher präsentiert. Loggen Sie sich aus und versuchen Sie es. Der Link lautet http://local-host/phpnuke/html/.
Das nimmt doch schon langsam Formen an, oder? Störend wirkt noch der Begrüßungs-text von PHPNuke. Dieser ist Teil des News-Systems, also kann man leicht eine eigeneMeldung ausgeben. Machen wir uns an die Arbeit!
1 Loggen Sie sich wieder als Administrator ein und wählen Sie den Punkt Mitteilun-gen aus dem Administrationsmenü.
2 Schauen Sie sich die Nachrichtenübersicht an (Abbildung 11.12). Bisher ist nur ein Eintrag vorhanden: die noch störende Begrüßungsmeldung von PHPNuke.
2-6496.book Page 216 Tuesday, November 19, 2002 3:47 PM
Sail away ...
217
Abbildung 11.12: Mitteilungsadministration
3 Löschen Sie die Mitteilung über den Link Löschen in der Spalte Funktionen.
4 Legen Sie eine neue Nachricht an mit dem Titel Willkommen! und einem netten Begrüßungstext wie zum Beispiel in Abbildung 11.13. Geben Sie als Verfallsdatum Unbegrenzt an, denn andernfalls würde die Mitteilung nach einer gewissen Zeit automatisch gelöscht. Wenn Sie alles eingegeben haben, klicken Sie auf Nachricht hinzufügen .
Abbildung 11.13: Neue Nachricht erstellen
2-6496.book Page 217 Tuesday, November 19, 2002 3:47 PM
218
Und Sie dachten, es wäre schwierig ...
Das Grundgerüst unserer Seite steht damit. Was jetzt noch fehlt, sind Inhalte. Wie Siedas Content-Management-System von PHPNuke benutzen, um Informationen anden Mann oder die Frau zu bringen, erfahren Sie im nächsten Abschnitt. Es bleibt alsospannend!
11.6 Artikel schreiben und veröffentlichenPHPNuke verfügt über ein Redaktionssystem, d.h., dass mehrere Autoren Artikelschreiben können und ein Redakteur darüber entscheidet, welcher Artikel wann onli-ne gestellt wird. Für viele Einsatzgebiete ist das schon zu viel des Guten. Oft sind Web-designer sowohl Autor als auch Redakteur einer Website. Prinzipiell könnten abermehrere Leute Inhalte bereitstellen (Artikel schreiben), ähnlich wie bei einer Zeitung.
Wir wollen dieses Reaktionssystem nutzen, um einen Bootsmarkt zu realisieren, woBenutzer der Seite Boote anbieten und kaufen können.
Um das Ganze in Gang zu bringen, bieten Sie selbst ein Boot an. Alle weiteren Ange-bote sollen dann von Surfern kommen.
Wie funktioniert das Ganze? Schauen wir uns zunächst an, wie Sie Artikel schreibenkönnen.
Jeder Artikel muss einer Kategorie und einem Thema zugeordnet werden. Dabei istdas Thema die Feinunterscheidung und die Kategorie die grobe Einteilung. Wirwollen für die Artikel die Kategorie Segelboote hinzufügen. Als Thema wählen wir inunserem Fall Bootsmarkt.
1 Jedes Thema hat ein zugehöriges Icon. Für den Bootsmarkt finden Sie auf der CD-ROM unter software\phpnuke\images das Bild bootsmarkt.jpg. Kopieren Sie dieses Bild in den Ordner images\topics in Ihrem phpnuke-Verzeichnis.
2 Wählen Sie aus dem Administrationsmenü den Punkt Themen.
VORS
ICHT
! Wenn andere Personen Artikel schreiben möchten, benötigen dieseeine Benutzerkennung für PHPNuke und die entsprechenden Rechte.Erweiterte Benutzerrechte können Sie einstellen über den PunktAdministratoren im Administrationsmenü. Damit sich Benutzer ein-loggen können, müssen Sie den Block Login aktivieren (über die Aus-wahl von Blöcke/Block-Einstellungen im Administrationsmenü).
2-6496.book Page 218 Tuesday, November 19, 2002 3:47 PM
Artikel schreiben und veröffentlichen
219
3 Geben Sie als Namen für das Thema markt ein. Dieser Name wird nur intern benutzt. Auf der Website wird das angezeigt, was Sie unter Themeninfo eingeben: Bootsmarkt. Als Icon für dieses Thema wählen Sie bootsmarkt.jpg (Abbildung 11.14).
Abbildung 11.14: Neues Thema anlegen
4 Bestätigen Sie Ihre Eingaben durch einen Klick auf Thema hinzufügen .
5 Sie sehen nun unter der Rubrik momentan aktive Themen das soeben erstellte Thema mit zugehörigem Bild.
Jetzt brauchen wir noch eine neue Kategorie namens Segelboote, bevor wir den erstenArtikel schreiben können.
1 Wählen Sie Neuen Artikel aus dem Administrationsmenü.
2 Scrollen Sie etwas nach unten, bis Sie wieder zu der bekannten Optionsliste Bereich kommen. Hier erstellen Sie einen neuen Bereich Segelboote. Sie erinnern sich, dass Sie im letzten Unterkapitel einen Bereich namens Segelreviere erstellt haben? Genauso verfahren Sie es jetzt mit der neuen Kategorie Segelboote.
2-6496.book Page 219 Tuesday, November 19, 2002 3:47 PM
220
Und Sie dachten, es wäre schwierig ...
3 Wählen Sie erneut den Punkt Neuen Artikel aus dem Administrationsmenü.
4 Geben sie den Inhalt des Artikels – in unserem Fall der Bootsanzeige – ein (Abbildung 11.15). Wählen Sie als Thema Bootsmarkt und als Bereich Segelboote. Wählen Sie bei der Frage Auf der Startseite veröffentlichen? die Option Nein.
Abbildung 11.15: Neuer Artikel
5 Lassen Sie sich eine Vorschau Ihres Artikels anzeigen. Scrollen Sie dazu nach unten und wählen Sie aus der Optionsliste die Option Beitrags-Vorschau aus (Abbildung 11.16). Klicken Sie auf Ok!.
2-6496.book Page 220 Tuesday, November 19, 2002 3:47 PM
Schlussbemerkung
221
Abbildung 11.16: Die Vorschau-Funktion
6 Schauen Sie sich Ihren Artikel in der Vorschau an. Wenn alles korrekt ist, können Sie den Artikel speichern, indem Sie wieder zu der Optionsliste gehen, die Option Beitrag erstellen wählen und auf Ok! klicken.
Damit haben Sie alle Schritte getan, damit potenzielle Käufer die Bootsanzeige sehenkönnen. Am besten, Sie testen noch einmal, wie sich die Seite einem Surfer präsentiert,indem Sie sich ausloggen und im Modules-Menü den Eintrag Home wählen. Um zumBootsmarkt zu gelangen, müssen Sie unter Modules zunächst den Link Topics (The-men) wählen und dann Bootsmarkt auswählen.
11.7 SchlussbemerkungEs wäre vermessen zu behaupten, dass man ein Portal-System wie PHPNuke in einemKapitel erschöpfend behandeln und erläutern kann. Lassen Sie uns daher den Faktenins Auge blicken: Sie haben bisher nur an der Oberfläche gekratzt. Um alle Fähigkeitenvon PHPNuke darzustellen, wäre ein eigenes Buch nötig. Trotzdem wollte ich Ihnendiese tolle Software nicht vorenthalten und hoffe, dass ich Ihnen einen guten Start ge-ben konnte, sodass Sie selbst ein bisschen weiterbasteln können. So können Sie zumBeispiel die störenden englischen Begriffe im Modules-Menü durch deutsche ersetzen,indem sie in die Modul-Administration gehen und dort für die Module deutsche
PROF
ITIP
P Ist Ihnen aufgefallen, dass ich in dem Beispieltext der BootsanzeigeHTML-Tags benutzt habe? Auf diese Weise können Sie auch Bilder indie Artikel einbauen, indem Sie das img-Tag (<img src=“bild-datei.gif“>) von HTML benutzen.
2-6496.book Page 221 Tuesday, November 19, 2002 3:47 PM
222
Und Sie dachten, es wäre schwierig ...
Namen vergeben. Sollten Sie PHP, HTML und CSS beherrschen, haben Sie die Mög-lichkeit, die Design-Vorlagen der PHPNuke-Themes selbst zu verändern, um dasErscheinungsbild der Seiten flexibel zu gestalten. Die Vorlagen finden Sie im themes-Verzeichnis in Ihrem phpnuke-Ordner.
Ergebnis dieses WorkshopsSie haben in diesem Workshop ein Portalsystem mit Content-Management-Funktio-nen benutzt, um eine professionelle Website schnell und elegant zu erstellen. Dasschöne ist nun, dass Sie den Inhalt einfach erweitern und ändern können, ohneHTML-Seiten anpassen zu müssen.
2-6496.book Page 222 Tuesday, November 19, 2002 3:47 PM
Anhang A
Farben in HTMLFarbname Hexadezimal
aliceblue #F0F8FF
antiquewhite #FAEBD7
aquamarine #7FFFD4
azure #F0FFFF
beige #F5F5DC
blueviolet #8A2BE2
brown #A52A2A
burlywood #DEB887
cadetblue #5F9EA0
chartreuse #7FFF00
chocolate #D2691E
coral #FF7F50
cornflowerblue #6495ED
cornsilk #FFF8DC
crimson #DC143C
darkblue #00008B
darkcyan #008B8B
darkgoldenrod #B8860B
darkgray #A9A9A9
darkgreen #006400
darkkhaki #BDB76B
2-6496.book Page 223 Tuesday, November 19, 2002 3:47 PM
224
Farben in HTML
darkmagenta #8B008B
darkolivegreen #556B2F
darkorange #FF8C00
darkorchid #9932CC
darkred #8B0000
darksalmon #E9967A
darkseagreen #8FBC8F
darkslateblue #483D8B
darkslategray #2F4F4F
darkturquoise #00CED1
darkviolet #9400D3
deeppink #FF1493
deepskyblue #00BFFF
dimgray #696969
dodgerblue #1E90FF
firebrick #B22222
floralwhite #FFFAF0
forestgreen #228B22
gainsboro #DCDCDC
ghostwhite #F8F8FF
gold #FFD700
goldenrod #DAA520
greenyellow #ADFF2F
honeydew #F0FFF0
hotpink #FF69B4
indianred #CD5C5C
indigo #4B0082
ivory #FFFFF0
khaki #F0E68C
lavender #E6E6FA
lavenderblush #FFF0F5
lawngreen #7CFC00
lemonchiffon #FFFACD
Farbname Hexadezimal
2-6496.book Page 224 Tuesday, November 19, 2002 3:47 PM
Anhang A
225
lightblue #ADD8E6
lightcoral #F08080
lightcyan #E0FFFF
lightgoldenrodyellow #FAFAD2
lightgreen #90EE90
lightgrey #D3D3D3
lightpink #FFB6C1
lightsalmon #FFA07A
lightseagreen #20B2AA
lightskyblue #87CEFA
lightslategray #778899
lightsteelblue #B0C4DE
lightyellow #FFFFE0
limegreen #32CD32
linen #FAF0E6
mediumaquamarine #66CDAA
mediumblue #0000CD
mediumorchid #BA55D3
mediumpurple #9370D
mediumseagreen #3CB371
mediumslateblue #7B68EE
mediumspringgreen #00FA9A
mediumturquoise #48D1CC
mediumvioletred #C71585
midnightblue #191970
mintcream #F5FFFA
mistyrose #FFE4E1
moccasin #FFE4B5
navajowhite #FFDEAD
oldlace #FDF5E6
olivedrab #6B8E23
orange #FFA500
orangered #FF4500
Farbname Hexadezimal
2-6496.book Page 225 Tuesday, November 19, 2002 3:47 PM
226
Farben in HTML
orchid #DA70D6
palegoldenrod #EEE8AA
palegreen #98FB98
paleturquoise #AFEEEE
palevioletred #DB7093
papayawhip #FFEFD5
peachpuff #FFDAB9
peru #CD853F
pink #FFC0CB
plum #DDA0DD
powderblue #B0E0E6
rosybrown #BC8F8F
royalblue #4169E1
saddlebrown #8B4513
salmon #FA8072
sandybrown #F4A460
seagreen #2E8B57
seashell #FFF5EE
sienna #A0522D
skyblue #87CEEB
slateblue #6A5ACD
slategray #708090
snow #FFFAFA
springgreen #00FF7F
steelblue #4682B4
tan #D2B48C
thistle #D8BFD8
tomato #FF6347
turquoise #40E0D0
violet #EE82EE
wheat #F5DEB3
whitesmoke #F5F5F5
yellowgreen #9ACD32
Farbname Hexadezimal
2-6496.book Page 226 Tuesday, November 19, 2002 3:47 PM
Anhang B
PHP nebenbei gelernt
Ein Crashkurs für furchtlose Programmierneulinge
Dieses Kapitel gibt Ihnen eine kurze, schnelle Einführung in PHP. Vorkenntnisse in ei-ner Programmiersprache sind dabei nicht notwendig. Es reicht, wenn Sie etwas HTMLGrundwissen besitzen.
In dieser kurzen Programmiereinführung können wir natürlich nur die wesentlichstenPunkte der Scriptsprache PHP ansprechen. Einige wichtige Themen wie zum Beispieldas objektorientierte Programmieren mit Klassen oder die Behandlung von Fehlernmüssen leider unter den Tisch fallen.
Jeder, der sich ernsthaft mit PHP beschäftigen will, sollte sich die ersten 15 Kapitel desPHP-Online-Handbuchs (http://www.php.net/manual/de) durchlesen oder sich einzusätzliches Buch über PHP-Programmierung zulegen. Zum Beispiel „Jetzt lerne ichMySQL & PHP“, Markt+Technik, ISBN 3-8272-6202-X. Danach heißt es dann üben,üben, üben. Denn Programmieren lernt man nicht beim Lesen, sondern hauptsächlichin der Praxis.
2-6496.book Page 227 Tuesday, November 19, 2002 3:47 PM
228
PHP nebenbei gelernt
B.1 Das erste PHP-ScriptDas erste Programm, das man in einer neuen Programmiersprache schreibt, ist tradi-tionell ein Programm, das den Text „Hallo Welt“ ausgibt.
Dieses bekannte Beispiel sieht in PHP folgendermaßen aus:
<html> <body> <p> <?php echo “Hallo Welt!” ?> </body></html>
Das wollen Sie selbst sehen? Kein Problem, gehen Sie wie folgt vor:
1 Speichern Sie diese Datei unter hallowelt.php im Dokumentenverzeichnis ihres Webservers. Bei PHPTriad ist es das Verzeichnis C:\apache\htdocs, unter Linux/UNIX meist /usr/local/httpd/htdocs.
2 Öffnen Sie einen Webbrowser und geben die URL zu dieser Webseite auf Ihrem Rechner ein: http://localhost/hallowelt.php.
3 Auf dem Bildschirm sollte jetzt der Schriftzug „Hallo Welt“ erscheinen (Abbil-dung B.1). Wenn Sie sich den HTML-Quelltext im Browser anschauen, werden Sie feststellen, dass die Fragezeichen-Tags und der echo-Befehl verschwunden sind. Der PHP-Interpreter hat diese Befehle ausgeführt und stattdessen steht dort das Resultat des PHP-Aufrufs:
<html> <body> <p> Hallo Welt! </p> </body></html>
Abbildung B.1: Aufruf des „Hallo Welt“-Scripts
2-6496.book Page 228 Tuesday, November 19, 2002 3:47 PM
Grundlagen
229
Damit haben Sie den wichtigsten Schritt bereits geschafft. Alles, was jetzt noch folgt,ist eine reine Übungs- und Lernsache. Am besten legen Sie sich für die folgenden Bei-spiele ein Unterverzeichnis phptest im Dokumentenverzeichnis Ihres Webservers an,in das Sie die Beispiele speichern.
B.2 GrundlagenPHP ist eine eigenständige Scriptsprache, deren Syntax stark an C und Perl angelehntist. Wer bereits eine dieser Sprachen beherrscht (oder eine Sprache, deren Syntaxebenfalls von C abgeleitet ist, beispielsweise C++, Java oder JavaScript), wird beimEinstieg in PHP nur wenig Schwierigkeiten haben. Aber auch für Anfänger ohne jegli-che Programmiererfahrung ist PHP gut geeignet, um die wesentlichen Aspekte einerProgrammiersprache zu lernen. Die folgende Einführung setzt daher nur grundlegen-de HTML-Kenntnisse voraus.
PHP-EinbettungBei PHP-Dateien handelt es sich in den meisten Fällen um HTML-Dateien, in denen ei-nige, in manchen Fällen auch alle Ausgaben mit der Programmiersprache PHP erfolgen.Als Dateiendung verwenden wir die Standard-Extension *.php. In alten PHP-Implemen-tierungen findet man teilweise noch die Endung *.php3. Sie können in der Konfigurationihres Webservers aber auch jede andere Extension mit dem PHP-Aufruf verbinden.
Es gibt mehrere Möglichkeiten, PHP-Code in eine HTML-Seite zu integrieren. Der in-zwischen XML-konforme Standard ist die Verwendung von <?php als Start- und ?> alsEnd-Tag. Alles, was zwischen diesen Zeichen steht, führt das PHP-Modul aus. AlleAusgaben, die Sie innerhalb dieser Tags mit der PHP-Funktion echo oder print erzeu-gen, erscheinen an dieser Stelle im endgültigen HTML-Code und somit im Browser-fenster. Eine andere Variante ist die Verwendung des HTML-script-Tags:
<script language=”php”, runat="server"> echo "Hallo Welt!”; </script>
Diese Einbettung ist aber im Vergleich zu den anderen sehr lang und wird selten ver-wendet.
PROF
ITIP
P Es gibt noch zwei weitere Einbettungsarten: eine veraltete Variantemit <? .... ?> und die an die Active Server Pages angelehnte Vari-ante <% ... %>. Beide sollten Sie aus Kompatibilitätsgründen bessernicht verwenden.
2-6496.book Page 229 Tuesday, November 19, 2002 3:47 PM
230
PHP nebenbei gelernt
KommentareKommentare sind Zusatzinformationen, die das Verstehen von Programmen erleich-tern sollen. PHP verwendet die gleiche Kommentarsyntax wie Java oder C++. EinKommentar beginnt mit /* und endet mit */. Alles, was zwischen diesen Zeichen steht,wird bei der Ausführung des Scripts ignoriert. Ein Beispiel:
<?php/* Hier beginnt die Ausgabe */echo "Hallo Welt! "; ?>
Sie können damit auch Kommentare über mehrere Zeilen erstellen. Sinnvoll ist dasbeispielsweise am Anfang eines längeren Programms:
<?php /* Name: Ausgabe-Programm Version: 2.1 Autor: Johann Müller letzte Änderung: 1.10.2002*/... langes Programm ...?>
Die zweite Kommentarvariante // erstellt einen Kommentar, der nur bis zum Zeilen-ende reicht.
echo "Hallo Welt!"; // eine Ausgabe
Ein Abschluss ist daher in diesem Fall nicht notwendig.
B.3 VariablenVariablen sind Platzhalter für Inhalte. Sie können Variablen Zeichenketten, Zahlen oderganze Texte zuweisen. In PHP beginnen alle Variablen mit einem Dollarzeichen. Danachfolgt der Variablenname, den Sie in Ihren Programmen frei wählen können. Der Namemuss mit einem Buchstaben oder einem Unterstrich beginnen und darf danach keineLeerzeichen oder Sonderzeichen außer dem Unterstrich (_) enthalten. Groß- und Klein-schreibung wird unterschieden. Außerdem dürfen Sie keinen der bereits von PHPvordefinierten Variablennamen verwenden. Beispiele für unterschiedliche korrekte Va-riablennamen sind $nachricht3, $der_ganze_text, $gehalt oder $Gehalt. Sinnvollerweisesollte man selbsterklärende Variablennamen verwenden und auf Abkürzungen (zumBeispiel $wbk_msg) verzichten, es sei denn, man hat ein sinnvolles System.
Mit dem Gleichheitszeichen können Sie Variablen einen Wert zuweisen. Dabei stehtlinks der Variablenname und rechts der Wert. Abgeschlossen wird diese Zuweisung inPHP immer mit einem Semikolon. Zeichenketten müssen Sie in Anführungszeichensetzen. Einige Beispiele:
2-6496.book Page 230 Tuesday, November 19, 2002 3:47 PM
Formularauswertung
231
$antwort="Mail wurde verschickt.";$gehalt=12000;$aktueller_preis=12.82;
Diese Variablen können Sie dann mit dem echo-Befehl ausgeben:
echo $antwort;
Innerhalb des echo-Befehls interpretiert PHP alle vorangestellten Dollarzeichen alsBeginn einer Variable. Das folgende Beispiel
echo "$antwort Das Gehalt ist $gehalt EUR. Der aktuelle Preis lautet $aktueller_preis EUR";
sorgt daher für die Ausgabe:
Die Mail wurde verschickt. Das Gehalt ist 12000 EUR. Der aktuelle Preis lautet 12.82 EUR
B.4 FormularauswertungDie Auswertung von Formularen ist eines der Standard-Einsatzgebiete von PHP undWebapplikationssprachen im Allgemeinen. Sie werden in Kapitel 5 mehr darüber er-fahren. Onlineformulare bestehen aus einer HTML-Seite mit den Formularfeldernund einer Datei für die Auswertung. Dieser Dateiname wird im action-Attribut desform-Tags angegeben. Außerdem gibt man im Attribut method die Methode der Da-tenübertragung an. Bei der Methode GET sendet der Browser die Formulardaten in-nerhalb der URL. Das sieht nicht nur unschön aus, sondern ist auch nur bei geringenDatenmengen bis insgesamt 2 Kbyte möglich. Bei der anderen Methode POST gibt eshingegen keine Beschränkung, da der Browser die Daten im Körper der Nachricht ver-sendet. Ein einfaches Beispiel für ein HTML-Formular mit zwei Feldern sieht folgen-dermaßen aus (Abbildung B.2):
<!–Datei formular.html –><html> <body> <form action="formauswertung.php" method="post"> <br> Vorname: <input type="text" name="vorname"> <br> Nachname:
PROF
ITIP
P
Wenn man nur eine Variable ausgeben möchte, ist es praktisch, zurEinbettung von PHP in HTML die Kurzform <?= $variable > zuverwenden.
2-6496.book Page 231 Tuesday, November 19, 2002 3:47 PM
232
PHP nebenbei gelernt
<input type="text" name="nachname"> <input type="submit"> </form> </body></html>
Abbildung B.2: HTML-Formular
Die Auswertungsdatei formauswertung.php soll jetzt nichts weiter tun, als die eingege-benen Vor- und Nachnamen in einer Website mit zusätzlichem Text auszugeben (Ab-bildung B.3). Dazu reichen die bisher hier vermittelten PHP-Kenntnisse bereits aus.Die Inhalte von gesendeten Formularfeldern stehen in PHP unter dem in der HTML-Datei vergebenen Namen bereit. Wir können also ohne Variablenzuweisung einfachauf $vorname und $nachname zugreifen:
<!– Datei formauswertung.php –><html> <body> <?php echo "Hallo $vorname $nachname!<br>"; echo "Vorname: $vorname<br>"; echo "Nachname: $nachname<br>"; </body></html>
Abbildung B.3: Formularauswertung
2-6496.book Page 232 Tuesday, November 19, 2002 3:47 PM
Kontrollstrukturen
233
B.5 KontrollstrukturenJetzt wenden wir uns den Konstrukten zu, die es erlauben den Fluss innerhalb des Pro-gramms zu verändern.
Vergleiche und BedingungenUnser Auswertungsscript aus dem letzten Abschnitt hat noch einen Schönheitsfehler:Es erkennt nicht, wenn der Benutzer keine Daten eingegeben hat. Diese Überprüfungerfolgt am einfachsten mit dem Gleichheitsoperator == und einer if-Bedingung. Dieif-Bedingung besteht aus dem Schlüsselwort if und einer darauf folgenden Klam-mer, in der die Bedingung steht. In unserem Fall also aus folgenden Angaben:
if ($vorname == "")
Falls diese Bedingung wahr ist, wenn also die Variable vorname leer ist, wird der ingeschweiften Klammern folgende Programmblock ausgeführt:
if($vorname == "") { echo "Fehler: Kein Vorname eingetragen.";}
Innerhalb des Programmblocks können beliebig viele mit einem Semikolon abgeschlos-sene Befehle oder auch weitere Bedingungen mit weiteren internen Blöcken stehen.Wenn wie in unserem Fall der Programmblock nur aus einer Zeile besteht, kann man diegeschweiften Klammern auch weglassen. Sind keine geschweiften Klammern angegeben,führt PHP nach einer zutreffenden if-Bedingung nur die direkt folgende Zeile aus.
Neben dem Gleichheitsoperator gibt es auch den Ungleichheitsoperator !=. Damitkann man Bedingungen programmieren, die zutreffen, wenn ein bestimmter Fallnicht eintritt:
if($passwort != "fghe6TT2") echo "Falsches Passwort";
Mit einer if-else-Bedingung kann man in unserem Beispiel zusätzlich dafür sorgen,dass die Ausgabe von Vorname und Nachname jeweils nur dann erfolgt, wenn dieVariablen nicht leer sind. Der else-Teil der Bedingung wird immer dann ausgeführt,wenn die vorherige Bedingung nicht zutraf.
VORS
ICHT
!
Der Gleichheitsoperator verdient besondere Beachtung. Man sollteaufpassen, ihn nicht mit dem einfachen Zuweisungsoperator (=) zuverwechseln. Die Abfrage
if ($vorname = "")
trifft nämlich immer zu, da in der Bedingung der Variablen $vornameein leerer String zugewiesen wird.
2-6496.book Page 233 Tuesday, November 19, 2002 3:47 PM
234
PHP nebenbei gelernt
if($vorname == "") { echo "Fehler: Kein Vorname eingetragen.";}else { echo "Vorname: $vorname";}
Außerdem kann man mit else-if mehrere Bedingungen hintereinander schalten.Damit lässt sich beispielsweise auf einen bestimmten Vornamen gesondert reagieren:
if($vorname == "") { echo "Fehler: Kein Vorname eingetragen."; }else if($vorname=="Knut") { echo "Ach du bist's Knut. Hallo.";}else { echo "Vorname: $vorname";}
Die else-if-Abfrage wird nur ausgeführt, wenn die erste if-Bedingung nicht zu-trifft. Trifft auch die else-if-Bedingung nicht zu, wird in jedem Fall der letzte mitelse gekennzeichnete Block ausgeführt. Sie können beliebig viele else-if-Bedin-gungen hintereinander schalten. Am Ende sollte aber immer ein else stehen, das injedem Fall ausgeführt wird.
for-SchleifeSchleifen dienen in Programmiersprachen zur Wiederholung von Abläufen. Am be-kanntesten ist die for-Schleife, die aus einem Anfangswert, einer Bedingung zur Wie-derholung und einem Ausdruck, der nach jedem Durchlauf der Schleife ausgeführtwird, besteht. Die Standardform für eine fünfmalige Wiederholung sieht folgender-maßen aus:
for ($i=0; $i < 5; $i++){ echo "Wiederholung Nummer: $i <br>";}
Vor dem ersten Durchlauf wird dabei die Variable $i auf den Wert 0 gesetzt. Anschlie-ßend führt PHP den in der geschweiften Klammer angegebenen Schleifenkörper solange aus, wie der Wert von $i kleiner als 5 ist. Nach jedem Durchlauf des Schleifen-körpers erfolgt mit dem Inkrementoperator $i++ eine Erhöhung von $i um den Wert1. Anstelle von $i++ hätten wir auch
$i = $i + 1;
schreiben können. Die Kurzform ist in vielen Fällen aber besser lesbar (analog dazugibt es den Operator - zum Heruntersetzen einer Variablen um den Wert 1, also $i– ).
2-6496.book Page 234 Tuesday, November 19, 2002 3:47 PM
Kontrollstrukturen
235
Die Ausgabe des Programms sieht dann folgendermaßen aus:
Wiederholung Nummer: 0Wiederholung Nummer: 1Wiederholung Nummer: 2Wiederholung Nummer: 3Wiederholung Nummer: 4
for-Schleifen setzt man hauptsächlich dann ein, wenn man vorher genau weiß oderberechnen kann, wie viele Durchläufe man benötigt.
Prinzipiell kann man eine for-Schleife auch leer lassen. Man erzeugt damit eine End-losschleife:
for( ; ; ) { // endlosscheife …… if($val == "stop') break; //ende}
Aus dieser Schleife kann man nur mit dem break-Befehl von PHP wieder ausbrechen.break beendet eine Schleife sofort. Die Programmausführung setzt nach dem Schleifen-körper wieder ein. Auch die Ausführung der im Folgenden erklärten while-Schleifenkann man mit break beenden.
while-Schleifewhile-Schleifen sind einfacher aufgebaut als for-Schleifen und bestehen lediglich auseiner Wiederholungsbedingung. Es folgt ein einfaches Beispiel, das ebenfalls eine fünf-malige Wiederholung einer Ausgabe erzeugt:
$i=O;while ($i < 5) { echo "Wiederholung Nummer: $i <br>"; $i++;}
Der Einsatz einer while-Schleife bietet sich immer dann an, wenn man nicht weiß,wie viele Wiederholungen man benötigt. Ein gutes Beispiel ist das Auslesen von Da-tensätzen nach einer Datenbankanfrage. In der Schleifenbedingung prüft man ab, obweitere Datensätze vorliegen. Im Schleifenkörper liest man dann jeweils einen Daten-satz aus. Diese Vorgehensweise bietet sich beispielsweise auch beim zeilenweisen Ein-lesen von großen Dateien an. Der folgende Code gibt den Inhalt der Datei namen.txt(muss sich im gleichen Verzeichnis befinden) zeilenweise aus:
$datei = fopen ("namen.txt", "r");while (!feof($datei)) { $zeile = fgets($fdatei); echo "$zeile <br>";}fclose ($datei);
2-6496.book Page 235 Tuesday, November 19, 2002 3:47 PM
236
PHP nebenbei gelernt
Lassen Sie sich nicht von den unbekannten Funktionen verwirren – fopen (Datei öff-nen), fclose (Datei schließen) und fgets (Zeile einlesen) sind in der PHP-Referenz(http://www.php.net/manual/de/ref.filesystem.php) zusammen mit vielen anderen PHP-Funktionen erklärt. Diese Aufrufe müssen sie sich nicht merken, es genügt nachzuschla-gen, wenn Sie eine bestimmte Funktion benötigen.
Neu und wichtig ist allerdings das Ausrufezeichen in der Schleifenbedingung derwhile-Schleife. Es handelt sich dabei um den logischen Nicht-Operator. Die Funktionfeof($datei)überprüft, ob das Dateiende bereits erreicht ist. Als Ergebnis liefert dieFunktion entweder den Wert TRUE (Dateiende erreicht) oder den Wert FALSE (Datei-ende nicht erreicht) zurück. Beide Werte sind vordefinierte Variablen in PHP. TRUEentspricht dem Wert 1, FALSE dem Wert 0. Gibt man TRUE oder FALSE mit demecho-Befehl aus, erhält man als Ausgabe diese Zahlenwerte.
Durch den Nicht-Operator prüft PHP, ob der folgende Ausdruck nicht den Wert TRUEzurückliefert.
Man könnte also stattdessen auch schreiben:
while ( ! (feof($datei) == TRUE) )
Eleganter wäre Folgendes:
while (feof($datei) == FALSE)
Sie sehen, viele Wege führen zum Ziel. Welchen man benutzt, ist letztendlich eine Fragedes persönlichen Stils.
B.6 Operatoren
Arithmetische OperatorenMit arithmetischen Operatoren kann man Variablenwerte addieren, subtrahieren,dividieren und multiplizieren. Dabei ist es jedoch wichtig, zwischen den Variablen-typen zu unterscheiden. Im Gegensatz zu anderen Programmiersprachen erwartetPHP keine explizite Definition des Variablentyps. Stattdessen wird der Typ automa-tisch zugewiesen: „Hallo“ ist ein String, 7746 eine ganze Zahl und 12.82 eine Fließ-kommazahl. PHP erkennt den Typ bei der Zuweisung anhand der Anführungszeichen(String), Zahlenwerte (Integer) oder Zahlen mit Punkt (Fließkomma). Bei der Ver-wendung der arithmetischen Operatoren sollte man sich des Variablentyps bewusstsein. Zahlen addiert man einfach mit dem bekannten Plus-Operator:
$a = 534; $b = 223; $meine_summe = $a + $b;
2-6496.book Page 236 Tuesday, November 19, 2002 3:47 PM
Operatoren
237
Die weiteren Operatoren für die Grundrechenarten zeigt folgende Tabelle:
Auch die Verkettung und Verwendung von Zahlenwerten funktionieren wie im Mathe-matikunterricht:
$summe = 7761 - 243 + $a / 0.5 * 3;
Die Rangfolge der Operatoren ist ebenfalls genauso wie in der Schule geregelt: Multi-plikation und Division besitzen eine höhere Priorität als Addition und Subtraktion.4 + 2 * 5 ergibt logischerweise 14 und nicht 30. Wer eine andere Rangfolge benötigt,kann sich wie üblich mit Klammern behelfen.
Numerische Vergleichsoperatoren Für numerische Werte besitzt PHP Vergleichsoperatoren wie größer (>), größer gleich(>=), kleiner (<) und kleiner gleich (<=). In einem einfachen Beispiel soll der Benut-zer in einem Formular das Geburtsjahr eingeben (Abbildung B.4):
<html> <body> <form action="check_jahr.php" method="post"> Ihr Geburtsjahr <input type="text" name="jahr"> <input type="submit"> </form> </body></html>
Abbildung B.4:Formular zur Eingabe eines Geburtsdatums
Operator Bedeutung
+ Addition
- Subtraktion
* Multiplikation
/ Division
% Modulus (Rest einer Division)
2-6496.book Page 237 Tuesday, November 19, 2002 3:47 PM
238
PHP nebenbei gelernt
In der Datei check_jahr.php kann man jetzt überprüfen, ob ein korrektes Jahr eingege-ben wurde, und das Alter des Benutzers ausgeben (Abbildung B.5):
<html> <body> <?php if($jahr < 1860) { echo "Fehler: So alt ist niemand"; }
else if($jahr > 2002) { echo "Fehler: Sie sind noch nicht geboren"; } else { $alter = 2002 - $jahr; echo "Sie sind $alter Jahre alt. "; } ?> </body></html>
Abbildung B.5:Ausgabe von check_jahr.php
Folgende Vergleichsoperatoren stehen in PHP zur Verfügung. Gleichheits- undUngleichheitsoperator gelten sowohl für Strings als auch für numerische Werte. DieGrößer- und Kleiner-Vergleiche machen nur bei Zahlenwerten Sinn.
Vergleichsoperator Bedeutung
== Gleichheit
!= Ungleichheit
<, <= Kleiner, kleiner gleich
>, >= Größer, größer gleich
2-6496.book Page 238 Tuesday, November 19, 2002 3:47 PM
Operatoren
239
Logische Operatoren Logische Operatoren dienen zum logischen Verknüpfen zweier Ausdrücke. Zur Verfü-gung stehen Und (&&), Oder (||), und Entweder oder (xor). Die Zeichen für die Oder-Verknüpfung erhalten Sie, wenn Sie einen doppelten senkrechten Strich ((AltGr)+(<)) eintippen.
Damit kann man beispielsweise unsere obige Geburtsjahranfrage in einer Oder-Bedin-gung unterbringen:
if( $jahr < 1860 || $jahr > 2001) { echo "Fehler: Ungültiges Geburtsjahr. ";}
Die Bedingung trifft also dann zu, wenn einer der beiden verknüpften Ausdrücke zu-trifft.
Man kann logische Operatoren beliebig miteinander verketten. Zur besseren Über-sicht sollte man dabei allerdings Klammern verwenden:
if( ($tag=="Montag" || $tag=="Dienstag") && $monat != "Dezember" )
Hier würde der Code innerhalb des if-Befehls an jedem Montag und Dienstag ausge-führt außer im Dezember.
Logischer Operator Bedeutung
$a && $b a und b müssen wahr sein.
$a || $b a oder b muss wahr sein.
$a xor $b Entweder a oder b muss wahr sein, aber nicht beide.
!$a a darf nicht wahr sein.
PROF
ITIP
P
Vergleichsoperatoren haben eine höhere Priorität als logische Operato-ren. Das heißt, PHP führt zuerst die Vergleiche und dann die logischenOperationen aus.
2-6496.book Page 239 Tuesday, November 19, 2002 3:47 PM
240
PHP nebenbei gelernt
String-OperatorenStrings lassen sich nicht mit dem + -Operator verketten, so wie in anderen Sprachenüblich. Der Ausdruck
$a = "Hallo"; echo $a + " Welt"; //falsch
erzeugt nicht die erwartete Ausgabe „Hallo Welt“, sondern 0, da PHP die String-Varia-blen zuvor in einen Zahlenwert umwandelt. Folgerichtig sorgt die Anweisung
echo "17" + "12";
für die Ausgabe „24“.
Der korrekte Operator zum Verbinden von Strings in PHP ist ein Punkt:
$message = $nachrichtl . "Viele Grüße, Dein " . $name;
Verbindet man numerische Werte auf diese Weise, wandelt PHP die Zahlen automa-tisch in Strings um.
Für die anderen arithmetischen Operatoren gibt es bei Strings logischerweise keineentsprechende Variante. Dafür bietet PHP eine große Anzahl von String-Funktionen,mit denen man Strings komfortabel durchsuchen und verändern kann. Näheres dazufinden Sie in der PHP-Dokumentation.
Wichtig ist in Bezug auf Strings außerdem das Escape-Zeichen \. Damit lassen sich fol-gende Sonderzeichen in einen String einfügen:
Die Verwendung von Sonderzeichen bietet sich beispielsweise an, wenn man bei derAusgabe HTML-Code erzeugen möchte, der schön formatiert aussieht. Anstelle von
echo "<table> <tr> <td> Zeichen";
kann man mit
echo "<table>\n\t<tr>\n\t <td>Zeichen";
folgenden HTML-Code erzeugen:
<table> <tr> <td>Zeichen
Durch die Strukturierung ist der Code wesentlich lesbarer.
Escape-Sequenz Bedeutung
\n Zeilenumbruch
\t Tabulator
\\ Backslash
\$ Dollar-Zeichen
\” Anführungszeichen
2-6496.book Page 240 Tuesday, November 19, 2002 3:47 PM
Funktionen
241
B.7 FunktionenFunktionen sind eine der wesentlichen Abstraktionsmöglichkeiten beim Programmie-ren. Vereinfacht ausgedrückt ordnet man dabei einer bestimmten Abfolge von Aus-drücken einen Funktionsnamen zu. Die Dateifunktionen fopen() oder fclose(), die wirbereits kennen gelernt haben, sind gute Beispiele: Sie dienen zum Öffnen und Schließenvon Dateien. Wie das genau funktioniert, ist nicht weiter wichtig. Das Entscheidende ist,dass man diese Funktionen beliebig oft unter ihrem Namen aufrufen kann.
Funktionsdefinition und -aufrufVor dem ersten Aufruf muss man eine Funktion erst definieren. Unsere Funktion sollnicht anderes tun, als das bekannte „Hallo Welt“ auszugeben. Die Definition sieht fol-gendermaßen aus:
function hallowelt() { echo "<p>Hallo Welt!";}
Diese Funktionsdefinition alleine erzeugt keine Ausgabe. Der Funktionskörper wirderst bei einem Funktionsaufruf ausgeführt:
for($i=0; $i<l0; $i++) { hallowelt();}
Dieser Code gibt zehn Mal die schöne Begrüßung „Hallo Welt!“ aus.
Funktionsparameter und RückgabewerteSicher haben Sie sich gefragt, was die leere Klammer hinter dem Funktionsnamen soll.Die Lösung: Dort gibt man die Funktionsparameter an. Die „Hallo-Welt“-Funktionbesitzt keine Parameter, deshalb ist die Klammer leer. Parameter sind Variablen, diebeim Aufruf an die Funktion übergeben werden. Damit kann man beispielsweise eineFunktion programmieren, die Celsius-Werte in Fahrenheit umwandelt:
function cels_fahr($celsius) { $fahrenheit = ($celsius * 1.8) + 32; return($fahrenheit);}
Ein Aufruf dieser Funktion sieht beispielsweise folgendermaßen aus:
$ergebnis = cels_fahr(100);echo "100 Grad Celsius sind $ergebnis Grad Fahrenheit";
Als Funktionsparameter übergeben wir dabei den Wert 100. Dieser Wert wird beimAufruf in der Variable $celsius gespeichert und innerhalb der Funktion verwendet.Eine weitere Neuheit ist der Rückgabewert. Mit dem Befehl return verlässt man eine
2-6496.book Page 241 Tuesday, November 19, 2002 3:47 PM
242
PHP nebenbei gelernt
Funktion. In Klammern kann man zusätzlich einen Rückgabewert zurückliefern. Die-ser Wert wird dann anstelle des Funktionsaufrufs ausgewertet.
In unserem Beispiel ist der Rückgabewert ein Zahlenwert. Man kann also mit diesemWert ganz normale Berechnungen anstellen:
$tausendfach_cels = 1000 * cels_fahr(100);
Die Umrechnungsfunktion erfüllt damit zwei Zwecke: Erstens vereinfacht sie die Um-wandlung der Werte, da man nicht immer die ganze Formel in den Programmcodeschreiben muss. Zweitens sorgt die Funktion für eine logische Abstraktion des Pro-gramms, da beim Lesen klar wird, dass eine Umrechnung von Celsius in Fahrenheitstattfindet.
Mit der Umrechungsfunktion ist es jetzt ein Leichtes, eine Webseite zu schreiben, dieeine Tabelle der Celsius-Werte von 0–100 (in 10er-Schritten) in Fahrenheit ausgibt(Abbildung B.6):
<html><body> <table> <tr><td>Celsius</td><td>Fahrenheit</td></tr> <?php function cels_fahr($celsius) { $fahrenheit = ($celsius * 1.8) + 32; return($fahrenheit); }
for($i=0; $i<=100; $i=$i+10) { echo "<tr>"; echo "<td align=right>$i </td>"; echo "<td align=right>".cels_fahr($i). "</td>"; echo "</tr>"; } ?> </table></body></html>
PROF
ITIP
P Wenn wir die Funktion
cels_fahr(100);
einfach nur aufrufen, findet die Berechnung zwar ebenfalls statt, derRückgabewert wird aber nicht verwendet und daher von PHP quasiweggeworfen.
2-6496.book Page 242 Tuesday, November 19, 2002 3:47 PM
Einbinden von Dateien
243
Abbildung B.6: Ausgabe von cels_fahr.php
Natürlich gibt es auch Funktionen mit mehr als einem Parameter. Die einzelnen Para-meter werden in der Funktion und beim Aufruf mit Kommata getrennt.
function viele_parameter($a, $b, $c, $d){ Code... }
B.8 Einbinden von DateienDie Funktion require ermöglicht das Einbinden von Dateien in den aktuellen PHP-Code. Sie sollten diese Möglichkeit vor allem dazu verwenden, um Funktionen, die Siehäufig benötigen, in eigene Dateien auszulagern. Diese Datei können Sie dann mitrequire(dateiname) oder include(dateiname)einbinden und auf die Funktio-nen zugreifen. Beispiel:
<?php/* in umrechnung.php sind diverse Funktionen definiert */require("umrechnung.php"); echo cels_fahr(100);?>
VORS
ICHT
!
Beim Aufruf dürfen Sie keinen Parameter weglassen, sonst erscheinteine Warnmeldung.
2-6496.book Page 243 Tuesday, November 19, 2002 3:47 PM
244
PHP nebenbei gelernt
B.9 Globale und lokale VariablenSehen Sie sich einmal folgende Funktion zum Umrechnen von Euro in Dollar an:
function euro2dollar($euro) { return($euro * 0.92); }
Es wäre doch eleganter, den Dollarkurs (im Beispiel 0,92 Cent pro Euro) in einer eigenenVariablen außerhalb der Funktion zu speichern. Dann könnte man den Kurs leichterverändern, auch in anderen Funktionen verwenden oder auf der Webseite ausgeben.
Der logische Ansatz hierfür wäre:
<?php $dollarkurs=0.92;
function euro2dollar($euro) { return($euro * $dollarkurs); }
echo "100 Euro sind".euro2dollar(100)."Dollar";?>
Das funktioniert allerdings nicht. PHP erwartet nämlich, dass Sie in einer Funktion alleVariablen, die außerhalb der Funktion definiert wurden, zuerst mit dem Schlüsselwortglobal kennzeichnen:
$dollarkurs=0.92;
function euro2dollar($euro) { global $dollarkurs; return($euro * $dollarkurs); }
Die Variable $dollarkurs bezeichnet man daher auch als globale Variable. Auf dieseVariable kann man – da sie global, also außerhalb einer Funktion definiert wurde –innerhalb jeder Funktion zugreifen.
Lokale Variablen sind Variablen, die innerhalb einer Funktion definiert wurden. DieseVariablen stehen außerhalb der Funktion nicht zur Verfügung.
Der folgende Code gibt daher nur einmal den Text „Hallo“ aus.
function printhallo() { $nachricht="<p>Hallo"; echo $nachricht;}printhallo(); // ausgabe "Hallo"echo $nachricht; // keine ausgabe
2-6496.book Page 244 Tuesday, November 19, 2002 3:47 PM
Arrays
245
Beim zweiten echo-Aufruf außerhalb der Funktion ist die Variable $nachricht nichtdefiniert, da sie nur lokal innerhalb von printhallo() zur Verfügung steht.
B.10 ArraysEin wichtiger Datentyp in PHP sind Arrays. Dabei handelt es sich vereinfacht ausge-drückt um Variablen, die mit einem Index versehen sind und beliebig viele Inhaltegleichzeitig speichern können. Zum Beispiel:
$monat[0] = "Januar";$monat[1] = "Februar";$monat[2] = "März";
Verwendet man bei der Zuweisung eine leere Klammer, werden die Inhalte am Endedes Arrays hinzugefügt. Die weiteren Monate lassen sich also auch folgendermaßeneintragen:
$monat[] = "April";$monat[] = "Mai";
Der Zugriff auf die Array-Elemente erfolgt dann über den Index. $monat[3] liefertz.B. den Wert "April" zurück. Mit der PHP-Funktion count($monat) kann man dieAnzahl der gespeicherten Elemente errechnen lassen. Wir können damit eine for-Schleife programmieren, die alle Elemente ausgibt:
for($j=0; $j<count($monat); $j++) { echo $monat[j].”<br>”;}
Für den komfortablen Umgang mit Arrays existieren wie für viele andere Aufgabenauch jede Menge Funktionen. Diese können Sie bei Bedarf in der Online-Dokumen-tation nachschlagen.
B.11 Häufige Fehler
PHP-Datei nicht im Webserver aufgerufenDiesen Fehler macht man meist in Verbindung mit HTML-Formularen. Die Formu-lare zeigt der Browser korrekt an (sofern sie als HTML-Datei gespeichert wurden).Nach dem Absenden erscheint entweder gar nichts oder ein Teil des PHP-Codes.
2-6496.book Page 245 Tuesday, November 19, 2002 3:47 PM
246
PHP nebenbei gelernt
Dollarzeichen vergessen Ohne Dollar keine Variablen. Leider interpretiert PHP dollarlose Variablen als Kon-stanten und gibt keine Fehlermeldung aus.
Falsche String-VerkettungStrings mit + zu verketten führt zu lauter Nullen in der Ausgabe.
Globale Variablen in Funktionen nicht deklariert In einer Funktion müssen Sie alle globalen Variablen, die Sie verwenden möchten, mitdem Schlüsselwort global definieren. Ansonsten sind diese Variablen leer und Sie er-halten falsche Ergebnisse.
PROF
ITIP
P
Achten Sie immer darauf, dass die URL im Browser mit HTTPbeginnt, und speichern Sie am besten keine HTML-, sondern nurnoch PHP-Dateien.
PROF
ITIP
P
Verwenden Sie so oft wie möglich Strings innerhalb von echo-Anführungszeichen, um sich die Verkettungen zu sparen.
PROF
ITIP
P
Deklarieren Sie jede globale Variable, die Sie benötigen, direkt amAnfang der Funktion.
2-6496.book Page 246 Tuesday, November 19, 2002 3:47 PM
Hilft mir denn keiner?
247
Zuweisung statt Identitätsprüfung Gleich ist nicht gleich: Wer in einer Bedingung aus Versehen = statt == verwendet,weist den dahinter stehenden Wert zu und braucht sich nicht zu wundern, wenn dieBedingung immer zutrifft.
Nicht-existente Formularvariablen Achten Sie auf die Namen der Formularfelder in der HTML-Datei. Bereits beimkleinsten Vertipper erhalten Sie leere Variableninhalte im PHP-Code und damit fal-sche Ergebnisse im Programm.
B.12 Hilft mir denn keiner?Keine Angst, Sie sind nicht allein. Der Open-Source-Gedanke, der PHP zu seinem Erfolgverholfen hat, sorgt auch im Web für einen umfassenden Fundus an Informationen,Scripts und Applikationen. Dieses Unterkapitel versorgt Sie mit den nötigen Informa-tionen, um die im Web angebotenen Hilfen effektiv nutzen zu können.
Die Mutter aller PHP-SeitenZentrale Anlaufstelle ist natürlich http://www.php.net. Auf dieser Seite steht die jeweilsaktuellste PHP-Version für UNIX/Linux und Windows zum kostenlosen Downloadzur Verfügung. Doch nicht nur die PHP-Sourcen findet man hier, sondern auch einumfangreiches Online-Manual der Scriptsprache, dessen Vielfalt kaum zu überbietenist. Neben der Online-Version in zwölf verschiedenen Sprachen gibt es in ebensovielen Sprachen eine druckerfreundliche Version ohne webtypische Zutaten. PHP-Programmierer können sich das Handbuch auch von einer eigenen Downloadseite, alsText-, PDF- oder Windows-Help-File, auf ihren PC laden. Selbst das DOCFormat desPalm Pilot steht zur Auswahl. Interessant ist vor allem die interaktive Variante desManuals. Hier können Leser Kommentare, Ergänzungen und Anmerkungen zu deneinzelnen Abschnitten hinzufügen. Es ist gewissermaßen ein Handbuch, das ständigfortgeschrieben wird. FAQs und eine Mailingliste ergänzen das Angebot der Site.
PROF
ITIP
P
Nach jeder Änderung der Formularfelder im HTML-Code sollten Siesofort auch die Namen im PHP-Code anpassen.
2-6496.book Page 247 Tuesday, November 19, 2002 3:47 PM
248
PHP nebenbei gelernt
NewsgroupsAuch die PHP-relevanten Newsgroups sind eine hervorragende Wissensquelle. Allerdingsist der Zugang via Mail-Client oder Newsreader nicht jedermanns Sache. Es gibt jedochAlternativen: Über http://news.php.net kommt der Interessierte auf ein Webinterface,über das er Zugriff auf die relevanten Diskussionsrunden hat. Ein alternatives Webinter-face bietet die Suchmaschine Google. Unter der Adresse http://groups.google.com kannder Interessierte sogar gezielt mithilfe von Stichwörtern in diesem gigantischen Fundusrecherchieren, ohne die Browserumgebung verlassen zu müssen.
Wer mit Newsgroups überhaupt nichts am Hut hat, muss auf das dort angesammelteWissen dennoch nicht ganz verzichten. Auf der Seite http://www.dclp-faq.de sind die in-teressantesten Beiträge aus der deutschsprachigen Newsgruppe de.comp.lang.php zu einerinformativen und gut gegliederten Liste mit FAQs zusammengestellt (Abbildung B.7).
Abbildung B.7: Die FAQs auf www.dclp-faq.de
Deutsche WebseitenDie vorherrschende Sprache in der PHP-Gemeinde ist zwar Englisch, es gibt jedochauch viele deutschsprachige Websites mit informativen PHP-Inhalten. Auf der Seitehttp://www.phpwelt.de gibt es als zentrales Angebot eine umfangreiche und gut doku-mentierte Scriptsammlung mit über 1.000 Einträgen. Die Suche nach einem passen-den Provider erleichtert eine Datenbank mit über 100 Angeboten. Das PHP-Portalbietet darüber hinaus noch jede Menge Artikel, eine Jobbörse, ein Forum und Infosper E-Mail.
2-6496.book Page 248 Tuesday, November 19, 2002 3:47 PM
Hilft mir denn keiner?
249
Lohnenswert ist auch ein Besuch der Site http://www.phpCenter.de (Abbildung B.8).Das PHP-Center wurde im April 1999 mit dem Ziel gegründet, eine umfassendedeutschsprachige Ressource zur Scriptsprache PHP zur Verfügung zu stellen. PHP-Freaks finden hier Foren, Artikel, eine gut kommentierte und gegliederte Linksamm-lung sowie Fallstudien.
Abbildung B.8: Die Homepage von PHPCenter.de
Eine weitere deutschsprachige Pflichtadresse in Sachen PHP ist die Site http://www.dy-namic-webpages.de, auf der es aktuelle News, eine umfangreiche Scriptsammlung so-wie gut besuchte Foren gibt. Umfangreich, aber leider wenig strukturiert, ist dieLinksammlung zum Thema PHP. Besucher können jeden Link kommentieren.
Vor allem an PHP-Neulinge wendet sich die Seite http://www.php-homepage.de. An-fänger können sich mit ihren Fragen im gut besuchten Forum zu Wort melden. EinBlick auf die Einträge zeigt, dass kaum ein Statement unbeantwortet stehen bleibt.
Es gibt in Deutschland auch Gruppen und Vereine, die PHP auf ihre Fahnen geschrie-ben haben und die natürlich auch das Web als virtuelles Verlautbarungsorgan nutzen.Die PHP-Usergroup ist unter http://www.phpug.de zu finden.
2-6496.book Page 249 Tuesday, November 19, 2002 3:47 PM
250
PHP nebenbei gelernt
Eine übersichtliche PHP-Scriptsammlung ist das Highlight auf der Seite http://www.php-guide.de. Etwas offizieller geht es im PHP e.V. zu. Der Verein wurde im Juli2001 gegründet. Ziel des Vereins ist es, die Verbreitung von PHP zu forcieren sowieInteressierten und Nutzern als Anlauf- und Kommunikationsstelle zu dienen. Durchdie Organisationsform des Vereins sollen Projekte ermöglicht werden, die Einzelper-sonen nur schwer in die Tat umsetzen können. Außerdem will der Verein Bildungsan-gebote für öffentliche Bildungseinrichtungen, Privatpersonen und Firmen anbieten,einen PHP-Almanach erstellen und einen jährlichen Wettbewerb zur Wahl des PHP-Projekts des Jahres ins Leben rufen.
Zusätzlich will man auf Messen und Kongressen PHP-Flagge zeigen sowie PHP-Tref-fen veranstalten. Interessierte können sich auf der Site http://www.php-ev.de über dieVereinsaktivitäten auf dem Laufenden halten.
Außer deutschen Seiten gibt es natürlich eine Fülle englischsprachiger Seiten im Inter-net. Erwähnenswert ist hier zum Beispiel die Scriptsammlung unter http://www.hot-scripts.com, die rund 2.500 Scripts beinhaltet. Im Mittelpunkt stehen natürlich dasDesign und die effiziente Programmierung dynamischer Websites. Weitere Seiten fin-den Sie in der folgenden Übersicht.
Übersicht über deutschsprachige Websites:
http://www.php-center.de
http://www.php-guide.de
http://www.dynamic-webpages.de
http://www.php-homepage.de
http://www.phpwelt.de
http://www.php-resource.dew
http://www.php-source.de
http://www.php4a11.net
http://www.phptutorials.de
http://www.php-tools.de
http://www.phpug.de
http://www.php-ev.de
2-6496.book Page 250 Tuesday, November 19, 2002 3:47 PM
Hilft mir denn keiner?
251
Übersicht über internationale Websites:
http://www.php.net
http://phpdeveloper.org
http://www.phpwizard.net
http://www.powie.de/pnews/index.php
http://www.phpbuilder.com
http://php.resourceindex.com
http://www.onlamp.com/php/
http://www.devshed.com/Server-Side/PHP/
http://php.weblogs.com
http://www.phpheaven.net
http://www.opendeveloper.org/PHP
http://www.websitetips.com/php/
http://www.hotscripts.com
http://www.zend.com
http://www.maguma.com
2-6496.book Page 251 Tuesday, November 19, 2002 3:47 PM
2-6496.book Page 252 Tuesday, November 19, 2002 3:47 PM
Anhang C
Was ist Open-Source-Software?
Um dem Medienwirbel um die „Gratis"-Software ein wenig Aufklärung entgegen-zusetzen, wurde Ende 1998 die Open-Source-Initiative (OSI) gegründet (http://www.opensource.org). Sie hat sich zum Ziel gesetzt, mit den Gerüchten und Vorurtei-len aufzuräumen, die sich um freie Software rankten. Zu diesem Zweck wurde mitOpen Source ein neuer Begriff für „freie Software“ eingeführt und markenrechtlich ge-schützt. Außerdem hat die OSI klare Richtlinien für Open-Source-Softwarelizenzenaufgestellt. Diese Richtlinien beinhalten im Wesentlichen Folgendes:
Freie WeiterverbreitungDie Lizenz muss jedermann das Recht einräumen, die Software weiterzugeben, unab-hängig davon, ob dies gratis geschieht oder nicht.
QuellcodeDie Weiterverbreitung muss inklusive Quellcode geschehen.
Auf dem Programm basierende WerkeDie Lizenz muss die Veränderung des Originalprogramms und die Weiterverbreitungdes veränderten Programms unter den gleichen Bedingungen erlauben.
Integrität des OriginalcodesDie Verbreitung von veränderten Programmen darf nur eingeschränkt werden, wenndie Verbreitung von Patch-Dateien, also Dateien, die die Unterschiede zu den Origi-naldateien enthalten, gestattet ist. Die Lizenz kann andere Namen oder Versionsnum-mern von abgeleiteten Programmen verlangen.
Keine DiskriminierungDie Lizenz darf keine Personen oder Personengruppen von der Benutzung oder Ver-änderung des Programms ausschließen.
2-6496.book Page 253 Tuesday, November 19, 2002 3:47 PM
254
Was ist Open-Source-Software?
Keine Einschränkung auf bestimmte AnwendungenDie Lizenz darf den Einsatz der Software für bestimmte Zwecke nicht verbieten.
Verbreitung der LizenzDie Bestimmungen der Lizenz müssen ohne zusätzliche Einschränkungen für jedengelten, der das Programm erhält.
Gültigkeit nur für ein bestimmtes Produkt Die Bestimmungen der Lizenz dürfen nicht davon abhängen, dass das Programm Teileiner bestimmten Softwaredistribution ist.
Keine Beeinträchtigung anderer SoftwareDie Lizenz darf andere Software nicht beeinträchtigen.
Lizenzen, die sich an diese Regeln halten, dürfen sich dann Open-Source-Lizenzennennen. Die Gründung der OSI hat dazu geführt, dass sich das Bild der Open-Source-Software änderte, und die Computerindustrie begann sich mit den neuen Gegebenhei-ten zu arrangieren.
2-6496.book Page 254 Tuesday, November 19, 2002 3:47 PM
Anhang D
TroubleshootingWer häufiger mit Computern zu tun hat, weiß aus Erfahrung, dass niemals alles glattgeht. Der Normalfall ist eher, dass Schwierigkeiten und Probleme auftauchen. Das istnatürlich immer eine Quelle von Frustration, aber man muss sich einfach damit abfin-den, dass auch Computer nicht perfekt sind und dass die größte Fehlerquelle meist vordem Computer sitzt.
Wenn Sie Hilfe benötigen, probieren Sie es als Erstes auf der Homepage des Scripts. Inallen Kapiteln weise ich auf Homepages und eventuelle Support-Foren hin.
Sie können mir bei schwerwiegenden Problemen auch eine E-Mail senden [email protected]. Ich kann Ihnen nicht versprechen, dass Sie immer soforteine Antwort erhalten, aber ich bemühe mich. Zusätzlich stellt Markt+Technik unterwww.mut.de/service/support.asp ein umfangreiches Support-Angebot zur Verfügung,in dem Sie ebenfalls Hilfe erhalten.
Ich möchte Ihnen im Folgenden noch ein paar häufige Stolpersteine vorstellen, auf dieSie vielleicht beim Ausprobieren der vorgestellten Scripts stoßen.
D.1 MySQL Demon und Apache gestartet?Damit Sie auf Ihrem lokalen Testsystem Scripts testen können, müssen der WebserverApache und der MySQL-Prozess laufen. Wenn Sie PHPTriad verwenden, können SieApache starten, indem Sie im Startmenü den Eintrag Start Apache unter Programs/PHPTriad/Apache Console wählen.
Unter Programs/PHPTriad/MySQL finden Sie zwei Einträge, von denen Sie einen aus-wählen müssen, um den MySQL-Hintergrundprozess zu starten. MySQL-D wählenSie für Windows 98/ME und MySQL-D-NT für Windows NT/2000/XP.
Falls der Webserver gestartet ist, erhalten Sie unter http://localhost eine Begrüßungs-meldung. Wenn der MySQL-Prozess läuft, können Sie sich mit dem Administrations-tool verbinden: http://localhost/phpmyadmin.
2-6496.book Page 255 Tuesday, November 19, 2002 3:47 PM
256
Troubleshooting
D.2 Ist der MySQL-Benutzer „donald“ erzeugt worden?Für die meisten Scripts ist es erforderlich, eine Benutzerkennung anzugeben, unter derdas Script auf die MySQL-Datenbank zugreift. In Kapitel 2 wurde daher der Benutzerdonald angelegt. Wenn Sie das zweite Kapitel übersprungen haben, fehlt Ihnen dieserBenutzer. Lesen Sie in Kapitel 2 nach, wie Sie ihn erzeugen können.
Der MySQL-Zugang Ihres Webspaces benutzt wahrscheinlich eine andere Kennungals donald. Dann müssen Sie donald entsprechend ersetzen, wenn Sie die Scripts aufIhrem Webspace laufen lassen.
D.3 Winzip und .tar.gz-DateienEinige Archive auf der CD-ROM sind im .tar.gz-Format. Dieses Format ist von Winziplesbar, aber nur, wenn Sie es mit Winzip öffnen. Bei Doppelklick auf dieses Archivformatkann es sein, dass Windows nicht weiß, dass es diesen Dateityp mit Winzip öffnen soll.
D.4 Dateirechte auf dem WebspaceWenn Sie Dateien per FTP auf Ihren Webspace übertragen, werden Ihnen Standardrechtezugewiesen. Es kann sein, dass diese Standardrechte nicht ausreichen. Falls Sie eine Feh-lermeldung erhalten, die auf ein Rechteproblem schließen lässt, versuchen Sie die Rechtezu erhöhen. Die Rechte können Sie setzen, indem Sie Dateien im SmartFTP-Fenster aus-wählen und dann mit Rechtsklick ein Kontextmenü aufrufen. Dort wählen Sie den Ein-trag Properties/CHMOD. Im folgenden Fenster können Sie unter der Rubrik Permissionsdie Rechte verändern. Probieren Sie bei Problemen einmal aus, alle Rechte zu vergeben.Wenn es dann immer noch nicht läuft, lag es nicht an den Rechten. Wenn es aber funk-tioniert, lesen Sie in den jeweiligen Readme-Dateien der Scripts nach, ob spezielle Dateienbestimmte Rechte benötigen und ändern Sie die Rechte entsprechend ab.
D.5 Scriptkonfiguration für WebspaceWenn ein Script auf Ihrem lokalen Testsystem mit PHPTriad läuft und Sie alles soweitausgetestet haben, wollen Sie es wahrscheinlich auch auf Ihren Webspace übertragen.Wie Sie das mithilfe eines FTP-Programms machen, wurde bereits in Kapitel 1 erläu-tert. Wenn Sie alle Dateien überspielt haben, müssen Sie aber noch die Konfigurationanpassen, denn Sie wird in den wenigsten Fällen mit der Konfiguration Ihres lokalenSystems identisch sein. Wenn Sie die Konfiguration für Ihren Webspace anpassen,vergessen Sie nicht, die veränderte Konfigurationsdatei per FTP wieder auf IhrenWebspace zu übertragen.
2-6496.book Page 256 Tuesday, November 19, 2002 3:47 PM
GlossarGlossar
Administrator
Verwalter eines Rechners oder einer Applikation, der zuständig ist für die korrekteFunktionsweise und für Problemlösungen aller Art.
Binärmodus
FTP-Programme wie SmartFTP kennen zwei verschiedene Übertragungsmodi für Da-teien: ASCII (Text) oder binär. Dokumente und Textdateien sollten im ASCII-Modusübertragen werden, Bilder oder ausführbare Programme dagegen im Binärmodus.Oftmals wird der Übertragungsmodus automatisch eingestellt.
Chatter-Slang
Umgangssprache für Chat-Räume im Internet, die hauptsächlich aus Abkürzungenund Bezeichnungen für Mimiken besteht.
CGI
Common Gateway Interface. Eine Art Übertragungsprotokoll bzw. Schnittstelle fürserverseitige Scripts. Diese werden dann in einer serverseitigen Programmiersprachewie Perl erstellt. Historisch gesehen ist CGI die älteste Technik, um Daten zwischenWebseiten und Webservern auszutauschen. HTML-Formulare können Daten an CGI-Programme schicken, die diese dann auswerten.
Cookie
Kleines Datenpaket, das vom Webserver geschickt wird und auf Ihrer Festplatte ge-speichert wird. Dadurch können Sie die Website später wieder identifizieren.
CSS
Cascading Style Sheets. Formatierungssprache für Stylesheets. CSS-Dateien haben dieDateiendung .css. CSS liegt mittlerweile in der Version 2.0 als Standard des W3C vor.
Domain
Eindeutiger Name für eine Website im Internet; beispielsweise in der Form http://www.domain.de.
2-6496.book Page 257 Tuesday, November 19, 2002 3:47 PM
258
Glossar
Electronic Mail oder elektronische Post. Nachrichten, die über elektronische Datenwegeausgetauscht werden. Eine E-Mail-Adresse hat immer die Form [email protected],wobei toplevel für das Länderkürzel steht (in Deutschland de).
Fallunterscheidung
Auch Kontrollstruktur. In Programmiersprachen eingesetztes Mittel, um mehrere Be-dingungen zu überprüfen und je nach Zutreffen der Bedingung Anweisungen zu geben.
Formular
Eingabemaske, in die der Nutzer Dateien eintragen kann. Ein Formular besteht ausverschiedenen Elementen wie Kontrollkästchen, Pull-Down-Menüs und Textkästen.Zum Versand von Formularen wird eine serverseitige Programmiersprache wie ASP,PHP oder Perl verwendet.
FreeBSD
Freier Unix-Klon ähnlich wie Linux
Frame
Eine Webseite kann aus mehreren Teilen, so genannten Frames, bestehen. Beispielesind Navigationsleiste und Inhaltsframe. Jedes dieser Teile ist eine eigene HTML-Dateiund unabhängig von den übrigen Frames scrollbar.
FTP
File Transfer Protocol. Wird benutzt, um Dateien zwischen Rechnern im Internet aus-zutauschen.
GIF
CompuServe Graphics Interchange. Ursprünglich von CompuServe entwickeltes Bild-format, das im Internet eingesetzt wird. Es unterstützt nur 256 Farben und kann eineTransparenzfarbe besitzen. Mit einer Gif-Datei, die mehrere bilder enthält, lassen sichAnimationen realisieren. Der Kompressionsalgorithmus des Gif-Formats steht untereinem Patent von Unisys und muss daher von den Herstellern von Grafikprogrammenlizensiert werden.
IIS
Internet Information Server, Webserver von Microsoft
IP-Adresse
IP steht für Internet Protocol. Jeder Rechner im Internet hat eine eindeutige Adresse,die zurzeit 4 Byte groß ist und das Format x.x.x.x hat, wobei x zwischen 0–255 liegenkann.
2-6496.book Page 258 Tuesday, November 19, 2002 3:47 PM
Glossar
259
Java
Von Sun entwickelte Programmiersprache, die sich auf vielen Plattformen ausführenlässt (Windows, Unix, MacOS und andere). Dafür ist allerdings eine so genannte Vir-tual Machine nötig. Java gewinnt vor allem im serverseitigen Bereich an Bedeutung.Hier wird es in Form von Enterprise Java Beans und Java Servlets eingesetzt.
Java-Applet
Kleines Java-Programm, das innerhalb eines Browserfensters abläuft.
Java-Laufzeitumgebung
Auch Java Runtime Environment (JRE). Programmpaket, das installiert sein muss, umJava-Programme auszuführen.
JavaScript
Programmiersprache, die von Webbrowsern interpretiert wird. JavaScript ist eine Er-gänzung zu HTML und wurde von Netscape ins Leben gerufen. JavaScript enthältwichtige Funktionen zum Programmieren wie beispielsweise Schleifen und Variablen.
JPEG
Joint Photographic Experts Group. Dateiformat für das Web. JPEG hat eine verlust-behaftete Komprimierung und eignet sich besonders für Fotos und Grafiken mit vie-len Farbabstufungen.
Kommentar
Teil des Quellcodes einer Programmiersprache, der beim Ausführen ignoriert wird.Ein Kommentar soll normalerweise den Aufbau des Programms erläutern.
LAMP
Kombination aus Linux, Apache, MySQL und PHP
Link
Verweis von einer Webseite auf eine andere. Ein Link kann relativ (z.B. images) oderabsolut (http://www.mut.de) erfolgen.
Linux
Auf UNIX basierendes Betriebssystem, das als Open Source zur Verfügung gestelltwird und immer mehr Anhänger findet.
Localhost
URL für den lokalen Rechner. Entspricht der so genannten Loopback-Adresse127.0.0.1.
2-6496.book Page 259 Tuesday, November 19, 2002 3:47 PM
260
Glossar
Mozilla
Open-Source-Projekt, das die Basis für den neuen Netscape Browser (Netscape 6 und7) gelegt hat. Das Besondere ist, dass der Quellcode offen liegt und sich jeder an derEntwicklung beteiligen kann. Den aktuellen Zwischenstand finden Sie unter http://www.mozilla.org.
MySQL
Datenbanksystem, das auf dem Open-Source-Gedanken basiert und somit frei erhält-lich ist. Bestandteil von PHPTriad und LAMP-Konfigurationen.
Netscape
Mittlerweile von AOL/Sun aufgekaufter Browserhersteller. Programmiert den Web-browser Netscape Navigator. Dieser liegt mittlerweile in Version 7 vor.
Newsgroups
Foren, in denen Neuigkeiten ausgetauscht werden und die es schon vor der Erfindungdes World Wide Webs gab.
Nickname
Spitzname zur Identifikation in Chats oder Foren
Open Source
Unter Open Source fallen Programme und Code, die offen zur Verfügung gestellt wer-den. Die Weiterverwendung von Open-Source-Software wird in Lizenzen wie bei-spielsweise GPL geregelt. Bekannte Open-Source-Projekt sind das BetriebssystemLinux, der Webserver Apache, die Datenbank MySQL und die Scriptsprache PHP.
Oracle
Bekanntes kommerzielles Datenbanksystem vom gleichnamigen Hersteller
Perl
Serverseitige Programmiersprache, die über sehr viele Möglichkeiten verfügt. Für Ein-steiger ist allerdings die Syntax schwerer zu erlernen als bei ASP oder PHP.
Plug-In
Erweiterung für einen Webbrowser oder für ein Programm, das zusätzliche Funktio-nalitäten bietet.
PHP
Serverseitige Programmiersprache, die auf Open Source basiert und mittlerweile auf-grund der Vielzahl an Möglichkeiten eine sehr weite Verbreitung gefunden hat.
2-6496.book Page 260 Tuesday, November 19, 2002 3:47 PM
Glossar
261
PNG
Portable Network Graphics. Format für Bilder im Web. Wurde entwickelt, um Copy-right-Probleme mit dem LZW-Algorithmus des GIF-Formats zu umgehen, hat sichdann aber über GIF hinausentwickelt. Unterstützt als PNG-2 zwei Farben, als PNG-416, als PNG-6 128 und als PNG-8 256 Farben. PNG-24 beinhaltet 16,8 Millionen Far-ben, dafür werden die Bilddateien auch deutlich größer. PNGs werden verlustfreikomprimiert und erlauben Transparenz sowie Animationen (was noch nicht von allenBrowsern unterstützt wird).
Primärschlüssel
Wert in einer Spalte einer Datenbanktabelle, der die zugehörige Zeile dieser Daten-banktabelle eindeutig bestimmt.
Provider
Firma, die Ihnen den Zugang zum Internet ermöglicht. Beispiele sind T-Online, AOLoder freenet.
Quellcode
Auch Programmcode oder Sourcecode. Rohform eines Programmes in einer Pro-grammiersprache. Seitenbeschreibungssprachen wie HTML und Skriptsprachen wieJavaScript und PHP müssen nicht kompiliert (in ausführbare Programme verwandelt)werden, deshalb ist ihr Quellcode immer zugänglich.
RGB-Farbsystem
RGB steht für Rot, Grün und Blau, die drei Farbanteile des Farbsystems. Das RGB-Farbsystem fügt die drei Farbkanäle zusammen und bildet daraus die Farben. Es wirdbeispielsweise von Monitoren eingesetzt..
Schleife
Wird in Programmiersprachen eingesetzt. Wiederholtes Ausführen einer Anweisung,bis eine bei jedem Durchlauf überprüfte Bedingung nicht mehr zutrifft.
serverseitig
Eine Aktion, die auf dem Server ausgeführt wird.
SMTP
Simple Mail Transfer Protocol. Protokoll, das es ermöglicht, E-Mails zu versendenund weiterzuleiten. Wird von einem Mailserver benutzt. Ein bekannter Vertreter einerSMTP-Serversoftware ist sendmail.
Solaris
Bekanntes kommerzielles Betriebssystem von Sun, das auf UNIX basiert.
2-6496.book Page 261 Tuesday, November 19, 2002 3:47 PM
262
Glossar
Stil
Auch Stil-Befehl. Eine Anweisung in einem Stylesheet, die eine bestimmte Formatie-rung vornimmt. Ein Stil kann, genau wie ein HTML-Attribut, einen Wert annehmen.Der Wert enthält die eigentliche Formatierung.
Stylesheets
Stylesheets dienen in HTML-Seiten als Ergänzung zur Formatierung und Positionie-rung von Elementen. Stylesheets können an zentraler Stelle definiert und auf verschie-dene Bereiche angewendet werden. Dann nennt man sie externe Stylesheets. FürStylesheets muss eine spezielle Sprache eingesetzt werden. Bei HTML-Seiten ist dasnormalerweise CSS. Für XML heißt die Stylesheet-Sprache XSL.
SVG
Scalable Vector Graphics. Auf XML basierende Beschreibungssprache zum Erstellenvon Vektorgrafiken und Vektoranimationen für das Web. Hauptsächlich von Adobeals Konkurrenz zu Macromedias proprietärem Flash-Format unterstützt.
Tabelle
Eine Tabelle in HTML besteht aus Zeilen mit Zellen. Die Zellen bilden natürlich eben-falls Spalten, die aber nicht explizit definiert werden. Neben dem klassischen Einsatzals Layout-Element können Tabellen auch zum Positionieren von Objekten und zumStrukturieren einer Webseite verwendet werden.
Tag
Jeder HTML-Befehl wird als Tag bezeichnet. Die meisten Tags bestehen aus einemAnfangs-Tag und einem End-Tag. Eine Ausnahme ist zum Beispiel das <br>-Tag. EinTag kann mehrere Attribute enthalten.
URL
Uniform Ressource Locator. Die Internetadresse, die man bei einem absoluten Linkangeben muss, beispielsweise http://www.pearson.de.
Variable
Datenspeicher in einer Programmiersprache, der seinen Wert ändern kann.
Web
Das World Wide Web (WWW oder W3) ist der grafische Teil des Internets. Um Seitendes World Wide Web betrachten zu können, benötigen Sie einen Webbrowser, der dieHTML-Seiten rendert.
2-6496.book Page 262 Tuesday, November 19, 2002 3:47 PM
Glossar
263
Webbrowser
Der Webbrowser stellt die HTML-Seiten dar. Dazu interpretiert er den HTML-Codeund rendert die Seite. Zusätzlich stellt er die mitgelieferten Grafiken dar. Mit Plug-Ins,die manchmal zum Standardumfang gehören, lassen sich zusätzliche Formate wie bei-spielsweise Flash oder SVG darstellen.
Webseite
Einzelne HTML-Seite mit den dazugehörigen Bildern. Eine Webseite ist meist Teileiner Website.
Webserver
Rechner, der ständig an das Internet angebunden ist. Per URL kann jeder Nutzer mitInternetanschluss auf die Webseiten auf dem Webserver zugreifen. Um Daten auf denWebserver zu laden, wird meist FTP eingesetzt.
Andere Bedeutung:
Das Programm, das auf dem Server liegt. Eine Art Application-Server, der verschiede-ne Dienste und Funktionen wie serverseitige Programmiersprachen zur Verfügungstellt und die HTML-Seiten inklusive Grafiken, Stylesheets sowie Scripts an den Nut-zer schickt. Beispiele sind Apache und der Microsoft Internet Information Server (IIS).
Websichere Farben
Ursprünglich von Netscape entwickelte Farbpalette mit 216 Farben, die es sowohl aufdem Macintosh als auch unter Windows gibt. In der Praxis spielt diese Palette keinegroße Rolle mehr, da die meisten Rechner mehr als 256 Farben unterstützen. Solltedies nicht der Fall sein, ist in der Regel auch der Webbrowser in der Lage, fehlende Far-ben aus anderen zusammenzusetzen (Dithering).
Website
Komplettes Internetangebot, das sich unter einem Domainnamen verbirgt. Eine Web-site besteht aus mehreren Webseiten. Die Einstiegsseite wird als Homepage bezeichnet.
Webspace
Festplattenplatz auf einem Webserver im Internet. Wird von so genannten Hosternangeboten, die oft auch Provider sind.
Wert
Der Wert ist die Information, die einem Attribut zugewiesen wird. Ein Wert kann ausZahlen oder Zeichen bestehen. Dies hängt von der Art des Attributs ab.
Zip-Archiv
Archivdatei, die komprimierte Dateibäume enthält. Kann mit Programmen wie Win-Zip gelesen und entpackt werden.
2-6496.book Page 263 Tuesday, November 19, 2002 3:47 PM
2-6496.book Page 264 Tuesday, November 19, 2002 3:47 PM
265
Stichwortverzeichnis
Stichwortverzeichnis
A
Absender-E-Mail-Adresse 65Administrator 56Admin-User 56Advanced Poll 163
Administration 168Admin-User 165Datenbankanbindung 164Einstellungen 170Installation 164Installationsassistent 165Supportforum 183Template-Rubriken 181Templates 176
Aktivieren der Statistikfunktion 46AOL 22Apache 16
B
Balkendiagramm 90Bericht erstellen 46Bestätigungsseite 75Besucherstatistik 39Bilderzeugung 84Bildformat 95Bootsmarkt 218
C
Channel 150erstellen 152
Chat 141Chat-Hygiene 153Chatter ignorieren 154Chatter-Slang 128, 149closeConToDB 101connectToDB 100Content-Management-System 203
CounterCaffe 39CSS 58
D
dataFromDB.php 100dataFromTable 101Dateirechte 35, 256Dateitransfer 26Datenbank 18
erzeugen 27Datenbankbenutzer 40Datenbankdump 27Datenquelle 96Datentyp 71Diagramme 83Diagrammrand 95Dump 27
E
echo 73E-Mail-Vorlage 79
F
FAQs 28Farbverlauf 94Feedback 49Fehlermeldungen 70FormProcessor 63Formulardaten 63
überprüfen 68Forum 185
Antworten 195Beitrag erstellen 194einrichten 192Missbrauch 196Nachrichtentexte 194Verfasser 194
2-6496.book Page 265 Tuesday, November 19, 2002 3:47 PM
266
Stichwortverzeichnis
Fotoalbum 105Bilder hinzufügen 111Eigenschaften 113erstellen 110Hintergrundfarbe 113Voreinstellung 109
Fotos 83, 105Fotosammlung 116Freeware 31FTP 24
G
Gallery 105Benutzer anlegen 113Grundeinstellungen 108Homepage 107Installationsroutine 107Rechtesystem 113sichern 110
Gallery Remote 116Installation 116
Gästebuch 49Farben 59Layout und Design 58
GD-Modul 84Glühen 51Grafiken 83
H
Hintergrundprozess 19Hoster 22hostweb 22Hotnews-Script 138htaccess-Dateien 144HTTP-Header 172
I
IIS 13, 17include-Anweisung 36Integer 71
J
Java Runtime Environment 116Java Virtual Machine 117Java-Laufzeitumgebung 38JEdit 38JpGraph 83
Grundfunktionalität 88Handbuch 103Installationsverzeichnis 88Modul 88Webseite 102
JRE 116JVM 117
K
Kommentare abgeben 55Kreditkartennummer 69
L
Line-ChartModul 88
LiniendiagrammModul 89
localhost 17
M
Manipulation von Bildern 107Marktdurchdringung von PHP 29Mehrere Formulare 76MS SQL Server 186MySQL 18, 30
4.0 30Benutzerkennung 41Monitor 20
N
NetPBM 107Neuigkeiten 121Newseintrag bearbeiten 127
2-6496.book Page 266 Tuesday, November 19, 2002 3:47 PM
267
Stichwortverzeichnis
Newseintrag erstellen 126Newsfader 133Newsgroups 186Newsscroller 133News-System 121Newsticker 134Newstyper 134Nicknames
Datenbank 146
O
Open Source 29Oracle 13, 30Outlook 64
P
Passwort ändern 57Paten 152Persönlicher Channel 155Phorm 63Phorum 186
Admininstrations-Tool 190Admin-User 189Anpassen des Layouts 197Badword-Liste 196Benutzer anzulegen 196Datenbank-Einstellungen 188Erweiterungen 201Farben 197Installation 187Installationsscript 188IP sperren 196Namen sperren 196Navigationstexte 197Sprachdefinition 190Supportforum 201Voreinstellungen 197Zugangskennung 196
PHP 18Module 84
php.ini 65PHP-Konfigurationsdatei 65phpMyAdmin 20PHPNuke 204
Administrationsseite 206Administrator 206Artikel schreiben 218Benutzerrechte 218Blöcke 210Datenbankeinstellungen 205Design-Vorlage 209Einstellungen ändern 208Installation 205Module aktivieren 211Spracheinstellungen 209Template ändern 213Vorschaufunktion 220
PHPOpenChat 141Administrationsseite 150Anpassen des Layouts 156Datenbank 145Frame-Größe 161Hintergrundfarbe 157Inhalt kontrollieren 153Installationsscript 143Login-Formular 158Sprache 146Style-Anweisungen 161Template-Dateien 160Thema 150
PHPTriad 13Pinnwand 185PostgreSQL 186Primärschlüssel 70
R
Radardiagramm 92Redaktionssystem 218Regeln 68Regelwidrige Eingabe 70
2-6496.book Page 267 Tuesday, November 19, 2002 3:47 PM
268
Stichwortverzeichnis
S
Schimpfwörter verbieten 153Schlagzeilen 132Schreibrechte 34Schutzmechanismen 196Scriptkonfiguration 256Seitenzähler 31SimpleNews 121
Darstellungsweisen 132Datenbanktabellen 124einbinden 136Installationsscript 124Kategorie wechseln 127Layout und Design 129Seitenkopf 136Titelgrafiken 128
Skriptsprache 28SmartFTP 24Smileys 149SMTP Server 64Spitzname 147SQL 19Statistikdaten 45Sternenhintergrund 135Style Sheets 58Suchfunktion 55Suchkriterium 55Support-Angebot 255Sybase 186
T
Tachometer 32tar.gz-Dateien 256Task Manager 19Texteditor 38, 154Textpad 38Textskala 95time() 73T-Online 22Tortendiagramm 91Transaktionen 30Tripod 23Troubleshooting 255
U
Umfragen 163einbetten 171erstellen 168Kommentare 170löschen 169Vorlage 176zwei nebeneinander 175
Unsichtbares Formularfeld 73Unwörter 154
V
varchar 71Verbotene Wörter 154Verbreitung von PHP 29very important person 57VIP 57Vorlagendatei 79Vorschau-Funktion 181Votings 163
W
Wahlergebnisse 96Webforen 186Webportal 204Webserver 16Webspace 22
X
X-AchseBeschriftungen 95
xCount 32
Z
Zahlenskala 95Zähler 34Zeilenumbrüche 154Zeitunterschied 52Zeitzonen 51Ziffernset 37Zuordnung 73
2-6496.book Page 268 Tuesday, November 19, 2002 3:47 PM