854.book Seite 1 Montag, 4. September 2006 1:52 13 Thomas Theis Einstieg in PHP 5 und MySQL 5 854.book Seite 2 Montag, 4. September 2006 1:52 13 Liebe Leserin, lieber Leser, ich freue mich, dass Sie sich für ein Galileo Computing-Buch entschieden haben. Dieses Fachbuch von Thomas Theis liegt mittlerweile in der 4. Auflage vor, und es gehört wohl zu den erfolgreichsten Einsteigertiteln im Bereich PHP und MySQL. Das hat seine guten Gründe: (cid:1) Mit diesem Buch können Sie in die Programmierung einsteigen, selbst wenn Sie Anfänger sind und noch keinerlei Programmierkenntnisse besitzen. (cid:1) Alle Beispiele sind ausführlich erklärt und können Schritt für Schritt nachvoll- zogen werden. (cid:1) Das Buch deckt alle relevanten Themen ab, damit Sie in die Lage versetzt wer- den, effizient mit PHP und MySQL zu arbeiten. Auch die Fachpresse spricht Empfehlungen aus. So war etwa zu lesen: »Jeder kann dank dieser guten Einführung den Webauftritt selber gestalten. Beson- ders für die Grundkenntnisse der Datenbankerstellung eine nahezu unverzichtbare Anfängerlektüre.« publisherspartner.com »Ein sehr gelungenes PHP-Einsteigerbuch, das auch Anfängern schnell Erfolge beschert.« designbooks.net Dieses Buch wurde mit großer Sorgfalt geschrieben, lektoriert und produziert. Sollten sich dennoch Fehler eingeschlichen haben, so bin ich dankbar für Ihre Rückmeldung. Ihre freundlichen Anregungen sind jederzeit willkommen. Viel Spaß beim Programmieren wünscht Ihre Judith Stevens-Lemoine Lektorat Galileo Computing [email protected] www.galileocomputing.de Galileo Press • Rheinwerkallee 4 • 53227 Bonn 854.book Seite 5 Montag, 4. September 2006 1:52 13 Auf einen Blick A Einführung ......................................................................... 15 B PHP-Programmierkurs ....................................................... 19 C Daten senden und auswerten ............................................ 99 D Datenbanken ..................................................................... 153 E Objektorientierung in PHP 5 ............................................. 235 F Weitere Themen ................................................................ 275 G Projekte ............................................................................. 493 H HTML ................................................................................. 525 I Anhang ............................................................................... 533 Index .................................................................................. 535 854.book Seite 4 Montag, 4. September 2006 1:52 13 Der Name Galileo Press geht auf den italienischen Mathematiker und Philosophen Galileo Galilei (1564–1642) zurück. Er gilt als Gründungsfigur der neuzeitlichen Wissenschaft und wurde berühmt als Verfechter des modernen, heliozentrischen Weltbilds. Legendär ist sein Ausspruch Eppur se muove (Und sie bewegt sich doch). Das Emblem von Galileo Press ist der Jupiter, umkreist von den vier Galileischen Monden. Galilei entdeckte die nach ihm benannten Monde 1610. Gerne stehen wir Ihnen mit Rat und Tat zur Seite: [email protected] bei Fragen und Anmerkungen zum Inhalt des Buches [email protected] für versandkostenfreie Bestellungen und Reklamationen [email protected] für Rezensions- und Schulungsexemplare Fachgutachten Johannes Plötner, Steffen Wendzel, www.ploetner-it.de Lektorat Judith Stevens-Lemoine Korrektorat Friederike Daenecke, Zülpich Einbandgestaltung Barbara Thoben, Köln Typografie und Layout Vera Brauner Herstellung Steffi Ehrentraut Satz Typographie&Computer, Krefeld Druck und Bindung Koninklijke Wöhrmann, Zutphen, NL Dieses Buch wurde gesetzt aus der Linotype Syntax Serif (9/12,75 pt) in FrameMaker. Gedruckt wurde es auf fein holzhaltigem Naturpapier. Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. ISBN 3-89842-854-0 ISBN 13 978-3-89842-854-5 © Galileo Press, Bonn 2006 4., aktualisierte Auflage 2006 Das vorliegende Werk ist in all seinen Teilen urheberrechtlich geschützt. Alle Rechte vorbehalten, insbesondere das Recht der Übersetzung, des Vortrags, der Reproduktion, der Vervielfältigung auf fotomechanischem oder anderen Wegen und der Speicherung in elektronischen Medien. Ungeachtet der Sorgfalt, die auf die Erstellung von Text, Abbildungen und Program- men verwendet wurde, können weder Verlag noch Autor, Herausgeber oder Übersetzer für mögliche Fehler und deren Fol- gen eine juristische Verantwortung oder irgendeine Haftung übernehmen. Die in diesem Werk wiedergegebenen Gebrauchs- namen, Handelsnamen, Warenbezeichnungen usw. können auch ohne besondere Kennzeichnung Marken sein und als solche den gesetzlichen Bestimmungen unterliegen. 854.book Seite 5 Montag, 4. September 2006 1:52 13 Inhalt A Einführung .......................................................................... 15 A.1 Zu diesem Buch ..................................................................... 15 A.2 PHP – eine Beschreibung ....................................................... 16 A.3 PHP – Vorzüge....................................................................... 16 A.3.1 Erlernbarkeit ............................................................. 16 A.3.2 Einsatzbereich ........................................................... 17 A.3.3 Preis ......................................................................... 17 A.3.4 Ausführungsort ......................................................... 17 A.4 Aufbau dieses Buchs .............................................................. 17 A.5 Systemvoraussetzungen ......................................................... 18 B PHP-Programmierkurs ....................................................... 19 B.1 Einbettung von PHP in HTML ................................................ 19 B.1.1 Kommentare ............................................................. 21 B.2 Variablen, Datentypen und Operatoren ................................. 22 B.2.1 Namen ...................................................................... 23 B.2.2 Variablen für Zahlen .................................................. 23 B.2.3 Rechenoperatoren für Zahlen .................................... 24 B.2.4 Variablen und Operatoren für Zeichenketten ............ 26 B.3 Einfache Formularauswertung ................................................ 29 B.3.1 Eingabeformular ........................................................ 29 B.3.2 Auswertung mit $_POST ........................................... 31 B.3.3 Umwandlung von Zeichenketten in Zahlen................ 33 B.4 Verzweigungen ...................................................................... 36 B.4.1 if-Anweisung............................................................. 37 B.4.2 if-else-Anweisung ..................................................... 38 B.4.3 Logische Operatoren ................................................. 41 B.4.4 Rangordnung der Operatoren ................................... 44 B.4.5 Mehrfache Verzweigung ........................................... 44 B.4.6 switch-case-Anweisung ............................................. 46 B.4.7 HTML in Verzweigungsblöcken ................................. 48 B.5 Schleifen ................................................................................ 49 B.5.1 for-Schleife ............................................................... 49 B.5.2 Beispiele für for-Schleifen.......................................... 51 B.5.3 Geschachtelte for-Schleifen ....................................... 52 B.5.4 Schleifen und Tabellen .............................................. 53 B.5.5 while-Schleife ........................................................... 55 5 854.book Seite 6 Montag, 4. September 2006 1:52 13 Inhalt B.5.6 Schleifenabbruch mit break ....................................... 57 B.5.7 Weitere Schleifenanweisungen .................................. 59 B.6 Felder .................................................................................... 60 B.6.1 Numerisch indizierte Felder ...................................... 61 B.6.2 Assoziative Felder ..................................................... 63 B.7 Funktionen ............................................................................ 66 B.7.1 Ein erstes Beispiel ..................................................... 67 B.7.2 Definition, Aufruf und Funktionstypen ...................... 68 B.7.3 Funktionen mit einem Parameter .............................. 69 B.7.4 Funktionen mit mehreren Parametern ....................... 71 B.7.5 Rückgabewert einer Funktion .................................... 74 B.7.6 Kopie und Referenz................................................... 76 B.7.7 Gültigkeitsbereich von Variablen ............................... 80 B.7.8 Variable Parameterlisten ........................................... 82 B.7.9 include-Anweisung ................................................... 84 B.8 Beispiele ................................................................................ 86 B.8.1 Formatierung von Zahlen .......................................... 86 B.8.2 Geldanlage ................................................................ 88 B.8.3 Steuertabelle ............................................................. 90 B.8.4 Bestimmung des Ostersonntags ................................. 93 C Daten senden und auswerten ............................................ 99 C.1 Text-Elemente ....................................................................... 99 C.1.1 Einzeilige Text-Eingabefelder..................................... 99 C.1.2 Mehrzeilige Text-Eingabefelder ................................. 102 C.1.3 Passwort-Eingabefeld, verstecktes Element ............... 103 C.2 Auswahl-Elemente ................................................................. 107 C.2.1 Radio-Button-Gruppe ............................................... 107 C.2.2 Einfaches Auswahlmenü ............................................ 110 C.2.3 Kontrollkästchen ....................................................... 111 C.2.4 Mehrfaches Auswahlmenü ........................................ 113 C.3 Aktions-Elemente .................................................................. 115 C.3.1 Absenden und Zurücksetzen ..................................... 116 C.3.2 Allgemeiner Button ................................................... 119 C.4 Weitere Möglichkeiten .......................................................... 123 C.4.1 Auswertung in anderem Frame.................................. 123 C.4.2 Felder von Formular-Elementen ................................ 125 C.4.3 Formular und Programm in einer Datei ..................... 128 C.4.4 Submit über Hyperlink, CSS....................................... 130 C.4.5 Daten an Formularziel anhängen ............................... 133 6 854.book Seite 7 Montag, 4. September 2006 1:52 13 Inhalt C.4.6 Daten an Hyperlink-Ziel anhängen ............................ 136 C.4.7 Dateien auf den Server hochladen ............................. 138 C.5 Beispiele ................................................................................ 141 C.5.1 Grundrechenarten ..................................................... 141 C.5.2 Pizzabestellung ......................................................... 144 C.6 PHP-Programme publizieren .................................................. 147 C.6.1 Verbindung herstellen ............................................... 148 C.6.2 Dateien und Verzeichnisse hochladen ....................... 149 C.6.3 Arbeiten mit Verzeichnissen ...................................... 150 C.6.4 Verschieben von Dateien .......................................... 150 D Datenbanken ...................................................................... 153 D.1 MySQL und PHPMyAdmin .................................................... 154 D.1.1 PHPMyAdmin ........................................................... 155 D.1.2 Beispieldatenbank und -tabelle ................................. 155 D.1.3 Datenbank erzeugen ................................................. 156 D.1.4 Datenbank umbenennen ........................................... 157 D.1.5 Datenbank löschen ................................................... 158 D.1.6 Tabelle erzeugen ....................................................... 158 D.1.7 Tabellenstruktur verändern ....................................... 160 D.1.8 Index erzeugen ......................................................... 164 D.1.9 Index löschen ............................................................ 165 D.1.10 Tabellennamen ändern .............................................. 165 D.1.11 Tabelle optimieren .................................................... 166 D.1.12 Tabelle löschen ......................................................... 167 D.1.13 Datensätze eintragen ................................................ 167 D.1.14 Datensatzauswahl ..................................................... 168 D.1.15 Vergleichsoperatoren, logische Operatoren ............... 174 D.1.16 Vergleichsoperator like ............................................. 175 D.1.17 Sortierung ................................................................. 178 D.1.18 Datensätze ändern .................................................... 179 D.1.19 Datensätze löschen ................................................... 182 D.1.20 Verwendete SQL-Anweisungen ................................. 183 D.2 PHP und MySQL .................................................................... 184 D.2.1 Verbindung aufnehmen, Datensätze anzeigen ........... 184 D.2.2 Datensätze auswählen ............................................... 186 D.2.3 Ausgabe in eine HTML-Tabelle.................................. 190 D.2.4 Auswahl von Daten über ein Suchformular ................ 191 D.2.5 Datensätze erzeugen ................................................. 199 D.2.6 Änderung mehrerer Datensätze ................................. 203 D.2.7 Änderung eines bestimmten Datensatzes .................. 204 7 854.book Seite 8 Montag, 4. September 2006 1:52 13 Inhalt D.2.8 Datensätze löschen ................................................... 209 D.2.9 Benutzeroberfläche mit JavaScript und CSS ............... 212 D.2.10 Ein Datenbank-Browser............................................. 218 D.3 MySQL-Datenbanken publizieren .......................................... 225 D.3.1 Verbindung aufnehmen ............................................. 226 D.3.2 Export einer Tabelle .................................................. 228 D.3.3 PHPMyAdmin im Internet ......................................... 230 D.3.4 Ein eigenes PHP-Programm schreiben ....................... 231 E Objektorientierung in PHP 5 ............................................. 235 E.1 Was ist objektorientierte Programmierung? ........................... 235 E.2 Änderungen in PHP5 ............................................................. 236 E.3 Klassen und Objekte .............................................................. 236 E.3.1 private, protected und public .................................... 238 E.3.2 Anwendung der Klasse .............................................. 238 E.4 Konstruktor ........................................................................... 240 E.5 Destruktor ............................................................................. 243 E.6 Optionale Parameter ............................................................. 244 E.7 Handles und Kopien .............................................................. 247 E.7.1 Vordefiniertes Klonen ............................................... 247 E.7.2 Benutzerdefiniertes Klonen ....................................... 249 E.7.3 Übergabe eines Objekts an eine Funktion ................. 251 E.8 Vererbung ............................................................................. 252 E.8.1 Konstruktoren bei Vererbung .................................... 255 E.9 Dereferenzierung von Objekten ............................................. 256 E.10 Konstanten, statische Eigenschaften und Methoden .............. 257 E.11 Abstrakte Klassen und Methoden .......................................... 260 E.12 Systemvariablen __METHOD__, __FILE__, __LINE__ .............. 262 E.13 Operator instanceof ............................................................... 263 E.14 Hilfsfunktionen ...................................................................... 264 E.15 Ausgabe-Methode __toString ................................................ 266 E.16 autoload-Funktion ................................................................. 267 E.17 Sonstige Erweiterungen ......................................................... 268 E.17.1 Parameter mit Voreinstellung .................................... 268 E.18 Beispiel zur Objektorientierung.............................................. 269 F Weitere Themen ................................................................. 275 F.1 Zeichenketten ........................................................................ 275 F.1.1 Länge, Umwandlungsfunktionen ............................... 275 F.1.2 Zeichenketten und Felder.......................................... 278 8 854.book Seite 9 Montag, 4. September 2006 1:52 13 Inhalt F.1.3 Teil-Zeichenketten .................................................... 279 F.1.4 Suchen nach Position ................................................ 281 F.1.5 Vergleich von Zeichenketten ..................................... 283 F.1.6 Codierung von Zeichen ............................................. 284 F.1.7 Einfache Verschlüsselung .......................................... 286 F.1.8 Weitere Verschlüsselungsmethoden .......................... 288 F.2 Dateien und Verzeichnisse ..................................................... 289 F.2.1 Dateitypen ................................................................ 289 F.2.2 Lesen einer Zeile aus einer sequenziellen Datei ......... 290 F.2.3 Lesen aller Zeilen einer sequenziellen Datei .............. 292 F.2.4 Vereinfachtes Lesen einer Datei ................................ 294 F.2.5 Überschreiben einer sequenziellen Datei ................... 295 F.2.6 Anhängen an eine sequenzielle Datei ........................ 296 F.2.7 Ein einfacher Zugriffszähler........................................ 299 F.2.8 Wahlfreier Zugriff ...................................................... 300 F.2.9 Informationen über Dateien ...................................... 304 F.2.10 Informationen über einzelnes Verzeichnis ................. 304 F.2.11 Informationen über den Verzeichnisbaum ................. 307 F.3 Felder .................................................................................... 309 F.3.1 Operationen für numerisch indizierte Felder ............. 309 F.3.2 Operationen für assoziative Felder ............................ 315 F.3.3 Zweidimensionale Felder, allgemein .......................... 318 F.3.4 Zweidimensionale numerische Felder ........................ 318 F.3.5 Zweidimensionale gemischte Felder .......................... 320 F.3.6 Zweidimensionale assoziative Felder ......................... 323 F.4 Datum und Zeit ..................................................................... 326 F.4.1 Zeit ermitteln und ausgeben ..................................... 326 F.4.2 Zeit formatiert ausgeben ........................................... 327 F.4.3 Zeitangabe auf Gültigkeit prüfen ............................... 330 F.4.4 Absolute Zeitangabe erzeugen .................................. 331 F.4.5 Relative Zeitangabe erzeugen .................................... 333 F.4.6 Mit Zeitangaben rechnen .......................................... 334 F.4.7 Zeitangaben in Datenbanken .................................... 337 F.4.8 Beispiel Feiertagsberechnung .................................... 338 F.5 Mathematische Funktionen ................................................... 341 F.5.1 Taschenrechnerfunktionen ........................................ 342 F.5.2 Mathematische Konstanten....................................... 343 F.5.3 Ganzzahlermittlung, Extremwerte ............................. 344 F.5.4 Trigonometrische Funktionen .................................... 346 F.5.5 Prüffunktionen für Zahlen ......................................... 347 F.5.6 Zufallszahlen ............................................................. 349 9 854.book Seite 10 Montag, 4. September 2006 1:52 13 Inhalt F.5.7 Mischen .................................................................... 351 F.5.8 Stellenwertsysteme ................................................... 354 F.6 Sessions und Cookies ............................................................. 356 F.6.1 Session-Management ................................................ 357 F.6.2 Session-Beispiel: Zugriffszähler .................................. 357 F.6.3 Session-Beispiel: geschützte Website ........................ 359 F.6.4 Session-Beispiel: Webshop ........................................ 364 F.6.5 Cookies ..................................................................... 374 F.6.6 Cookie-Beispiel: Besuch ............................................ 375 F.6.7 Cookie-Beispiel: Adressspeicherung .......................... 377 F.7 SQLite ................................................................................... 380 F.7.1 Eingaben von der Kommandozeile ............................ 380 F.7.2 Datenbank-Datei, Tabelle und Datensätze erzeugen.. 381 F.7.3 Abfrage der Datensätze ............................................. 382 F.7.4 Schnelle Abfrage der Datensätze ............................... 384 F.7.5 Benutzeroberfläche mit JavaScript und CSS ............... 385 F.8 XML ...................................................................................... 390 F.8.1 Einlesen eines einzelnen Objekts ............................... 390 F.8.2 Einlesen mehrerer Objekte ........................................ 392 F.8.3 Zugriff auf Attribute .................................................. 395 F.8.4 Interne XML-Daten ................................................... 396 F.8.5 Speicherung von Objekten ........................................ 398 F.9 Reguläre Ausdrücke ............................................................... 399 F.9.1 Einfache Suche .......................................................... 399 F.9.2 Tabellenausgabe ....................................................... 400 F.9.3 Suche nach Position .................................................. 402 F.9.4 Suche nach Häufigkeit ............................................... 403 F.9.5 Suche nach Häufigkeit für mehrere Zeichen ............... 406 F.9.6 Oder-Verknüpfung .................................................... 407 F.9.7 Beliebige Zeichen, Buchstaben oder Ziffern ............... 408 F.9.8 Suche nach Sonderzeichen ........................................ 410 F.9.9 Logische Negation .................................................... 410 F.9.10 Beispiel: Geldbetrag .................................................. 411 F.9.11 Beispiel: Datum......................................................... 412 F.9.12 Ersetzen von Text ...................................................... 413 F.9.13 Ersetzen von Suchmustern ........................................ 415 F.10 Grafiken................................................................................. 416 F.10.1 Installation testen ..................................................... 416 F.10.2 Grafik speichern ........................................................ 417 F.10.3 Grafik unmittelbar anzeigen ...................................... 419 F.10.4 Text mit internen Fonts ............................................. 419 10
Description: