+ All Categories
Home > Documents > PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100%...

PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100%...

Date post: 11-Jun-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
30
PHP HACKS Tipps & Techniken für dynamische Websites TM Jack D. Herrington Deutsche Übersetzung von Jørgen W. Lang Deutsche Ausgabe O REILLY
Transcript
Page 1: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

PHPHACKS

Tipps & Technikenfür dynamische Websites

TM

Jack D. HerringtonDeutsche Übersetzung von Jørgen W. Lang

Deutsche

Ausgabe

O’REILLY

Page 2: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have
Page 3: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

Jack D. HerringtonDeutsche Übersetzung von

Jørgen W. Lang

Beijing • Cambridge • Farnham • Köln • Paris • Sebastopol • Taipei • Tokyo

TM

Page 4: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

Die Informationen in diesem Buch wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden. Verlag, Autoren und Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für eventuell verbliebene Fehler und deren Folgen.Alle Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt und sind möglicherweise eingetragene Warenzeichen. Der Verlag richtet sich im Wesentlichen nach den Schreibweisen der Hersteller. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung,Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Kommentare und Fragen können Sie gerne an uns richten:O’Reilly VerlagBalthasarstr. 8150670 KölnTel.: 0221/9731600Fax: 0221/9731608E-Mail: [email protected]

Copyright der deutschen Ausgabe:© 2006 by O’Reilly Verlag GmbH & Co. KG1. Auflage 2006

Die Originalausgabe erschien 2005 unter dem TitelPHP Hacks bei O’Reilly Media, Inc.

Die Darstellung eines Propeller Beanies im Zusammenhang mit dem Thema PHPist ein Warenzeichen von O’Reilly Media, Inc.

»Hacks Books« und »The Hacks Series« und darauf basierende Warenzeichen und Logos sind Waren-zeichen von O’Reilly Media und dürfen nicht ohne schriftliche Genehmigung verwendet werden.

Bibliografische Information Der Deutschen BibliothekDie Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar.

Übersetzung und deutsche Bearbeitung: Jørgen W. Lang, HamburgLektorat: Alexandra Follenius, KölnKorrektorat: Sibylle Feldmann, DüsseldorfSatz: DREI-SATZ, HusbyUmschlaggestaltung: Marcia Friedman, Sebastopol & Michael Oreal, KölnProduktion: Andrea Miß, Köln & Geesche Kieckbusch, HamburgBelichtung, Druck und buchbinderische Verarbeitung: Druckerei Media-Print, Paderborn

ISBN-10 3-89721-452-0ISBN-13 978-3-89721-452-1

Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt.

Page 5: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

This book is dedicated to

my wife, Lauren.

You have supported me in everything

I have done and said, and sometimes,

in spite of it.

I love you.

Page 6: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have
Page 7: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

| VII

Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI

Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XV

Kapitel 1. Installation und Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . 11. PHP installieren 12. PEAR-Module installieren 13

Kapitel 2. Webdesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183. Austauschbare Benutzeroberflächen (»Skins«) 184. Eine hierarchische Navigation 235. HTML-Kästen erstellen 266. Karteireiter für Ihr Web-Interface 317. Eigene Seitendesigns für Ihre Kunden mit XSL 358. Einfache HTML-Diagramme erstellen 389. Image-Tags mit korrekten Größenangaben 41

10. HTML-E-Mail verschicken 43

Kapitel 3. DHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4711. Interaktive Tabellenkalkulationen für Ihre Webseiten 4712. Pop-up-Hinweise erstellen 5013. Listen mit freier Reihenfolge per Drag-and-Drop 5214. Dynamische HTML-Diagramme 5615. Inhalte mit Drehpfeilen unterteilen 6116. Digitale Notizzettel 6517. Dynamische Navigationsmenüs 6818. JavaScript-Code dynamisch verschleiern 7119. Eine DHTML-basierte Binäruhr 74

Inhalt

Page 8: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

VIII | Inhalt

20. JSON zähmt Ajax 7721. Eine Diashow mit DHTML 8122. Vektorgrafiken mit PHP 8423. Ein PHP-Farbwähler 8724. Link-Graphen erzeugen 9025. Ein interaktiver Kalender 9326. Den Scrolling-Effekt von Google Maps nachbauen 99

Kapitel 4. Grafiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10727. Vorschaubilder erzeugen 10728. Ansprechende Grafiken mit SVG erstellen 11029. Grafiken mit Hilfe von Objekten vereinfachen 11330. Ein Bild in mehrere Einzelbilder aufteilen 12231. Diagramme mit PHP erstellen 12632. Bilder überlagern 12933. Mit PHP auf iPhoto-Bilder zugreifen 133

Kapitel 5. Datenbanken und XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14934. Bessere SQL-Schemata entwerfen 14935. Datenbankzugriffe absichern 15536. Dynamische Objekte für den Datenbankzugriff 15737. Automatisches Erzeugen von CRUD-Datenbankcode 16338. XML-Daten mit Hilfe von regulären Ausdrücken lesen 17339. Ein Datenbankschema im XML-Format exportieren 17640. Ein einfacher XML-basierter Abfrage-Handler für den

Datenbankzugriff 17941. SQL-Anweisungen für Datenbanken automatisch erzeugen 18142. Code für Datenbankabfragen automatisch erzeugen 18443. CSV-Daten nach PHP konvertieren 19044. Daten direkt aus Webseiten auslesen (Screen Scraping) 19445. Daten aus hochgeladenen Excel-Dateien lesen 19946. Datenbanken mit Excel-Tabellen füttern 20447. Microsoft Word-Dokumente durchsuchen 20948. RTF-Dokumente dynamisch erzeugen 21249. Excel-Tabellen dynamisch erzeugen 21850. Eine Nachrichten-Warteschlange 223

Page 9: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

Inhalt | IX

Kapitel 6. Applikationsdesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22851. Modulare Schnittstellen 22852. Unterstützung für Wiki-Text 23353. Beliebige Objekte in Arrays umwandeln 23654. XML auf die richtige Weise erzeugen 24055. Doppeltes Abschicken von Formularen verhindern 24256. Benutzerdefinierbare Berichte erstellen 24757. Ein Login-System erstellen 24958. Rollenbasierte Sicherheit 25459. Auf MD5-Passwörter umstellen 26360. Wiederverwendbare URLs mit mod_rewrite 26761. Zufällige Werbeeinblendungen 27262. Jetzt kaufen-Buttons 27763. Ermitteln, woher die Besucher Ihrer Site kommen 28764. Informationen aus vCards importieren 28965. vCard-Dateien aus den Daten Ihrer Applikation erzeugen 29166. Ein Shopping-Cart-Programm 293

Kapitel 7. Entwurfsmuster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30267. Objekte beobachten mit dem Observer-Muster 30368. Objekte mit dem Abstract-Factory-Muster erzeugen 30669. Flexibles Erzeugen von Objekten mit dem

Factory-Method-Entwurfsmuster 31070. Abstrakter Konstruktionscode mit dem Builder-Muster 31371. Das Strategy-Muster zum Trennen des Was und Wie 31772. Zwei Module über einen Adapter verbinden 32073. Portabler Code mit dem Bridges-Muster 32474. Erweiterbare Verarbeitung durch Zuständigkeitsketten 32775. Große Klassen durch Komposition aufteilen 33176. APIs mit dem Façade-Muster vereinfachen 33577. Konstante Objekte mit dem Singleton-Muster 33978. Datenmanipulationen mit dem Visitor-Muster vereinfachen 342

Kapitel 8. Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34879. Modultests zum Überprüfen Ihres Codes 34880. Erstellung von Modultests automatisieren 35081. Tote Links finden 355

Page 10: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

X | Inhalt

82. Die Applikation mit simulierten Benutzern testen 35783. Applikationen mit Robots testen 36184. Websites mit einem Spider-Programm überprüfen 36685. Automatisches Erzeugen von Dokumentationen 371

Kapitel 9. Alternative Benutzerschnittstellen . . . . . . . . . . . . . . . . . . . . . . 37586. Eigene Landkarten mit MapServer 37587. Grafische Benutzerschnittstellen mit GTk 38688. RSS-Feeds mit Jabber an Instant-Messaging-Programme

schicken 39089. Chatten Sie über IRC mit Ihrer Webapplikation 39790. RSS-Feeds auf Ihrer PSP lesen 40091. Google mit einem Link-Graphen durchsuchen 40492. Eine neue Schnittstelle für Amazon.com 41093. SMS-Nachrichten mit einem IM-Client verschicken 41494. Flash-Filme nach Bedarf erstellen 417

Kapitel 10. Unterhaltsames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42895. Eigene Google Maps 42896. Dynamische Playlists 43497. Ein Upload-/Download-Bereich für Mediendateien 43798. Den Status von Netzwerkspielen mit PHP überprüfen 44199. Wikipedia auf Ihrer PSP 444100. Ein Wettervergleich 453

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457

Page 11: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

| XI

0

Credits

Über den AutorJack D. Herrington ist ein Programmierer, der bereits im Alter von 13 JahrenApplikationen entwickelte. Das liegt mittlerweile fast 25 Jahre zurück. ImLaufe der Zeit hat er in jeder großen Programmiersprache und für fast jedeUmgebung Software entwickelt.

Er ist Autor von drei Büchern: Code Generation in Action (Manning, 2002)behandelt die Verwendung von Programmen zum automatischen Erzeugenvon Programmiercode. Viele Elemente aus diesem Buch finden sich im Daten-bank-Teil dieses Buchs wieder. In Podcasting Hacks (O’Reilly, 2005) ermutigter seine Leser, mit Hilfe von Podcasts ein Bürgermedium zu schaffen. Seindrittes Buch, PHP Hacks, halten Sie gerade in Händen.

Jack ist Autor von mehr als 30 Artikeln, die sich mit PHP, Codeerzeugung,Digitalfotografie und anderem befassen. In einem seiner Artikel für dasO’Reilly Network hatte Jack den Mut zu behaupten, PHP sei für Firmenan-wendungen genauso gut geeignet wie Java oder .NET. Die darauf folgendeKommentarschlacht dehnte sich bis auf die Slashdot-Website aus und ist,wenn auch in kleinerem Ausmaß, bis heute noch nicht zu Ende.

Jack lebt mit seiner Frau Lori und seiner Tochter Megan in der Gegend umdie San Francisco Bay. Er arbeitet für ein Startup-Unternehmen mit demNamen Leverage Software, das sich auf Netzwerkprogramme spezialisierthat. Davor arbeitete er einige Zeit für Macromedia. Er ist begeisterter Wande-rer, Golfspieler, Hobbykoch, Tischler und (manchmal sogar) Origami-Künst-ler, sofern er nicht gerade mit dem Hacken von PHP beschäftigt ist.

Page 12: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

XII | Credits

GastautorenDie folgenden Personen haben Hacks zu diesem Buch beigetragen:

Ross ShannonRoss Shannon ist ein Student aus Dublin, Irland, der gerade seinen Dok-tor der Informatik am University College Dublin macht.

Ross ist Teilzeit-Webdesigner, der großes Interesse an Webtechnologienhat. Er ist Webmaster für die Website HTMLSource, eine Anleitung fürdas Webdesign (http://www.yourhtmlsource.com/).

Matthew TerenzioMatt Terenzio besitzt mehr als zehn Jahre Erfahrung im Technologie-und Medienbereich. Er hat einen Master-Abschluss in Internet Enginee-ring und war der Hauptarchitekt von Projekten unterschiedlicher Organi-sationen. Hierzu gehört beispielsweise das Berkman Center for Internetand Society an der Harvard Law School.

Fast fünf Jahre lang war er als Senior Web Producer für GreenwichTime.com und StamfordAdvocate.com tätig. Außerdem hat er bei einer Reihehochkarätiger Nachrichten-Websites mitgearbeitet, so z.B. bei NYNews-day.com und OrlandoSentinel.com.

Vor Kurzem hat Matt das Unternehmen BuddyBuilder LLC mitgegrün-det, das eine Reihe von Web 2.0-Diensten gestartet hat, darunter Buddy-Builder.com, SkinnyFarm.com und Newsmarks.com.

Michael MulliganMichael Mulligan ([email protected]) ist ein Softwareentwickler, derseinen Informatik-Master 2005 am College of Engineering der CornellUniversity gemacht hat. Er hat seither in einer Vielzahl verschiedener Fir-men gearbeitet, in Kleinunternehmen, aber auch als Softwareentwicklerbei Apple. Seine vornehmlichen Forschungsinteressen liegen im Bereichder Lern- und Sehfähigkeit von Maschinen.

Im Sommer 2005 heiratete Mike seine wunderschöne Frau Dhipthi Deva-bose und ließ sich in Florida nieder. Er arbeitet jetzt in Vollzeit als Soft-wareentwickler bei Lockheed Martin. Außerdem ist Mike der Autor vonmyPhoto (http://agent0068.dyndns.org/~mike/projects/myPhoto/). In sei-ner Freizeit experimentiert er damit, neue Gerichte zu erfinden und ver-bringt eine Menge Zeit mit Siena, ihrem neuen Welpen.

Dru NelsonDru Nelson war schon 1988 im Internet unterwegs. Nach der Gründungeines ISP-Unternehmens zog er in die Gegend um die San Francisco Bay.Dort war er mit großen Infrastruktur-Projekten für das Internet beschäf-tigt und arbeitete für Firmen wie Four11 (Yahoo! Mail), Diva, eGroups

Page 13: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

Credits | XIII

(Yahoo! Groups), Danger und Blue6. Momentan arbeitet er für Plaxo.com, wo er mit der Entwicklung von Win32-Programmen beschäftigt ist.Unter der Adresse http://www.xxeo.com/ betreibt Dru einen Blog.

Tyler MitchellTyler Mitchell schrieb 2005 das Buch Web Mapping Illustrated (O’Reilly).Er arbeitet als Geographic Information Systems-(GIS-)Manager für Tim-berline Forest Inventory Consultants und lebt im wunderschönen BritishColumbia in Kanada. Er ist außerdem ein regelmäßiger Redner, Modera-tor und Workshop-Leiter bei GIS-Konferenzen. Sein Vorstoß in die OpenSource-Welt begann, als er nach Alternativen zu proprietären Kartogra-fiewerkzeugen suchte. Mittlerweile ist er ein starker Befürworter vonOpen Source-basierter GIS-Software.

Peter LavinPeter Lavin leitet eine Firma für Website-Entwicklung in Toronto. SeineArtikel wurden in einer Reihe von Zeitschriften und Onlinemagazinenveröffentlicht, darunter UnixReview.com und Dr. Dobb’s Journal.Momentan arbeitet er an einem Buch über objektorientierte PHP-Pro-grammierung, das bald bei No Starch Press veröffentlicht werden soll.Nähere Informationen finden Sie unter http://softcoded.com/.

Über den ÜbersetzerJørgen W. Lang lebt als freier Übersetzer, Webdesigner, Programmierer, Do-zent und Musiker in Hamburg. Mit dem Web kam er 1996 zum ersten Mal inKontakt. Im Laufe der folgenden Jahre eignete er sich im Selbststudium einumfassendes Wissen rund um die Webprogrammierung und das Design vonWebseiten an.

Seine Übersetzertätigkeit begann im Jahr 2000 mit dem Buch CGI-Program-mierung mit Perl und umfasst mittlerweile ein Dutzend Titel rund um dasWeb und zu verwandten Themen. Neben seiner Arbeit als Übersetzer stehtJørgen auch als Dozent zu den Themen Webdesign und Webprogrammie-rung zur Verfügung. Während seiner übrigen Zeit widmet sich Jørgen meis-tens dem einen oder anderen Musikprojekt. Zu erreichen ist Jørgen unter derE-Mail-Adresse [email protected].

Page 14: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have
Page 15: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

| XV

0

Einleitung

Im Laufe der letzten Jahre hat sich PHP mehr und mehr einen Namen als her-vorragende Skriptsprache für das Web gemacht, die sowohl in kleinen Skrip-ten als auch in großen objektorientierten Firmenanwendungen zum Einsatzkommt. Dieses Buch deckt das gesamte Spektrum ab und bietet Ihnen dabeieine Themenvielfalt von HTML und Ajax über automatische Codeerzeugungbis hin zu datenbankbasierte Nachrichten-Warteschlangen.

Der in diesem Buch benutzte Code und die Auswahl der Autoren geben denaktuellen Stand in der Web- und Applikationsentwicklung sowie im Grafik-und Multimedia-Bereich wieder. Sie finden eine ausführliche Behandlung desdynamischen HTML (DHTML), mit dem Sie Benutzer Ihrer Website ohneerneutes Laden der Seite eine interaktive Benutzung ermöglichen können; Siewerden lernen, Flash-Filme nach Bedarf zu erzeugen, und wir zeigen Ihnenauch, wie Sie PHP für Datenbankzugriffe, Webservices und vieles, vieles mehreinsetzen können.

In diesem Buch finden Sie nicht einfach Lösungen von der Stange. Hier findenSie Ideen und Techniken, die Sie sofort in Ihren eigenen Programmen verwen-den können. Und als wäre das nicht schon genug, wollen wir Sie darüber hin-aus ermutigen, sich die hier gezeigten Ideen zu Eigen zu machen und zuerweitern. Hacken Sie unsere Hacks und geben Sie Ihren Skripten und Klas-sen eine neue Dimension.

Warum heißt dieses Buch PHP »Hacks«?Der Begriff »Hacker« hat in der Presse einen eher schlechten Ruf. Dort steht esfür jemanden, der in Rechnersysteme einbricht oder mit Computern alsWaffe Unheil anrichtet. Unter Programmierern bedeutet ein »Hack« dagegeneine schnell zusammengebaute Lösung für ein Problem oder eine schlaue Art,eine gestellte Aufgabe zu erledigen. Das Wort Hacker ist in diesem Zusam-menhang also eher ein Kompliment, steht es doch für jemanden, der kreativ

Page 16: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

XVI | Einleitung

ist und die nötigen technischen Kenntnisse hat, um seine Arbeit zu erledigen.Die Hacks-Buchreihe ist ein Versuch, dieses Wort wieder mit dem richtigenInhalt zu füllen. Zu diesem Zweck dokumentieren wir, wie man auf positiveWeise hacken kann, und versuchen, die Hacker-Tugend der kreativen Teil-nahme an die noch nicht Eingeweihten weiterzugeben. Oft lernen Sie eineneue Technologie am schnellsten durch einfaches Abgucken und Ausprobie-ren kennen und verstehen.

Wie Sie dieses Buch verwendenWenn Sie wollen, können Sie dieses Buch von vorne bis hinten durchlesen.Allerdings können die meisten Hacks (bis auf wenige Ausnahmen) auchunabhängig voneinander gelesen und benutzt werden. Sie können also ein-fach herumstöbern und direkt zu den Abschnitten springen, die Sie am meis-ten interessieren. Wird bestimmtes Wissen vorausgesetzt, zeigt einQuerverweis Ihnen den Weg zum richtigen Hack.

Wie dieses Buch aufgebaut istDieses Buch ist in mehrere thematisch getrennte Kapitel unterteilt:

Kapitel 1, Installation und GrundlagenIn diesem Kapitel geht es um die Grundlagen der Installation von PHPund MySQL sowie um die Benutzung der hervorragenden PEAR-Biblio-thek.

Kapitel 2, WebdesignHier geht es um die Verbindung von HTML-Tricks mit PHP, mit denenSie Ihre Benutzerschnittstelle aufpeppen können.

Kapitel 3, DHTMLIn diesem Kapitel benutzen wir die mächtige Verbindung von HTML,CSS und JavaScript (das berühmte dynamische HTML bzw. kurzDHTML) zusammen mit PHP und zeigen, was man so alles mit einemWebbrowser anstellen kann.

Kapitel 4, GrafikenDieses Kapitel zeigt eine Reihe von Methoden zur Darstellung von Datenin grafischer Form.

Kapitel 5, Datenbanken und XMLDatenbanken bilden das Rückgrat vieler PHP-Anwendungen. Hier zeigenwir Ihnen, wie Sie flexible Datenbankobjekte erstellen können. Außer-dem erfahren Sie, wie sich die Datenbankschicht mit Hilfe von dynami-scher Codeerzeugung sogar automatisch aufbauen lässt.

Page 17: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

Einleitung | XVII

Kapitel 6, ApplikationsdesignIn diesem Kapitel gehen wir etwas mehr in die Tiefe und diskutierenTechniken, mit denen Sie auf schnelle und zuverlässige Weise Ihre Pro-gramme entwickeln können.

Kapitel 7, EntwurfsmusterC++-, C#- und Java-Programmierer verwenden Entwurfsmuster bereitsseit Jahren. Das geht selbstverständlich auch in PHP. In diesem Kapitelzeigen wir Ihnen, wie Sie anhand verschiedener Muster aus dem BuchEntwurfsmuster von Erich Gamma, Richard Helm, Ralph Johnson undJohn M. Vlissides (Addison-Wesley) bessere PHP-Programme schreibenkönnen.

Kapitel 8, TestsSollten Sie auch manchmal nachts wach liegen und sich fragen, ob IhrPHP-Programm wohl noch läuft, kann dieses Kapitel Ihre Nächte viel-leicht etwas ruhiger gestalten. Hier geht es um Testverfahren, die Pro-grammierfehler für Sie aufspüren und die fortlaufend den Betrieb IhrerSite überwachen können.

Kapitel 9, Alternative BenutzerschnittstellenIn diesem Kapitel zeigen wir Ihnen die Verwendung verschiedener Benut-zerschnittstellen, die mit Ihrem PHP-Code eingesetzt werden können. Sokönnen Sie PHP-Programme von Ihrem Desktop aus steuern, von IhremMobiltelefon oder auch von einem Instant Messenging-Programm.

Kapitel 10, UnterhaltsamesAn dieser Stelle geben wir noch einmal so richtig Gas. Wir zeigen, wie Siedie Dinge aus dem Web einsetzen können, um Multiplayer-Spiele zu be-obachten, wie Sie Google-Maps in Ihren Programmen verwenden könnenund vieles mehr.

Häufig auftretende ProblemeEinige Probleme mit PHP-Programmen begegnen einem immer wieder. Daherwerden ein paar davon auch in diesem Buch angesprochen:

Schlechtes DatenbankdesignDie meisten PHP-Programme stützen sich auf eine relationale Daten-bank, normalerweise MySQL. Vielen Entwicklern, die hauptsächlich intraditionellen Programmiersprachen ausgebildet sind, fällt der Entwurfvon Datenbanken aber nicht immer leicht. Der erste Schritt beim Aufräu-men eines Programms besteht daher in einem guten Datenbank-Design[Hack #34].

Page 18: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

XVIII | Einleitung

Schlechte Verwendung der DatenbankPHP kann auf sehr unterschiedliche Arten auf eine Datenbank zugreifen.Schnell kann hierbei ein Fehler zu Sicherheitsproblemen führen. EineMigration zu PEAR DB oder PDO [Hack #35] kann der erste Schritt zur Ver-besserung der Datenbankschicht sein. Danach können Sie außerdem fest-stellen, ob es vielleicht möglich ist, den SQL-Code [Hack #41], den SELECT-Code [Hack #42] oder den CRUD-Code [Hack #37] automatisch zu erzeugen.

In die Seite eingebetteter PHP-CodeBesonders kritisch sind hierbei direkt in den Code der Seite eingebauteDatenbankzugriffe. Die Hacks zum Erstellen von SELECT-Code [Hack #42]

und CRUD-Code [Hack #37] demonstrieren die Verwendung von korrektemzweischichtigem Design mit PHP. Der Hack für dynamische SQL-Objekte [Hack #36] kann ebenfalls helfen, überflüssigen Code von der Seitezu fern zu halten.

Verarbeitung von Anweisungen während des SeitenaufbausEin weiterer Punkt, der einem in Programmen öfter begegnet, ist dieübermäßige Verarbeitung von Anweisungen durch den Webserver, bevordie Seiten an den Browser zurückgegeben werden. Dies kann beispiels-weise passieren, wenn ein Programm auf Grund einer Benutzereingabemehrere E-Mails verschicken muss. Die Anweisungen hierfür befindensich oft im Code der zurückgegebenen Seite, wodurch der Benutzerunnötig lange auf den Seitenaufbau warten muss, bis alle Anweisungenabgearbeitet sind. Eine elegantere Lösung für dieses Problem ist die Ver-wendung einer Nachrichten-Warteschlange [Hack #50].

Keine TestsDie wenigsten Programme, die ich zu sehen bekomme, enthalten Test-code. Dabei sind automatische Tests die erste und beste Möglichkeit,abends ohne flaues Gefühl nach Hause gehen zu können, besonders wennSie eine Webapplikation schreiben müssen, die rund um die Uhr laufenmuss. In diesem Buch finden Sie Informationen zu Modultests [Hack #79]

und wie Sie diese automatisch erstellen können [Hack #80]. Außerdem findenSie in diesem Buch Code zur Überprüfung der Site mit Hilfe von Robots[Hack #83] und für die Automatisierung des Internet Explorer [Hack #82], mitdem Sie sogar Ihren JavaScript-Code testen können.

Mehr Sicherheit für die BenutzerDie meisten Menschen benutzen das gleiche Passwort für alle ihre Benut-zerkonten. Wird ein Programm kompromittiert, das Passwörter im Klar-text speichert, kann theoretisch die ganze Welt darauf zugreifen.Verwenden Sie MD5-Prüfsummen, um die Benutzerpasswörter zu ver-schlüsseln [Hack #59], und verwenden Sie ein rollenbasiertes Sicherheitssys-

Page 19: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

Einleitung | XIX

tem [Hack #58], damit die Benutzer nur Dinge sehen, die sie auch sehensollen.

Bessere Verwendung von EntwurfsmusternZugegeben: Der Begriff Entwurfsmuster (Design Patterns) wurde in letzterZeit etwas zu häufig benutzt. Dennoch gibt es in diesem Bereich vielGutes, das in PHP noch nicht genügend zum Einsatz kommt. Daherhaben wir das gesamte Kapitel 7 diesem Thema gewidmet. Hier zeigenwir Ihnen, wie Sie Entwurfsmuster pragmatisch und effektiv für die Ver-besserung Ihrer PHP-Programme einsetzen können.

Das waren nur ein paar Ideen dazu, wie Sie bestehende Programme verlässli-cher und sicherer machen können. Wie macht man Programme aber »coo-ler«?

Erstellen einer coolen WebapplikationMit Hilfe von Browsern und Browser-Plugins, DHTML und Ajax ist es nichtschwer, eine coole Anwendung zu schreiben, die einfach zu benutzen ist unddie neuesten Technologien verwendet. Hier ein paar Ideen aus den verschie-denen Teilen dieses Buchs:

PHP-Programme direkt vom Desktop ausführenAuch wenn Sie es vielleicht nicht glauben, Sie können mit PHP Desktop-Programme erstellen [Hack #87], wodurch der gleiche Code, der auch aufdem Webserver benutzt wird, direkt vom Desktop aus zugänglich ist.Hinzu kommt, dass dieser Code mit nur wenigen Anpassungen (wennüberhaupt) zwischen Mac OS X, Windows und Linux portierbar ist.

Landkarten verwendenDie Verwendung von Landkarten ist in letzter Zeit recht beliebt gewor-den. Zwei relativ einfache Methoden, Karten zusammen mit PHP zu ver-wenden, basieren auf dem Einsatz von MapServer [Hack #86] und GoogleMaps [Hack #95].

Dynamisch erzeugte DiagrammeGrafiken und Diagramme waren schon immer sehr populär. Daher gibtes in PHP auch eine ganze Reihe von Möglichkeiten, Diagramme zuerstellen. Hierfür können Sie einfaches HTML [Hack #8], SVG [Hack #28],DHTML [Hack #22] und die GD-Bibliothek [Hack #31] einsetzen. Außerdemfinden Sie in diesem Buch Informationen zum Erstellen einer objektorien-tierten Applikationsschicht, die auf der Grafikbibliothek aufbaut [Hack #29].

Page 20: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

XX | Einleitung

Zusammenarbeit mit BenutzerprogrammenEine weitere Möglichkeit, ansprechendere Programme zu schreiben,besteht darin, auf die Benutzer zuzugehen. Sehr beliebt ist hierfür die Ver-wendung von RSS [Hack #88]. Ich werde Ihnen zeigen, wie Sie RSS sogar aufeiner PlayStation Portable [Hack #90] einsetzen können. Natürlich könnenSie auch traditionellere Methoden wie etwa E-Mail [Hack #10] einsetzen.Außerdem zeige ich Ihnen, wie Sie RTF-Dokumente [Hack #48] und Excel-Tabellen [Hack #49] dynamisch erzeugen und wie Sie Word- [Hack #47] undExcel-Dokumente [Hack #45] als Eingabequelle verwenden können.

Die Webschnittstelle aufwertenDes Weiteren finden Sie in diesem Buch ein paar Ideen zum Erstellen vondynamischen Menüs [Hack #17]. Dazu kommen Möglichkeiten zum einfa-chen Erzeugen von Brotkrümel-Navigationen [Hack #4], Registerkarten [Hack

#6], Schnittstellen mit austauschbarem Aussehen (Skins) [Hack #3], Pop-ups[Hack #12], digitalen Notizzetteln [Hack #16], Drag-and-Drop-Schnittstellen[Hack #13], Kalendern [Hack #25], Linkdiagrammen [Hack #24] und vielen ande-ren Dingen, mit denen Sie das Beste aus Ihrer Webschnittstelle machenkönnen.

Dies sind nur ein paar Ideen, die Sie in diesem Buch finden können. Viel Spaßbeim Entdecken neuer Wege, auf denen Sie Ihre PHP-Kenntnisse auf den neu-esten Stand bringen können.

Typografische KonventionenIn diesem Buch werden die folgenden typografischen Konventionen verwen-det:

KursivschriftKennzeichnet URLs, Dateinamen und Dateierweiterungen sowie Ver-zeichnis- und Ordnernamen. Ein Pfad im Dateisystem könnte beispiels-weise als /Developer/Applications dargestellt werden.

NichtproportionalschriftKennzeichnet Codebeispiele, den Inhalt von Dateien und Ausgaben aufder Konsole sowie die Namen von Variablen, Befehlen und anderenCodeabschnitten.

Nichtproportionalschrifft fettKennzeichnet Codeabschnitte, typischerweise neue Einfügungen inbestehenden Code.

Nichtproportionalschrift kursivKennzeichnet Codebeispiele und Tabellen mit Beispieltext, der durchIhre eigenen Eingaben ersetzt werden muss.

Page 21: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

Einleitung | XXI

Graue SchriftDiese Schriftfarbe wird verwendet, um einen Querverweis innerhalb desTexts zu kennzeichnen.

Sie sollten besonders auf Hinweise achten, die mit folgenden Symbolen imText hervorgehoben werden:

Hierbei handelt es sich um einen Ratschlag, eine Anregungoder eine allgemeine Anmerkung. Hier finden Sie nützlicheZusatzinformationen zum gerade behandelten Thema.

Dies ist eine Warnung oder ein Warnhinweis, der oft daraufaufmerksam macht, dass Ihr Geld oder Ihre Privatsphäregefährdet sein könnte.

Die Thermometer-Symbole, die neben den Hacks stehen, geben die Komple-xität des jeweiligen Hacks an:

Benutzung der CodebeispieleDieses Buch soll Ihnen bei Ihrer Arbeit helfen. Es ist allgemein erlaubt, diesenCode in Ihren Programmen und Dokumentationen weiterzuverwenden. Hier-für ist es nicht notwendig, uns um Erlaubnis zu fragen, es sei denn, es handeltsich um eine größere Menge Code. So ist es beim Schreiben eines Programms,das einige Codeschnipsel dieses Buchs verwendet, nicht nötig, sich mit uns inVerbindung zu setzen; beim Verkauf oder Vertrieb einer CD-ROM mit Bei-spielen aus O’Reilly-Büchern dagegen schon. Das Beantworten einer Fragedurch das Zitat von Beispielcode erfordert keine Erlaubnis. Verwenden Sieeinen erheblichen Teil des Beispielcodes aus diesem Buch in Ihrer Dokumen-tation, ist dagegen unsere Erlaubnis nötig.

Eine Quellenangabe ist zwar erwünscht, aber nicht obligatorisch. Hierzugehört in der Regel die Erwähnung von Titel, Autor, Verlag und ISBN, zumBeispiel: »PHP Hacks von Jack D. Herrington. Copyright 2006 O’Reilly Ver-lag, ISBN 3-89721-452-0.«

Falls Sie sich nicht sicher sind, ob die Nutzung der Codebeispiele außerhalbder hier erteilten Erlaubnis liegt, nehmen Sie bitte unter der Adresse [email protected] Kontakt mit uns auf.

leicht mittel schwer

Page 22: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

XXII | Einleitung

Die Codebeispiele zu diesem BuchZu den PHP Hacks gibt es eine deutsche und eine amerikanische Website vonO’Reilly, auf der Sie die Codebeispiele sowie Errata und weitere Informatio-nen finden. Die Adressen lauten:

http://www.oreilly.de/catalog/phphksger/http://www.oreilly.com/catalog/phphks/

Weitere Informationen zu diesem und anderen Büchern finden Sie auf derO’Reilly-Website unter:

http://www.oreilly.de

Page 23: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

| 1

Kapitel 1 K A P I T E L E I N S

Installation und GrundlagenHacks 1–2

Bevor Sie damit anfangen, PHP zu hacken, müssen Sie PHP entweder selbstinstallieren oder sich ein Benutzerkonto auf einem Rechner besorgen, aufdem PHP bereits installiert ist. Dieses Kapitel behandelt die Grundlagen derInstallation von PHP sowie der zweiten wichtigen Komponente, des MySQL-Datenbanksystems, das oftmals die Daten für die PHP-Programme bereit-stellt. Außerdem behandeln wir in diesem Kapitel die Installation der PEAR-Open-Source-Module, die Sie kostenlos in Ihren eigenen PHP-Programmenbenutzen dürfen.

H A C K

#1PHP installieren Hack #1

Dieser Hack behandelt die Installation der Programmiersprache PHP unter Windows, Mac OS X und Linux für Apache und den Internet Information Server.

Der erste Schritt zur Benutzung dieses Buchs besteht in der Installation vonPHP, der auf den meisten Betriebssystemen recht einfach durchzuführen ist.Die Installation beginnt mit einem Besuch auf der PHP-Website (http://www.php.net/), von der Sie sich entweder den Quellcode oder die Binärdateien unddie dazugehörige Dokumentation herunterladen können.

Die Installation von PHP unter WindowsUnter Windows beginnt die Installation von PHP mit dem Herunterladen derBinärdateien für PHP Version 5. Wenn Sie es sich leicht machen wollen,benutzen Sie die .msi-Installationspakete, die vom Windows Installer verwen-det werden. Als Installationsverzeichnis geben Sie c:\php5 an. Sobald dieInstallation abgeschlossen ist, können Sie den PHP-Interpreter von der DOS-Kommandozeile aus starten:

Page 24: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

2 | Kapitel 1: Installation und Grundlagen

#1 PHP installierenHACK

C:\> php -vPHP 5.0.4 (cli) (built: Mar 31 2005 02:45:00)Copyright © 1997-2004 The PHP GroupZend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies

Kann der php-Interpreter nicht gefunden werden, müssen Sie den Pfad umc:\php5\bin erweitern. Wählen Sie hierfür Start → Systemsteuerung → System.Nach einem Klick auf die Registerkarte Erweitert haben Sie die Möglichkeit,die Umgebungsvariablen anzupassen. Ergänzen Sie hier die Variable path umden Eintrag c:\php5\bin.

Damit die Änderungen wirksam werden, müssen Sie zunächstalle offenen Befehlsfenster schließen und dann ein neuesFenster öffnen.

Zwar ist der Zugriff auf PHP über die Kommandozeile nicht schlecht, aller-dings wollen Sie PHP vermutlich eher zusammen mit einem Webserverbenutzen. Unter Windows haben Sie für diese Integration zwei Möglichkei-ten: Die erste ist die Installation des Webservers Apache und dessen Einrich-tung für die Verwendung von PHP, die zweite Möglichkeit besteht in derInstallation des Internet Information Server (IIS) und der Installation von PHPin dieser Umgebung.

In beiden Fällen müssen Sie die Datei php.ini in Ihr Windows-Verzeichnisc:\windows kopieren. Öffnen Sie die Kopie unter c:\windows\php.ini nun ineinem einfachen Texteditor und ändern Sie die Zeile extension_dir so, dassdiese nun folgendermaßen lautet:

extension_dir = "c:\php5\ext"

Des Weiteren müssen Sie die Kommentarzeichen aus Zeilen wie dieser entfer-nen:

extension=php_mysql.dll

Diese Zeile aktiviert den Zugriff auf die MySQL-Datenbank.

Eventuell wollen Sie noch weitere Bibliotheken aktivieren, umden Zugriff darauf zu ermöglichen. Nähere Informationenhierzu finden Sie in der Dokumentation zu PHP.

Gehen Sie nun zurück zur PHP-Website (http://www.php.net/) und laden Siedie PECL-Module herunter. Speichern Sie die Module im Verzeichnis c:\php5\ext (dies ist das Verzeichnis, das Sie gerade eben in php.ini angegeben haben).Diese Erweiterungen sind beispielsweise für den Zugriff auf MySQL und

Page 25: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

PHP installieren #1

Hack #1: PHP installieren | 3

HACK

bestimmte Grafikfunktionen notwendig. (Glauben Sie mir: Sie werden beidesirgendwann benutzen wollen.)

PHP in Apache installieren. Gehen Sie nun zur Apache-Website (http://www.apache.org/) und laden Sie sich die Version 1.3 von Apache herunter, diebereits für Windows kompiliert ist. (Es gibt auch eine aktuelle 2.x-Version fürwin32 inklusive MSI-Installer. Allerdings funktioniert die Zusammenarbeitmit PHP in dieser Version noch nicht so gut.) Mit Hilfe des enthaltenen MSI-Installationsprogramms lässt sich Apache unter Windows am einfachsteneinrichten. Sobald Apache installiert ist, speichern Sie die Datei httpd.conf inApaches conf-Verzeichnis (C:\Program Files\Apache Group\Apache\conf),sofern Sie Apache unter dem Standardpfad installiert haben.

Fügen Sie am Ende der Datei httpd.conf die folgenden Zeilen ein:

LoadModule php5_module "c:/php5/php5apache.dll"AddModule mod_php5.cAddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps

Jetzt können Sie den Apache-Server durch einen Aufruf von apache.exe star-ten:

C:\Program Files\Apache Group\Apache> apacheApache/1.3.33 (Win32) PHP/5.0.4 running...

Das Verzeichnis für die Webdokumente heißt htdocs (was den vollständigenPfad C:\Program Files\Apache Group\Apache\htdocs ergibt). Um die Installa-tion zu testen, legen Sie im Verzeichnis htdocs die Datei test.php an, die fol-genden Inhalt haben sollte:

<?phpphpinfo( );?>

Geben Sie nun diese Adresse in Ihren Webbrowser ein, um sich die Seiteanzusehen: http://localhost/test.php. Die Ausgabe sollte in etwa so aussehenwie die in Abbildung 1-1.

Jetzt können Sie die Codebeispiele sämtlicher Hacks aus diesem Buch ver-wenden.

PHP in IIS installieren. Nach der Installation im Verzeichnis c:\php5, können SiePHP anhand der Datei php5isapi.dll auch in die Internet Information Servicesintegrieren. Beginnen Sie mit dem Aufruf des IIS-Kontrollfelds und erzeugenSie, wie in Abbildung 1-2 gezeigt, ein virtuelles Verzeichnis.

Page 26: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

4 | Kapitel 1: Installation und Grundlagen

#1 PHP installierenHACK

Stellen Sie außerdem sicher, dass Sie die Ausführungsrechte korrekt gesetzthaben (siehe Abbildung 1-3).

Abbildung 1-1: Die PHP-Testseite bei einer Apache/Windows-Installation

Abbildung 1-2: Ein virtuelles Verzeichnis anlegen

Page 27: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

PHP installieren #1

Hack #1: PHP installieren | 5

HACK

Nun öffnen Sie durch einen Rechtsklick auf das virtuelle Verzeichnis denEigenschaften-Dialog. Durch einen Klick auf den Button Konfiguration be-kommen Sie Zugriff auf den Anwendungszuordnungen-Dialog, in dem Sie dieDateiendung .php mit php5isapi.dll verknüpfen. Den Dialog sehen Sie in Abbil-dung 1-4.

Klicken Sie nun auf Hinzufügen, um eine weitere Verknüpfung anzulegen.Geben Sie für die ausführbare Datei c:\php5\php5isapi.dll an.

Abbildung 1-3: Die Ausführungsrechte für das virtuelle Verzeichnis einstellen

Abbildung 1-4: Der Anwendungszuordnungen-Dialog für die Verknüpfung der .php-Dateien

Page 28: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

6 | Kapitel 1: Installation und Grundlagen

#1 PHP installierenHACK

Wenn Sie beim Anlegen einer neuen Verknüpfung den Durch-suchen-Button benutzen möchten, müssen Sie den Dateitypder DLL-Datei in den Einstellungen ändern, damit diese sicht-bar wird.

Geben Sie als Dateiendung .php an. Das Ergebnis sollte aussehen wieAbbildung 1-5.

Klicken Sie nun auf OK (und bestätigen Sie alle Dialoge auf dem Wegzurück). Navigieren Sie nun zu dem Dokumentenverzeichnis, das Sie beimAnlegen des virtuellen Verzeichnisses angegeben haben. Legen Sie eine Dateimit dem Namen test.php und folgendem Inhalt an:

<?phpphpinfo( );?>

Geben Sie jetzt in Ihren Browser die Adresse http://localhost/test.php ein. DieAusgabe sollte so ähnlich aussehen wie die in Abbildung 1-1.

PHP unter Mac OS X installierenPHP ist bei allen Versionen von Mac OS X bereits vorinstalliert. Sie müssen esnur noch aktivieren. Hierfür müssen Sie zuerst einmal Superuser-Rechteerlangen. Rufen Sie hierfür das Terminal-Programm auf (zu finden unter Pro-gramme → Dienstprogramme → Terminal) und geben Sie den unten stehen-den sudo-Befehl und Ihr Kennwort ein:

% sudo tcsh

In der Superuser-Shell können Sie Systemdateien ändern. Der folgende Schrittbesteht in der Anpassung der Datei httpd.conf im Verzeichnis /etc/httpd miteinem Texteditor Ihrer Wahl (vi, emacs usw.). Suchen Sie die folgenden Zeilenund entfernen Sie jeweils das Kommentarzeichen:

Abbildung 1-5: Die Verknüpfungseinstellungen für PHP 5

Page 29: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

PHP installieren #1

Hack #1: PHP installieren | 7

HACK

LoadModule php4_module libexec/httpd/libphp4.soAddModule mod_php4.c

Sichern Sie nun die Datei und starten Sie mit folgendem Befehl den zu OS Xgehörigen Apache-Webserver. (Das Prozentzeichen steht hier für eine Ein-gabe auf der Kommandozeile und muss nicht mit eingegeben werden.) Alter-nativ dazu können Sie den Webserver auch über die Systemeinstellungenstarten. Wählen Sie hierfür aus dem Apple-Menü den Eintrag Systemeinstel-lungen und klicken Sie auf die Einstellung Sharing. Markieren Sie das Kon-trollkästchen Personal Web Sharing, und der Webserver wird gestartet.

% apachectl restart

Standardmäßig befindet sich das Dokumentenverzeichnis für den Apache-Webserver bei Mac OS X unter /Library/WebServer/Documents. Um festzu-stellen, ob PHP sich korrekt verhält, erzeugen Sie im Dokumentenverzeichniseine Datei mit folgendem Inhalt:

<?phpphpinfo( );?>

Wenn Sie im Browser Ihrer Wahl nun die Adresse http://localhost/test.php ein-geben, können Sie die PHP-Statusseite sehen (siehe Abbildung 1-6).

Abbildung 1-6: Die Testseite unter OS X

Page 30: PHP Ausgabe HACKS...ISBN-10 3-89721-452-0 ISBN-13 978-3-89721-452-1 Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt. This book is dedicated to my wife, Lauren. You have

8 | Kapitel 1: Installation und Grundlagen

#1 PHP installierenHACK

Allerdings ist bei Mac OS X leider nur die PHP-Version 4 installiert, der ledig-lich eine sehr geringe Anzahl von Modulen beiliegt. So gibt es beispielsweisegar keine Grafikmodule. Damit auch Sie in den Vorteil von PHP 5 kommen,können Sie entweder den Quellcode herunterladen, diesen kompilieren undinstallieren, oder Sie nehmen ein vorkompiliertes Binärpaket.

Ich empfehle hier die Verwendung eines vorkompiliertenBinärpakets, da die Handhabung wesentlich einfacher ist.Wenn Sie PHP aus dem Quellcode kompilieren, müssen Siezusätzlich eine ganze Reihe weiterer von PHP verwendetenBibliotheken, beispielsweise für die Grafikunterstützung, her-unterladen, kompilieren und installieren. Diese Vorgehens-weise kann sehr zeitaufwändig werden.

Auf der Website von Marc Liyanage gibt es ein PHP 5-Binärpaket für OS X,bei dem eine ganze Reihe netter Bibliotheken bereits vorinstalliert ist (http://www.entropy.ch/software/macosx/php/). Um das Paket zu installieren, müssenSie nur das Installationsprogramm herunterladen und starten (manchmalkann Mac OS X richtig nett sein).

Nachdem Sie das PHP 5-Paket installiert haben, müssen Sie noch, um Ver-wechslungen zu vermeiden, die ausführbaren Dateien von PHP 4 umbenen-nen. Mit folgenden Befehlen benennen Sie php und pear in php4, bzw. pear4um:

% sudo mv /usr/bin/php /usr/bin/php4% sudo mv /usr/bin/pear /usr/bin/pear4

Fordern Sie nun vom PHP-Interpreter die Versionsinformationen an, umsicherzustellen, dass auch wirklich die PHP-Version 5 installiert ist:

% php -vPHP 5.0.4 (cli) (built: Apr 4 2005 17:32:28)Copyright (c) 1997-2004 The PHP GroupZend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies

Sehen Sie stattdessen eine Meldung wie php: command not found, müssen Siemöglicherweise einen Link auf die standardmäßig unter /usr/local/php5/bininstallierten Binärdateien von php und pear erzeugen:

% ln -s /usr/local/php5/bin/php /usr/bin/php% ln -s /usr/local/php5/bin/pear /usr/bin/pear

Ein einfaches export PATH=$PATH:/usr/local/php5/bin reicht nicht aus, da esnur für die gegenwärtig ausgeführte Shell gilt.

Um festzustellen, ob der Apache-Webserver korrekt funktioniert, müssen Siedie zuvor angelegte Testseite noch einmal aufrufen. In Abbildung 1-7 sehenSie die PHP-Seite, auf der zu sehen ist, dass nun PHP 5 läuft.


Recommended