Einleitung, Themenüberblick und Buchaufbau Liebe Leserin, lieber Leser, Webseiten üben eine starke Faszination auf Sie aus? Sie wollen nicht nur Betrachter und Nutzer von bestehenden Angeboten sein, sondern die Funktionsweisen und Hintergründe kennen lernen, mit deren Hilfe Sie Ihre eigenen Inhalte professionell präsentieren und Internetanwendungen erstellen können? Es ist nicht Ihr Ziel, vorgefertigte Lösungen einzusetzen, sondern selbst individuelle Projekte zu planen und umzusetzen? Sie begeistern sich besonders für Webseiten, die ihre Inhalte dynamisch und mit Hilfe einer Datenbank erzeugen? Vielleicht betreiben Sie bereits Ihre eigene Webseite oder einen Server und haben Erfahrungen auf verschiedenen Gebieten gesammelt? Sie interessieren sich für Content Management? Sie wollen dabei kostenlose und frei verfügbare Technologien einsetzen? Kurz gesagt, Sie sind auf der Suche nach Informationen, um sich Wissen zur Erstellung eigener Webseiten anzueignen oder Ihr bestehendes Wissen zu vertiefen? Dann haben Sie das richtige Buch aufgeschlagen. Dieses Buch befasst sich mit der Erstellung von dynamischen Webseiten, die ausschließlich auf frei verfügbaren Technologien und Standards basieren. Themen sind die klassischen Websprachen XHTML, CSS und JavaScript, die AJAX-Technologie, die Open-Source-Produkte PHP, MySQL und phpMyAdmin sowie ein detailliertes und sehr umfangreiches Beispiel eines Content-Management-Systems (CMS). Daneben spielen der Apache-Webserver und der Mailserver Postfix, beide ebenfalls Open-Source, eine Rolle. Das Buch wendet sich an Einsteiger und Fortgeschrittene auf den genannten Gebieten. Einsteiger sollten Erfahrungen mit dem Internet im Allgemeinen und Begeisterungsfähigkeit für komplexe Aufgaben mitbringen. Fortgeschrittene Anwender können ihr Wissen ausbauen und professionelle Techniken erlernen. Alle benötigten Werkzeuge finden Sie auf der beiliegenden CD-ROM oder können aus dem Internet heruntergeladen werden. Dieses Buch beschäftigt sich nicht mit detaillierten Referenzen und theoretischen Fragestellungen, sondern bietet eine praxis- und beispielorientierte Einführung und Vertiefung in die Webprogrammierung und das Content Management. E.1 Die Themen des Buchs im Überblick Sicherlich sind Sie an einem raschen Themenüberblick interessiert, um zu erfahren, was Ihnen dieses Buch genau bietet und ob es Ihren Interessen entspricht. Deshalb gibt dieser Abschnitt eine stichpunktartige Übersicht über alle behandelten Themengebiete. Details können Sie der ausführlichen Kapitelübersicht des nächsten Abschnitts entnehmen. 17 © des Titels »Dynamische Webseiten in der Praxis« (ISBN 978-3-8266-1782-9) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/1782 Einleitung, Themenüberblick und Buchaufbau ❏ Ausführliche Anleitung zum Aufsetzen einer Entwicklungsumgebung mit dem Apache-Webserver 2, dem Datenbankprogramm MySQL 5 und der Skriptsprache PHP 5 für Windows und Linux (bekannt als WAMP bzw. LAMP) ❏ Einführung in die folgenden Themengebiete in Form eines Crashkurses mit vielen Beispielen und Screenshots: ❏ Die Auszeichnungssprache XHTML: Was ist XHTML und HTML, Unterschiede zu HTML, wichtige Begriffe, Notationen, wichtige Elemente, Zeichenreferenzen (Entitäten) ❏ Die Stylesheetsprache CSS: Was sind CSS, Eigenschaften und Werte, Einbindung von CSS-Code, Selektoren, Pseudoklassen und -elemente, Vererbung, Größen- und Farbangaben, Box-Model, Tantek’s Hack, Positionierung, wichtige Eigenschaften ❏ Die clientseitige Skriptsprache JavaScript: Entstehung, Clientseitigkeit, Einbindung von JavaScriptCode, Eventhandler, Variablen, Objekte, Operatoren, Kontrollstrukturen, Arrays, Built-in- und benutzerdefinierte Funktionen bzw. Methoden, wichtige Objekte, Mouse-Over-Effekt, Bilder vorladen, Formulare prüfen, Dialog- und Popup-Fenster, Beispiel eines JavaScript-Spiels ❏ Die serverseitige Skriptsprache PHP: Was ist PHP, Geschichte, Serverseitigkeit, »Hallo Welt!«, Variablen und Datentypen, Operatoren, Konstanten, Kontrollstrukturen, Built-in- und benutzerdefinierte Funktionen, rekursive Funktionen, Datum und Zeit, Zeichenkettenfunktionen, Arrayfunktionen, reguläre Ausdrücke (PCREs), Formulare auswerten, Session, Cookies, Dateien, objektorientierte Programmierung unter PHP 5, auf einfache Weise E-Mails versenden mit der freien swiftmailer-Bibliothek, Beispiel eines Besucherzählers ohne Datenbank ❏ Das relationale Datenbanksystem MySQL und dessen Abfragesprache SQL: Was ist MySQL, Konsole, Beispielprojekt Filmdatenbank, Datenbankdesign und Normalisierungsregeln, Kollation, Datenbanken und Tabellen anlegen/löschen, Tabellentypen, Spaltentypen, Spaltenattribute, Primär- und Fremdschlüssel, Indizes, wichtige Abfrage-Kommandos und Klauseln, hierarchische Tabellen, Variablen, Transaktionen, Views und information_schema-Datenbank (MySQL 5) ❏ Die in PHP 5 eingeführte mysqli-Bibliothek zur Abfrage von MySQL-Datenbanken: objektorientierter Zugriff, Verbindung aufnehmen, Verbindungsinformationen abfragen, einzelne SQLKommandos ausführen, mehrere SQL-Kommandos gleichzeitig ausführen, Ergebnisressourcen verarbeiten, Metadaten, Prepared Statements ❏ Die AJAX-Technologie: Was ist AJAX, Notwendigkeit und Nutzen, beteiligte Technologien und deren Verknüpfung, Erstellung einer allgemein verwendbaren AJAX-Engine, JSON und dessen Zusammenspiel mit AJAX, Beispiele für einen Echtzeit-Chat und eine Echtzeit-Navigation ❏ Detaillierte Beschreibung des Aufbaus eines Content-Management-Systems (im Buch meist als »Das Projekt« bezeichnet), das Ihnen zur freien Verfügung steht (eine Testversion finden Sie unter http:// www.webflips.de) und für Ihren eigenen Gebrauch viele interessante Codebausteine bietet. Das Projekt implementiert unter anderem folgende Features, die ausführlich Schritt für Schritt erläutert werden: ❏ Valide XHTML-Struktur ❏ CSS-Design ohne Tabellen ❏ Wrapperklassen für die mysqli-Bibliothek ❏ Administrationsoberfläche zum Installieren der nötigen MySQL-Tabellen sowie zum Erstellen, Verschieben und Löschen von Menüpunkten, Farbthemen und Modulen ❏ Login-System mit automatischem Login ❏ Module: Wer ist online, aktuelle Beiträge, Shoutbox, Besucherzähler, externe Links, Quick-Links, Login ❏ Anwendungen: Profilseite, Mitgliederverzeichnis, Mitgliederverwaltung für Administratoren, Newsletterversand, Forum, Gästebuch, Umfragen, Downloads, AJAX-Fotoalben, Berichte, AJAXKommentarfunktion für beliebige Anwendungen ❏ Neue Passwörter auf Anforderung automatisch generieren und versenden, falls ein Mitglied sein Passwort vergessen hat ❏ Detaillierte Besucherstatistik 18 © des Titels »Dynamische Webseiten in der Praxis« (ISBN 978-3-8266-1782-9) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/1782 Einleitung, Themenüberblick und Buchaufbau ❏ Favicon erstellen und einbinden ❏ Im Projekt wird unter anderem von folgenden Techniken Gebrauch gemacht: ❏ CSS-Design ohne Tabellen erstellen ❏ Objektorientierte Programmierung mit PHP 5 ❏ Rekursive Methoden ❏ Statische Methoden ❏ Reguläre Ausdrücke ❏ Bilder mit TrueType-Schriften dynamisch generieren ❏ Formulareingaben eingehend prüfen ❏ Upload und Prüfung von Dateien ❏ Bilder verkleinern und handhaben ❏ Mailen pur: Header setzen und die mail()-Funktion ❏ (HTML-)E-Mails mit Dateianhang versenden ❏ Cookies ❏ Session mit und ohne Cookies ❏ Verknüpfte Abfragen ( Joins) mit MySQL ❏ Temporäre Tabellen mit MySQL ❏ Transaktionen mit MySQL ❏ Sub-Selects mit MySQL ❏ Einbindung eines Java-Applets zum Upload mehrerer Dateien gleichzeitig (JUpload) ❏ bbCode (Formatierungssprache für Formulareingaben) ❏ Spamschutz durch Session-Sperre und visuelle CAPTCHAs ❏ Mouse-Over-Effekt mit CSS und Bilder vorladen mit JavaScript ❏ Inhalte mittels AJAX performant nachladen ❏ Lookup Table für den Mailserver Postfix in MySQL abbilden (für E-Mail-Weiterleitungen) ❏ Installation und Konfiguration des plattformunabhängigen MySQL-Verwaltungswerkzeugs phpMyAdmin sowie Umgang mit diesem Programm ❏ .htaccess-Verzeichnisschutz einrichten ❏ Kurze Einführung in den Linux-Mailserver Postfix und dessen Kompilierung mit MySQL-Unterstützung ❏ Ausführliches Linkverzeichnis rund um das Thema Webprogrammierung ❏ Buch-CD mit allen im Buch beschriebenen Programmen und dem Quellcode des Projekts Außerdem finden Sie unter der Internet-Adresse http://www.webflips.de eine Diskussions- und Informationsplattform zum Buch, die gleichzeitig eine Testversion des im Buch beschriebenen Projekts darstellt. Wenn Sie jetzt neugierig geworden sind, erhalten Sie im nächsten Abschnitt detaillierte Informationen zu den Inhalten der einzelnen Kapitel. E.2 Der Aufbau des Buchs Dieser Abschnitt stellt Ihnen den Aufbau des Buchs vor. Das Buch besteht aus drei Teilen: ❏ Das Projekt: Fortgeschrittene Leser können mit diesem Teil gleich in das komplexe Content-Management-System einsteigen. ❏ Crashkurs: Dieser Teil gibt eine Einführung in alle Themengebiete des Buchs. Einsteiger sollten mit diesem Teil beginnen, fortgeschrittene Leser können damit ihr Wissen vertiefen oder auffrischen. 19 © des Titels »Dynamische Webseiten in der Praxis« (ISBN 978-3-8266-1782-9) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/1782 Einleitung, Themenüberblick und Buchaufbau ❏ Installationen: Dieser Teil bietet Installationsbeschreibungen zu allen wichtigen Programmen und Konfigurationsanleitungen. Wenn Sie sich über Ihren Wissensstand nicht sicher sind, schnuppern Sie einfach mal in den ersten Buchteil hinein. Bei Verständnisschwierigkeiten können Sie im Crashkurs nachschlagen. Erster Buchteil: Das Projekt Dieser Buchteil stellt Ihnen detailliert die Erstellung eines umfangreichen Content-Management-Systems vor, das auf objektorientierter Programmierung basiert. Dabei werden die Websprachen PHP, XHTML, CSS und JavaScript sowie das Datenbanksystem MySQL und dessen Abfragesprache SQL verwendet. Eine Testversion des Projekts steht Ihnen mit eingeschränkten Rechten im Internet unter http:// www.webflips.de zur Verfügung. Dort können Sie die meisten Features jederzeit ausprobieren und den Aufbau der Seite studieren. Die Website dient gleichzeitig als Informations- und Diskussionsplattform zu diesem Buch, wo Sie sich mit mir und anderen Lesern austauschen oder auch Ihre eigenen Projekt-Erweiterungen und Vorschläge einbringen können. Kapitel 1: Einführung in das Projekt In diesem Kapitel werden Sie in die Features, die verwendeten Begriffe, die technische Umsetzung und die möglichen Verwendungszwecke des Projekts eingeführt. Kapitel 2: Installation der Projekt-Website Dieses Kapitel zeigt Ihnen, wie Sie die fertige, frei nutz- und konfigurierbare Projekt-Website aufsetzen und damit erste Schritte wie die Erstellung von Menüpunkten und die Einbindung von Modulen unternehmen können. Auf diese Weise können Sie sich zuerst mit dem fertigen System vertraut machen und alle Funktionen ausprobieren, um dann im Detail die Umsetzung kennen zu lernen. Kapitel 3: Konzeption Dieses Kapitel erläutert Ihnen die Konzeption der Website, die verwendeten Konventionen, die physische Verzeichnisstruktur, die XHTML-Struktur, die Klassenhierarchie, die MySQL-Tabellen und die Menüauflösung. Sie erlernen den Aufbau hierarchischer MySQL-Tabellen und die Verwendung von Primär- und Fremdschlüsseln. Außerdem erfahren Sie Grundlegendes über die Schreibrechte des Apache-Webservers. Kapitel 4: Die Konfigurationsdatei konf.ink.php Sie lernen die Konfigurationsdatei mit vielen globalen Konstanten kennen, mit deren Werten sich grundlegende Dinge wie die Zugangsdaten zur Datenbank, Pfade, die Spamschutz-Sperrzeiten, das Fehlerhandling und die Serverdaten anpassen lassen. Kapitel 5: Der MySQL-Wrapper In diesem Kapitel stelle ich Ihnen zwei Klassen vor, die die Verwendung der in PHP 5 eingeführten mysqli-Bibliothek isolieren (»kapseln«). Dadurch wird eine einfache Schnittstelle zur MySQL-Datenbank und damit die Voraussetzung für alle Datenbankabfragen des Projekts geschaffen (eine solche »Ummantelung« wird auch Wrapper genannt). Der MySQL-Wrapper ist Voraussetzung für alle Datenbankabfragen des Projekts. Technisch erlernen Sie den Einsatz objektorientierter Programmierung und der mysqli-Bibliothek. Kapitel 6: Die Administrationsoberfläche Dieses Kapitel beschäftigt sich mit dem Aufbau der Administrationsoberfläche (»Backend«) für die Projekt-Website. Mit der Administrationsoberfläche lassen sich auf einfache Weise die nötigen MySQL-Tabellen für die verschiedenen Anwendungen installieren oder auch wieder deinstallieren sowie Menüpunkte, 20 © des Titels »Dynamische Webseiten in der Praxis« (ISBN 978-3-8266-1782-9) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/1782 Einleitung, Themenüberblick und Buchaufbau Farbthemen und Module beliebig erstellen, verschieben und löschen. Technisch ist dieses Kapitel ein Vorbote für das kommende CSS-Design und zeigt außerdem weitere Möglichkeiten der objektorientierten Programmierung unter PHP 5. Kapitel 7: Die Hauptseite Aufbau der Hauptseite (»Frontend«) mit Logo, Navigation, einer Hauptfläche für statische oder dynamische Inhalte und einer Navigation für seiteninterne Inhalte (Statistik, Impressum etc.) am Ende. Dies alles erfolgt mit einem modernen XHTML/CSS-Design und Sie lernen, die Struktur einer Website klar vom Design zu trennen. Außerdem erweitern Sie Ihr Wissen über die objektorientierte Programmierung, lernen die Funktionsweise eines Interface kennen und sind nach diesem Kapitel imstande, dynamische Bilder zu erzeugen. Kapitel 8: Der Registrierungsprozess Hier wird der Registrierungsprozess für Besucher behandelt, die von weitreichenderen Features der Website Gebrauch machen wollen. Dabei wird erklärt, wie Sie den im Web beliebten Registrierungsvorgang mittels einer Aktivierungs-E-Mail (»double-opt-in«) verwirklichen können. An dieser Stelle taucht die erste MySQL-Transaktion – ein Block von Datenbankabfragen, der entweder komplett oder gar nicht ausgeführt wird – auf, mit der sich die Datenbestände konsistent halten lassen und von denen noch viele weitere folgen werden. Sie lernen die Funktionsweise des Spamschutzes (Session-Sperre) kennen, die Superklasse für Formularüberprüfungen und die Generierung von dynamischen TrueType-Überschriften. Kapitel 9: Der Login und Logout In diesem Kapitel wird der Mitglieder-Login implementiert. Dazu zählt ein Modul für das Login-Formular und eine Klasse, die bei jedem Seitenaufruf die möglichen Quellen für Logindaten prüft und für den weiteren Verlauf des Skripts den Benutzerstatus festlegt (Gast, Mitglied, Administrator). Neben einem normalen Login gibt es bei Benutzung des gleichen Computers einen automatischen Login, der mit Hilfe eines Cookies realisiert wird, und einen Super-Login, bei dem sich ein Administrator an Stelle eines Mitglieds einloggen kann, um etwaige Probleme zu beheben. Technisch zeigt Ihnen dieses Kapitel die Verwendung des Session-Managements und von Cookies. Kapitel 10: Weitere Module In diesem Kapitel werden weitere Module der Website implementiert. Es gibt ein Modul für die Anzeige aller Gäste bzw. Mitglieder, die gerade online sind, ein Besucherzähler-Modul, ein Modul, das aktuelle Aktivitäten (Forumsbeiträge, Fotouploads etc.) auf der Seite sofort anzeigt, ein Quick-Links-Modul für die schnelle Navigation innerhalb der Seite, ein Modul mit externen Links und ein Shoutbox-Modul, in dem jeder Besucher Kommentare abgeben kann, die sofort für alle lesbar sind. Kapitel 11: Die Profilseite Dieses Kapitel beschreibt die Umsetzung einer Profilseite für Mitglieder, auf der persönliche Informationen (Name, Geburtstag, Forumssignatur, Avatar etc.) abgespeichert und Einstellungen (Newsletterabo, Profilsichtbarkeit, E-Mail-Weiterleitung etc.) vorgenommen werden können. Neben weiteren Formularüberprüfungen lernen Sie am Beispiel des Avatars den Upload, die Überprüfung und die Verkleinerung von Bilddateien kennen. Außerdem erfahren Sie, wie die Umsetzung der Lookup Table für den Mailserver Postfix funktioniert, mit deren Hilfe jedes Mitglied eine neue E-Mail-Adresse mit Weiterleitung erhalten kann. Kapitel 12: Der Mitgliederbereich Sie lernen das Mitgliederverzeichnis, die Profilansicht, die Mitgliederverwaltung, die Verwaltung der Links-Module und den Newsletterversand kennen. Dabei kommen komplexere SQL-Sortierungen und die Verwendung der mail()-Funktion mit selbst erzeugten Headern zum Einsatz. 21 © des Titels »Dynamische Webseiten in der Praxis« (ISBN 978-3-8266-1782-9) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/1782 Einleitung, Themenüberblick und Buchaufbau Kapitel 13: Der Interaktiv-Bereich Thema dieses Kapitels sind die dynamischen Anwendungen Gästebuch, Forum und Umfragen. Es werden komplexe MySQL-Abfragen über mehrere Tabellen ( Joins), eine temporäre MySQL-Tabelle, Überprüfungen der Mitgliederrechte und der Spamschutz per CAPTCHA behandelt. Kapitel 14: Der Galerie-Bereich Dieses Kapitel beschreibt die Anwendungen Berichte, Fotos und Downloads. Dabei lernen Sie unter anderem die Einbindung und die Verwendung eines Java-Applets (JUpload) sowie die Erzeugung eines Fotoalbums in Form einer AJAX-Bildergalerie kennen. Kapitel 15: Spielereien Zum Abschluss des Projekts wird Ihnen in diesem Kapitel ein Skript für die automatische Generierung und den Versand eines neuen Passworts vorgestellt, falls ein Mitglied sein Zugangspasswort vergessen hat. Außerdem lernen Sie die Erzeugung der Besucherstatistik mit Hilfe einer komplexen MySQL-Abfrage sowie die AJAX-Kommentarfunktion für beliebige Anwendungen kennen. Kapitel 16: Zum Schluss In diesem letzten Kapitel des ersten Buchteils habe ich einige Ideen und Anregungen für den Ausbau des Projekts zusammengestellt. Neben den beschriebenen Features stehen Ihnen mit dem ausführlich kommentierten Projekt-Quellcode der Buch-CD noch ein Newssystem und ein Kontaktformular zur Verfügung. Zweiter Buchteil: Crashkurs Als Einsteiger sollten Sie mit dem Crashkurs im zweiten Buchteil beginnen. Der Crashkurs macht Sie mit den für den ersten Buchteil benötigten Werkzeugen vertraut und bietet darüber hinaus einige nützliche Einblicke, auch für fortgeschrittene Leser. Kapitel 17: Einführung in den Crashkurs Dieses Kapitel stellt Ihnen kurz die Themen des Crashkurses vor. Kapitel 18: XHTML – Extensible Hypertext Markup Language Thema dieses Kapitels ist die Auszeichnungssprache XHTML, die Grundlage einer jeden Website. Nach einer kurzen Einführung stelle ich Ihnen das W3-Konsortium, die wichtigsten Begriffe sowie die Unterschiede zu HTML und die damit verbundenen Notationsregeln für gültige XHTML-Dokumente vor. Anschließend lernen Sie die wichtigsten Elemente kennen, zum Beispiel zur Textauszeichnung und zur Erzeugung von Hyperlinks, Listen, Tabellen und Formularen. Zum Schluss folgt ein Abschnitt über Zeichenreferenzen. Kapitel 19: CSS – Cascading Style Sheets Dieses Kapitel stellt Ihnen die Stylesheetsprache CSS vor. Eine kurze Einführung beschreibt den Verwendungszweck von CSS. Dann folgen Abschnitte über die verschiedenen Möglichkeiten der Code-Einbindung, die unterschiedlichen Selektoren, Größen- und Farbangaben, die Vererbung, das Box-Model und die verschiedenen Arten zur Elementpositionierung. Über das ganze Kapitel hinweg lernen Sie die wichtigsten CSS-Eigenschaften und ihre möglichen Werte kennen. Kapitel 20: JavaScript Dieses Kapitel stellt Ihnen die clientseitige Skriptsprache JavaScript vor. Zu Beginn gibt es einen kurzen Überblick über die Entstehung von JavaScript sowie die Vor- und Nachteile der Clientseitigkeit. Im Anschluss lernen Sie die verschiedenen Möglichkeiten der Code-Einbindung und die wichtigsten Grund- 22 © des Titels »Dynamische Webseiten in der Praxis« (ISBN 978-3-8266-1782-9) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/1782 Einleitung, Themenüberblick und Buchaufbau lagen von JavaScript kennen. Dabei werden unter anderem folgende Themen behandelt: Eventhandler, Variablen, Datentypen, Objekte, Verkettungsoperator, arithmetische und kombinierte Operatoren, logische und Vergleichsoperatoren, Bedingungen, Schleifen, Funktionen, Datums- und Zeitberechnungen, Zugriff auf Grafiken, Formularüberprüfungen sowie Dialog- und Popup-Fenster. Abgerundet wird das Kapitel durch eine kurze Einführung in die JavaScript Object Notation ( JSON) und ein Praxisbeispiel in Form eines kleinen Spiels. Kapitel 21: PHP – PHP Hypertext Preprocessor Nach einem kurzen Abriss über die Geschichte folgt der Einstieg in die Programmierung mit der serverseitigen Skriptsprache PHP. Sie schreiben Ihr erstes Skript und werden in die wichtigsten Grundlagen eingeführt: Datentypen, Variablen, Arrays, arithmethische und kombinierte Operatoren, logische und Vergleichsoperatoren, trinärer Operator, Ausdrücke, Bedingungen, Schleifen, globale Konstanten, Datumsund Zeitberechnungen, Zeichenkettenfunktionen, Arrayfunktionen, benutzerdefinierte Funktionen, Prozeduren, reguläre Ausdrücke, Formularauswertung, Cookies setzen und auslesen, Session-Management, Dateien einbinden, Dateien auslesen und schreiben, objektorientierte Programmierung, Klassen, Methoden, Eigenschaften, Vererbung, Sichtbarkeit (PPP) und Spezialmethoden. Im Anschluss erlernen Sie den Umgang mit der sehr nützlichen Open-Source-Bibliothek swiftmailer, die Ihnen den E-Mail-Versand stark erleichtert, sogar unter Windows ohne Mailserver. Abgerundet wird das Kapitel durch ein Praxisbeispiel in Form eines Besucherzählers ohne Datenbankanbindung. Kapitel 22: MySQL – My Structured Query Language In diesem Kapitel stelle ich Ihnen das relationale Datenbanksystem MySQL und dessen Abfragesprache SQL vor. Dabei lernen Sie anhand eines Praxisbeispiels – einer Filmdatenbank –, wie Sie das relationale Prinzip ausnutzen, Redundanzen vermeiden und die so genannten Normalisierungsregeln anwenden. Sie erfahren das Wichtigste über Primär- und Fremdschlüssel, Tabellen- und Spaltentypen, Spaltenattribute, hierarchische Tabellen und Indizes zur Steigerung der Abfragegeschwindigkeit. Weitere Abschnitte befassen sich mit dem Abfragen, Einfügen, Aktualisieren und Löschen von Datensätzen und gehen dabei auch auf die verschiedenen Einschränkungs- und Sortierungsklauseln ein. Anschließend lernen Sie den Umgang mit Datum und Zeit in der Datenbank, den Nutzen und die Ausführung von Transaktionen und die MySQL-5-Features Views und information_schema-Datenbank kennen. Kapitel 23: PHP und MySQL – mysqli Dieses Kapitel stellt Ihnen den objektorientierten Zugriff auf MySQL-Datenbanken mit der in PHP 5 eingeführten mysqli-Bibliothek vor. Dabei lernen Sie zunächst, Verbindung zur Datenbank aufzunehmen und Verbindungsinformationen abzufragen. Im Anschluss wird die Ausführung von einzelnen oder mehreren SQL-Kommandos behandelt sowie die Auswertung von Ergebnisressourcen (Datensätze, Metainformationen). Der letzte Abschnitt widmet sich den Prepared Statements, mit denen sich gleichartige Abfragen mit unterschiedlichen Parametern effektiv ausführen lassen und die zur Kompaktheit des Quellcodes beitragen. Kapitel 24: Umgang mit phpMyAdmin Dieses Kapitel gibt eine Einführung in den Umgang mit dem MySQL-Verwaltungswerkzeug phpMyAdmin. Sie lernen, Datenbankbenutzer anzulegen und mit den passenden Rechten auszustatten. Im Anschluss wird gezeigt, wie Sie Datenbanken, Tabellen und Datensätze anlegen/löschen können und was es mit den verschiedenen Menüpunkten und den zugehörigen Optionen auf sich hat. Zum Schluss erfahren Sie, wie Sie Backups erstellen und wieder einspielen können, wobei auch eine Alternative zu phpMyAdmin vorgestellt wird. Die Installation und Konfiguration von phpMyAdmin ist Thema des Kapitels 27 im dritten Buchteil (Installationen). Kapitel 25: AJAX – Asynchronous JavaScript and XML In diesem Kapitel lernen Sie den Umgang mit der AJAX-Technologie kennen. AJAX-Anfragen ermöglichen Client-Anfragen an den Webserver ohne Neuladen der Website. 23 © des Titels »Dynamische Webseiten in der Praxis« (ISBN 978-3-8266-1782-9) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/1782 Einleitung, Themenüberblick und Buchaufbau Dritter Buchteil: Installationen Im dritten Buchteil finden Sie eine Zusammenstellung von Anleitungen für die wichtigsten Installationen bzw. Konfigurationen, die für die Webprogrammierung nützlich sind. Dieser Teil ist für Einsteiger und Fortgeschrittene gleichermaßen interessant. Sie können sich dort informieren, sobald Sie eine der beschriebenen Installationen bzw. Konfigurationen benötigen. Nebenbei bietet dieser Buchteil Hintergrundwissen zu den einzelnen Themen. Kapitel 26: Einrichtung einer Entwicklungsumgebung Dieses Kapitel beschreibt ausführlich die Einrichtung einer (lokalen) Entwicklungsumgebung mit dem Webserver Apache 2, der Datenbank MySQL 5 und der Skriptsprache PHP 5 unter Windows und Linux (WAMP bzw. LAMP). Die Entwicklungsumgebung ist für die Erprobung von XHTML-Dateien, PHPSkripten und Datenbankoperationen unerlässlich. Sie erfahren, wo Sie die nötigen Programme aus dem Internet beziehen können, wie Sie die Installation bzw. Kompilierung (Linux) und die richtige Konfiguration durchführen. Dabei werden auch die wichtigsten Einstellungen in den Konfigurationsdateien des Apache und der PHP-Installation erläutert. Kapitel 27: phpMyAdmin – Installation und Konfiguration In diesem Kapitel erfahren Sie, was phpMyAdmin ist, wo Sie es beziehen können und wie Sie das plattformunabhängige Programm richtig installieren und konfigurieren. Dabei werden die wichtigsten Konfigurationsparameter vorgestellt, zum Beispiel die verschiedenen Authentifizierungsmöglichkeiten oder die Einstellung zur Verwendung der mysqli-Bibliothek. Zum Schluss lernen Sie, die Unterstützung für Mehrbyte-Zeichensätze (mbstring-Erweiterung) zu aktivieren, um eine Fehlermeldung zu vermeiden, und wie Sie verschiedene Farbthemen zur Personalisierung der Oberfläche installieren können. Den Umgang mit phpMyAdmin beschreibt Kapitel 24. Kapitel 28: HTTP-Verzeichnisschutz über die Datei .htaccess Dieses Kapitel beschreibt, was ein Verzeichnisschutz ist, und wie Sie ihn auf dem Apache-Webserver mit Hilfe einer .htaccess-Datei (Windows und Linux) einrichten können. Dabei erfahren Sie, wie Sie den Apache vorbereiten müssen, damit .htaccess-Dateien berücksichtigt werden, wie Sie eine Passwortdatei erzeugen und was es mit den verschiedenen Konfigurationsparametern auf sich hat. Kapitel 29: Postfix mit MySQL-Unterstützung Dieses Kapitel gibt eine Kurzeinführung in den Linux-Mailserver Postfix, erläutert die Grundlagen und beleuchtet schließlich die Lookup Table (eine Art Konfigurationstabelle) für E-Mail-Weiterleitungen wie die des Projekts aus dem ersten Buchteil. Im Anschluss lernen Sie, wie Sie Postfix mit MySQL-Unterstützung selbst kompilieren und die Lookup Table für E-Mail-Weiterleitungen in einer Datenbank abbilden. Auf diese Weise können Sie auf Ihrem eigenen Server bequem per PHP beliebige E-Mail-Adressen für Ihre Domain(s) verwalten und Weiterleitungen einrichten. Kapitel 30: Browser Das letzte Kapitel listet in aller Kürze die wichtigsten Browser, mit denen auch das Projekt aus dem ersten Buchteil erfolgreich getestet wurde. Sie finden zudem Informationen über Möglichkeiten, wie Sie auch unter älteren Versionen des Internet Explorer ohne großen Aufwand testen können. Zum Schluss Am Ende des Buchs finden Sie ein umfangreiches Verzeichnis mit nützlichen Links rund um das Thema Webprogrammierung und einen ausführlichen Suchindex. 24 © des Titels »Dynamische Webseiten in der Praxis« (ISBN 978-3-8266-1782-9) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/1782 Einleitung, Themenüberblick und Buchaufbau E.3 Die Buch-CD Diesem Buch liegt eine CD-ROM bei. Sie bietet Folgendes in den gleichnamigen Verzeichnissen: ❏ Projekt: In diesem Verzeichnis finden Sie den kompletten und ausführlich kommentierten Quellcode des Projekts aus dem ersten Buchteil. So können Sie das Projekt mit uneingeschränkten Rechten auf Ihrem Webserver installieren, damit experimentieren, beliebige Veränderungen oder Erweiterungen vornehmen sowie Codebausteine herauskopieren. ❏ Crashkurs: In diesem Verzeichnis finden Sie alle XHTML-, CSS-, JavaScript-, PHP-, und AJAX-Beispiel-Skripte aus dem zweiten Buchteil sowie die praktische swiftmailer-Bibliothek zum Versand von E-Mails. ❏ Installationen: In diesem Verzeichnis finden Sie alle Programme, deren Installationen im dritten Buchteil vorgestellt werden. Im Einzelnen sind das die zum Redaktionsschluss dieses Buchs ( Juli 2009) aktuellen Versionen des Apache 2, MySQL 5, PHP 5 und phpMyAdmin. Die Programme liegen jeweils für Windows und Linux vor. Beachten Sie bitte bei allen Open-Source-Programmen die auf der CD enthaltenen Dateien zu den Lizenzbestimmungen. Alle Software der Buch-CD kann auch aus dem Internet bezogen werden. Den Projekt-Quellcode und die Beispielskripte finden Sie unter der Adresse http://www.webflips.de. Links zu den übrigen Programmen finden Sie ebenfalls unter dieser Adresse. E.4 Danksagung In der ersten Auflage habe ich mich an dieser Stelle bei vielen Menschen bedankt, ohne die die Entstehung dieses Buches nicht möglich gewesen wäre. Das Erscheinen dieser Neuauflage ist jedoch einzig und allein meiner Lektorin Sabine Schulz vom mitpVerlag zu verdanken. Durch ihre unerschöpfliche Geduld mit meiner immer knappen Zeit, ihren unzähligen aufmunternden E-Mails inklusive Rat und Tat sowie dem festen Glauben an die Fertigstellung haben wir es tatsächlich geschafft! ☺ 25 © des Titels »Dynamische Webseiten in der Praxis« (ISBN 978-3-8266-1782-9) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/1782