magnum PHP 5 & MySQL 4.1 kompakt komplett kompetent CHRISTINE PEYTON ANDRE MÖLLER

Ähnliche Dokumente
Kapitel 4: PHP-Grundlagen Kapitel 5: PHP-Bausteine für Programme

Gregor Kuhlmann Friedrich Müllmerstadt. MySQL. Der Schlüssel zu Datenbanken-Design und -Programmierung. c 3 E. i- O Rowohlt Taschenbuch Verlag

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

jetzt lerne ich PHP 5 & MySQL 4.1 Der schnelle Einstieg in die objektorientierte

Inhaltsverzeichnis. 1 Hallo 13

DAS EINSTEIGERSEMINAR PHP 5.3 LERNEN ÜBEN ANWENDEN. Oliver Leiss Jasmin Schmidt. 3. Auflage

ACÖ - Martin Kästner Perl fürs Web. Galileo Computing

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Programmieren lernen in ASP.NET mit C#

Matthias-Claudius-Gymnasium Fachcurriculum Informatik

2 Entscheidungen, Schleifen und. Inhaltsverzeichnis. Funktionen 42. Inhaltsverzeichnis. Liebe Leserin, lieber Leser...11

Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten

für Buntmies PHP und MySQL Janet Vaiade Übersetzung und umfassende Aktualisierung WILEY-VCH Verlag GmbH & Co. KGaA WILEY- VCH </on Christine Peyton

Vorwort Einführung in Power Query Erste Abfrage erstellen... 21

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

Martin Kästner Perl fürs Web

Inhalt. Vorwort 13. Einleitung 15. Für wen ist dieses Buch gedacht? 15 Zum Aufbau des Buchs Installation und erste Schritte 17

Grundlagen der Informatik 2

Grundlagen der Informatik 2

PHP Programmierung. Seminarunterlage. Version 1.02 vom

Datenbanken mit OpenOffice.org Base

Helmut Dittrich Jürgen Mellenthin PHP 4-Workshop

Inhaltsverzeichnis. jetzt lerne ich

Auf einen Blick. Vorwort Einführung Sprachgrundlagen von VBScript Objektorientierte Programmierung mit. dem Windows Script Host 115

Schnellübersicht Kapitel

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Funktionen in JavaScript

Datenbanken mit OpenOffice.org 3 Base und HSQLDB

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

ActionScript, Director, PHP 5 und MySQL

1 Einführung Erste Schritte Programmierkurs Datentypen Weiterführende Programmierung

Jens Ferner. Profikurs PHP-Nuke

Inhalt. Vorwort 13. Einleitung JavaScript-Grundlagen 17

Richtig einsteigen: Access 2007 VBA-Programmierung

MySQL, phpmyadmin & SQL. Kurzübersicht

Datenbanken mit OpenOffice.org 2.3 Base und HSQLDB

PHP Schulung Beginner. Newthinking Store GmbH Manuel Blechschmidt

Jörg Krause PHP 4. Grundlagen und Profiwissen. Webserver-Programmierung unter Windows und Linux HANSER

jetzt lerne ich ASP.NET Dynamische Webseiten mit ASP.NET 1.1 mit Ausblick auf ASP 2.0 WENZ KORDWIG TRENNHAUS

Linux-Camp: Linux als Server am Beispiel LAMP

Inhalt. 1. MySQL-Einführung Datenbankentwurf 27

Das Einsteigerseminar Objektorientierte Programmierung in Java

Beschreibung des Angebotes. PHP Programmierung. LernenimInternet. Angebot-Nr Angebot-Nr Weiterbildung. Preis.

Einführung in SQL Datenbanken bearbeiten

Grundkurs MySQL und PHP

JSP mit Tomcat. jetzt lerne ich. Der einfache Einstieg ins dynamische Webpublishing mit JavaServer Pages. Markt+Technik

Inhalt. 1. PHP-Einführung 1

Einstieg in PHP 5.3 und MySQL 5.1

Makros in OpenOffice.org - Basic/StarBasic

C programmieren. Jürgen Wolf

1 Einführung 1. 2 Einrichten der Arbeitsumgebung 9. 3 Schnelleinstieg in Xcode und Objective-C 25

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:

Inhaltsverzeichnis. Vorwort.11

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Datenbankgrundlagen 15. Kapitel 2 Mit FileMaker arbeiten ohne Vorkenntnisse 33

<Trainingsinhalt> XML und Datenbanken

Jonas Hellwig/Christian Gatzen. Word Press^Themes. Design und I lüir Word Press. 3. Mit 409 Abbildungen

Multimedia im Netz Wintersemester 2011/12

Inhalt. Vorwort 11. Inhalt der Buch-CD Einführung 17

Inhaltsverzeichnis. Teil 1 Vorbereitungen 37. Vorwort 31 Das Konzept 31 Der Inhalt 34 Die Besonderheiten 35 Der Dank 35

Domino und PHP EC 2013 Track 2 Session 7

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

(Iemens Gull. Mit 148 Abbildungen

Funktionen in JavaScript

Gliederung der Folien

Einleitung Erste Abfrage erstellen...2

1)Login Funktion ohne Datenbank

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

Inhaltsübersicht.

Richtig einsteigen: Access 2010 VBA-Programmierung

Helma Spona. Windows PowerShell. Galileo Press

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14

Kurzeinführung Excel2App. Version 1.0.0

Andreas Mylius / Raimund Boiler. Dreamweaver CS5. Webseiten entwerfen und umsetzen. Mit 602 Abbildungen

Auf einen Blick. Auf einen Blick. 1 Den Computer kennenlernen Windows kennenlernen Mit Ordnern und Dateien arbeiten...

PHP mit Dreamweaver MX bearbeiten 00

PHP 5 - Kochbuch. Jörg Krause ISBN Inhaltsverzeichnis

Inhaltsverzeichnis. vii

Zum Bearbeiten ins Backend einloggen

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung 11. Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen 17

PHP. M.Sc. Nadine Preuß Geographische Analyse- und Darstellungsmethoden WS 15/

Web-basierte Anwendungssysteme PHP Teil 2

Übersicht der wichtigsten MySQL-Befehle

Anleitung Formmail- Script für den DA-FormMaker

Christian Wenz, Tobias Hauser. PHP 5.6 und MySQL. Das umfassende Handbuch

Internet-Technologien

Inhaltsverzeichnis. Teil 1 - XM L Einleitung Motivation...15

Typo 3 installieren. Schritt 1: Download von Typo3

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Vorwort Die Excel-Arbeitsumgebung für Fortgeschrittene... 11

Grundkurs Software- Entwicklung mit C++

Visual Basic.NET mit Methode

PHP5. Schritt für Schritt zum Profi

Objektorientierte Programmierung in Java

Inhaltsverzeichnis Einleitung xi Kapitel 1: Die Vorbereitung aufs Abenteuer

Dynamik bis zur DB-Interaktion. Marc Schanne. CGI Möglichkeiten

Michael Kolberg. einfach klipp & klar. Microsofft* Press

Transkript:

magnum PHP 5 & MySQL 4.1 CHRISTINE PEYTON ANDRE MÖLLER kompakt komplett kompetent

Vorwort... 15 Aufbau des Buches... 16 Tipps zum Lesen und Lernen... 16 1 Was ist PHP?... 19 1.1 Spezielle Merkmale von PHP... 19 1.2 Was kann und macht PHP?... 2 1.3 So funktioniert PHP... 21 2 Die Installation... 23 2.1 Benötigte Software... 23 2.2 Apache installieren... 24 2.3 PHP installieren... 29 2.3.1 PHP downloaden... 29 2.3.2 Die Path-Umgebungsvariable anpassen... 29 2.3.3 Die php.ini-datei erstellen... 3 2.3.4 Die httpd.conf-datei anpassen... 31 2.3.5 Erweiterungen/Extensions hinzufügen... 32 2.3.6 Alte Installationen von PHP aufräumen... 33 2.4 MySQL installieren... 34 2.4.1 MySQL downloaden und installieren... 35 2.5 Testen der Installation... 38 2.6 Häufig gemachte Fehler... 4 2.6.1 Eine dll kann nicht geladen werden... 4 2.6.2 undefined function... 41 2.6.3 Der Apache startet nicht... 41 2.6.4 PHP Code erscheint auf der Seite... 41 2.6.5 Eine falsche Datei wird angezeigt... 41 2.6.6 Ich habe alles genau nach Anleitung durchgeführt, dennoch geht es nicht... 42 3 PHP Die Grundlagen... 43 3.1 Die Scripts testen... 44 3.2 Das Grundgerüst eines PHP-Scripts... 44 3.3 Speichern... 46 3.4 Ausgabe... 47 3.5 PHP-Info... 5 3.6 Sonderzeichen... 51 3.7 Kommentare... 52 3.8 Variablen... 53 3.8.1 Syntax und Wertezuweisung... 53 5

magnum 3.9 Datentypen... 62 3.9.1 Strings oder Zeichenketten... 64 3.9.2 Zahlen... 65 3.9.3 Datentypen feststellen und festlegen... 69 3.1 Die Welt der Konstanten... 71 3.1.1 Syntax und Definition... 72 3.1.2 Umgang mit Konstanten... 73 3.11 Arrays... 74 3.11.1 Der Umgang mit Arrays Beispiele... 78 3.11.2 Mehrdimensionale Arrays... 81 3.12 Reguläre Ausdrücke... 82 3.12.1 Muster definieren... 82 3.12.2 Funktionen der regulären Ausdrücke... 84 4 Vordefinierte Funktionen... 87 4.1 Zeichenketten(String)-Funktionen... 88 4.1.1 Echo und Co... 88 4.1.2 Leerstellen entfernen... 91 4.1.3 HTML aus Strings entfernen... 91 4.1.4 Umgang mit Backslashes und Anführungszeichen 93 4.1.5 Strings auffüllen padding... 94 4.1.6 Zeichenketten zerlegen/erzeugen... 95 4.1.7 Strings ersetzen... 97 4.1.8 Von und in ASCII-Zeichen verwandeln... 97 4.1.9 HTML-Entities... 99 4.1.1 Nadel im Heuhaufen... 1 4.1.11 Nach Strings suchen... 11 4.1.12 Teilstrings zurückgeben lassen... 13 4.1.13 Zeichenketten zählen... 13 4.1.14 Groß- und Kleinschreibung von Strings ändern. 17 4.1.15 Zeichen umwandeln... 18 4.1.16 Fließtext umbrechen... 111 4.1.17 Strings wiederholen... 113 4.1.18 Zeichenketten kodieren/dekodieren... 114 4.2 Array-Funktionen... 114 4.2.1 Elemente zählen... 114 4.2.2 Aus eins mach zwei merge()... 115 4.2.3 Arrays sortieren... 115 4.2.4 In Arrays suchen... 117 4.2.5 Auf Schlüssel und Werte zugreifen... 118 4.2.6 Schlüssel/Werte zurückgeben lassen... 12 4.2.7 Doppelte Werte ausschließen... 121 4.2.8 Arrays umkehren... 122 4.2.9 Zufällige Reihenfolge... 123 4.2.1 Arrays mit Zahlen/Zeichen erzeugen... 124 4.2.11 Werte summieren/zählen... 125 6

4.2.12 Elemente im Array löschen... 127 4.2.13 Das erste/letzte Element entfernen... 127 4.3 Datei-Funktionen... 128 4.3.1 Dateien öffnen/erzeugen... 129 4.3.2 Dateien lesen... 13 4.3.3 In Dateien schreiben... 133 4.3.4 Existiert die Datei?... 134 4.3.5 Datei bewegen/kopieren/löschen... 134 4.3.6 Den Dateizeiger positionieren: rewind() und fseek()... 135 4.4 Verzeichnis-Funktionen... 137 4.4.1 Den Inhalt eines Verzeichnisses auslesen... 137 4.4.2 Verzeichnisse löschen... 138 4.5 Mail-Funktionen... 138 4.6 Datums- und Zeitfunktionen... 139 4.6.1 Datumsangaben/Zeitangaben... 139 4.6.2 Im Lauf der Zeit... 144 4.7 Mathematische Funktionen... 144 4.7.1 Elementare Funktionen... 144 4.7.2 Auf- und Abrunden... 146 4.7.3 Zufällige Ergebnisse... 147 5 Kontrollstrukturen... 149 5.1 Die if-anweisung... 149 5.1.1 Vergleichsoperatoren und logische Operatoren. 15 5.2 Verwendung von if-else... 151 5.3 Die switch-anweisung... 153 5.4 Schleifen... 154 5.4.1 Die Verwendung der while-schleife... 154 5.4.2 do-while-schleifen... 156 5.5 Die Verwendung der for-anweisung... 158 5.5.1 Erläuterung der for-schleife... 159 6 Ein Kontaktformular... 161 6.1 Vorüberlegungen... 161 6.2 Das Kontaktformular erstellen... 162 6.2.1 Erläuterung des Scripts... 163 6.3 Die Übertragungsmethoden POST und GET... 165 6.3.1 Datenübertragung mit GET... 165 6.3.2 Datenübertragung mit POST... 166 6.3.3 Daten übermitteln per URL... 166 6.4 Das PHP-Script für eine Feedback-Seite... 167 6.4.1 Die If-Verzweigung... 168 6.4.2 Das Formular testen... 169 6.5 Ein neues Script: HTML und PHP werden kombiniert... 169 6.5.1 Fehlende Eingaben im Script berücksichtigen... 171 6.5.2 Das Script testen... 174 7

magnum 6.5.3 Meldungen unterdrücken... 174 6.6 Strings bearbeiten... 178 6.6.1 Leerstellen entfernen... 178 6.6.2 Strings kombinieren... 179 6.6.3 Anführungszeichen bei Texteingaben... 18 6.6.4 Die Sache mit den magic_quotes... 18 6.7 Die Daten als E-Mail verschicken... 182 7 Währungen umrechnen... 189 7.1 Vorüberlegungen zur ersten Variante: Euro-Umrechner.. 19 7.1.1 Gebrauch der switch-anweisung... 191 7.1.2 Erläuterung zum Script in einzelnen Schritten... 192 7.2 Ein Währungsumrechner... 195 7.2.1 Vorüberlegungen... 195 7.2.2 Erläuterung des Scripts... 198 7.2.3 Die Darstellung auf der Seite... 199 7.2.4 Zahlen bearbeiten... 21 7.3 Weitere Vereinfachungen... 23 7.3.1 Ausblick... 27 8 Wechselnde Textausgaben... 29 8.1 Vorüberlegungen... 21 8.2 Erläuterung des Scripts... 212 8.3 Ausblick Texte aus einer Datei übernehmen... 215 9 Ein Gästebuch programmieren... 217 9.1 Daten in Textdateien sichern... 217 9.1.1 Vorüberlegungen zum Script... 219 9.1.2 Erläuterung des Scripts... 224 9.1.3 Die Textdatei überprüfen... 231 9.2 Gästebucheinträge auslesen... 231 1 Einen Counter programmieren... 235 1.1 Ein einfacher Counter ohne Cookie... 235 1.1.1 Erläuterung des Scripts... 236 1.2 Ein Counter mit Cookie... 238 1.2.1 Ein Cookie implementieren... 239 1.2.2 Erläuterung des Scripts... 24 1.3 Ein Counter mit fester Stellenanzahl... 245 1.3.1 Erläuterung des Scripts... 246 1.3.2 Erweiterung für»viel besuchte«webseiten... 247 1.4 Cookies näher betrachtet... 249 1.4.1 Mehrere Werte in einem Cookie... 251 1.4.2 Cookies löschen... 252 1.5 Ausblick Identifikation über die IP-Adresse... 252 1.5.1 Die IP-Methode... 253 8

11 MySQL Schnelleinführung... 255 11.1 Die Verbindung zum Datenbankserver... 256 11.2 Eine Datenbank anlegen... 257 11.3 Eine Tabelle anlegen... 261 11.4 Die Datenbanktabelle mit Daten füllen... 263 11.5 Daten aus einer Datenbank gewinnen... 263 11.6 Werte bearbeiten... 265 11.7 Datensätze löschen... 266 11.8 Daten in SQL-Strings... 266 11.9 Das Tool phpmyadmin... 267 11.9.1 phpmyadmin anpassen... 268 11.9.2 Tabellen erstellen mit phpmyadmin... 269 12 Ein Gästebuch auf Datenbankbasis... 273 12.1 Die Tabelle erstellen... 273 12.2 Das Formular zum Eingeben neuer Datenbankeinträge... 275 12.2.1 Der Formularteil des Scripts... 275 12.2.2 Fehlermeldung und Speichern des Eintrags... 276 12.2.3 Erläuterung des Scripts... 279 12.3 Die Präsentation der Gästebucheinträge... 283 12.3.1 Einträge auslesen... 285 12.3.2 Daten ausgeben... 286 12.4 Die Seite zum Bearbeiten der Gästebucheinträge... 287 12.4.1 Einträge löschen... 291 12.4.2 Datensätze freischalten/sperren... 293 12.4.3 Einträge des Gästebuchs editieren... 297 12.4.4 Die Seite schützen... 3 12.4.5 Hilfreiche Erweiterungen... 31 13 Dateien hochladen... 311 13.1 Das Formular für den Upload... 313 13.1.1 Vorüberlegungen zum Formular... 313 13.1.2 Verarbeitung der hochgeladenen Datei... 316 13.2 Datei-Upload mit Linkliste... 322 13.2.1 Das Script für den Upload in ein Unterverzeichnis und die Linkliste... 323 13.2.2 Das Verzeichnis für die Dateien... 325 13.2.3 Die Linkliste erstellen... 328 13.3 Löschen der hochgeladenen Dateien... 33 13.3.1 Das Script zum Löschen von Dateien... 331 13.4 Ausblick: Upload von Textdateien... 333 14 Datei-Upload in eine Datenbanktabelle... 335 14.1 Die Tabelle erstellen... 336 14.2 Das Upload-Script anpassen... 338 14.2.1 Anpassung des Formulars... 34 9

magnum 14.2.2 Die Datei und die Informationen in der Datenbank speichern... 342 14.3 Die Verbindung zur Datenbank... 348 14.4 Die Datei zum Auslesen der Daten aus der Datenbanktabelle... 349 14.4.1 Das Script zum Auslesen der hochgeladenen Dateien... 351 14.5 Eine Linkliste erstellen... 358 14.5.1 Das Script für die Linkliste... 358 14.6 Bearbeiten der Datensätze... 365 14.6.1 Links zum Löschen und Bearbeiten hinzufügen. 369 14.6.2 Einen Datensatz löschen... 37 14.6.3 Das Formular zum Bearbeiten eines Datensatzes 37 14.6.4 Änderungen an einem Datensatz speichern... 373 14.7 Mehrere Dateien auf einmal hochladen... 374 14.8 Fehler beim Dateiupload... 374 15 Grafiken mit PHP... 375 15.1 Wie man mit PHP Grafiken erstellt... 377 15.1.1 Welche Grafikformate unterstützt werden... 377 15.2 Die erste Grafik... 381 15.3 Eine einfache Schaltfläche für wechselnde Texte erstellen 389 15.3.1 Das Grafik Script erläutert... 391 15.4 Vorschaugrafiken erstellen... 394 15.4.1 Das Script für Vorschaugrafiken... 395 15.5 Eine Tabelle mit Vorschaugrafiken anzeigen... 41 15.5.1 Das Script für die Tabelle mit Vorschaugrafiken 42 15.5.2 Vorschaugrafiken in tabellarischer Anordnung. 44 15.6 Cachen von Grafiken... 47 15.6.1 Das geänderte Script vorschau.php... 48 15.6.2 Die Erklärung des Cachemechanismus... 41 16 Funktionen und Klassen... 413 16.1 Kurze Einführung in Funktionen... 413 16.1.1 Eine Funktion deklarieren und aufrufen... 414 16.1.2 Globale Variablen... 414 16.1.3 Werte per Referenz übergeben... 415 16.1.4 Optionale Parameter... 417 16.1.5 Rückgabewerte... 418 16.2 Einführung in Klassen... 419 16.2.1 Vererbung... 422 16.2.2 Statische Variablen... 423 16.2.3 Sichtbarkeit... 424 16.3 Die Klasse für den Datenbankzugriff... 425 16.3.1 Das Listing der Datenbankklasse... 425 16.3.2 Erklärung der Datenbankklasse... 427 1

16.3.3 Die Datenbankklasse erweitern... 431 16.3.4 Einsetzen der Klassen für den Datenbankzugriff 431 17 Webseiten schützen... 435 17.1 Wie soll der Zugriffsschutz funktionieren?... 436 17.1.1 Die Zutaten... 436 17.1.2 Besondere Rechte für den Administrator... 437 17.2 Sicherheit... 437 17.3 Die Session-Funktionen... 439 17.4 Die Tabelle erstellen... 44 17.5 Eine Webseite zum Verwalten der User... 442 17.6 Der Zugriffsschutz... 455 17.6.1 Erklärung der Klasse für den Zugriffsschutz... 46 17.7 Den Zugriffsschutz einsetzen... 468 17.7.1 Die Userverwaltung... 469 17.7.2 Die Login- und Logout-Seiten... 47 17.7.3 Seiten schützen... 471 18 PDF-Dateien mit PHP erstellen (FPDF)... 473 18.1 Vorüberlegung... 473 18.1.1 Die Tabelle für das Immobilienangebot... 474 18.2 Layout der PDF-Seite... 475 18.3 Der komplette Code... 476 18.4 Erklärung des Scripts... 478 18.4.1 FPDF ready for take off... 478 18.4.2 Auslesen der anzuzeigenden Daten... 479 18.4.3 Das PDF-Dokument beginnen... 48 18.4.4 Die Kopfzeile hinzufügen... 486 18.4.5 Die Fußzeile hinzufügen... 488 19 MySQL die zweite... 491 19.1 Datentypen von MySQL... 491 19.1.1 Die Wahl des Datentyps... 491 19.1.2 Numerische Datentypen... 493 19.1.3 Datentypen für Strings... 495 19.1.4 Datums- und Zeitdatentypen... 55 19.1.5 Übersicht über die Datentypen... 58 19.1.6 Automatisches Anpassen der Datentypen... 513 19.2 Datenbankdesign... 514 19.2.1 Aufbau einer Datenbank ein Beispiel... 514 19.3 Indexe in MySQL... 52 19.3.1 Indextypen... 52 19.3.2 Indexe anlegen... 521 19.4 Zeichensätze und Kollation... 523 19.4.1 Auswirkungen unterschiedlicher Kollationen ein Beispiel... 523 19.4.2 Sortierreihenfolgen angeben... 525 11

magnum 19.4.3 Zeichensatz und Kollation im SQL-Statement... 527 19.4.4 Sortierreihenfolge und Präzedenz... 527 19.4.5 Zeichensätze konvertieren... 529 19.4.6 Welche Zeichensätze und Sortierreihenfolgen werden unterstützt?... 53 19.4.7 Unicode-Zeichensätze... 531 19.5 JOINs für Abfragen... 532 19.5.1 Natural Joins verwenden... 532 19.5.2 Left Joins verwenden... 537 19.5.3 Der Self Join... 54 19.6 Subqueries... 542 19.6.1 Subqueries als Skalar... 543 19.6.2 Subqueries mit mehreren Reihen in der Ergebnismenge... 544 19.6.3 Subqueries mit EXISTS und NOT EXISTS... 545 19.7 Transaktionen... 546 19.8 Foreign Keys und referentielle Integrität... 549 19.9 Tabellentypen in MySQL... 551 19.9.1 Der Tabellentyp MyISAM... 552 19.9.2 Der Tabellentyp InnoDB... 553 19.9.3 HEAP-Tabellen... 553 2 MySQL die dritte... 555 2.1 Nützliche Informationen über die Datenbank erhalten... 555 2.1.1 Informationen über Datenbanken anzeigen lassen... 555 2.1.2 Informationen über Tabellen... 556 2.1.3 Informationen über Indexe... 558 2.1.4 Informationen über Felder... 558 2.2 Änderungen an der Datenbank... 558 2.3 Die Tabellenstruktur ändern... 559 2.3.1 Änderungen an der Tabelle... 559 2.3.2 Felder bearbeiten... 562 2.4 Funktionen in MySQL nutzen... 563 2.5 Optimieren von Datenbankabfragen... 571 2.5.1 Die Verbindung optimieren... 571 2.5.2 Aufräumen der Tabellen... 571 2.5.3 Die Arbeitsbelastung des Servers verteilen... 572 2.5.4 Weniger ist schneller... 572 2.5.5 Explain... 573 2.6 MySQLi... 575 2.6.1 Aktivieren der Extension... 576 2.6.2 MySQLi einsetzen... 576 21 Ein News-System mit Ausnahmen (Exceptions)... 583 21.1 Ausnahmen in PHP... 583 21.1.1 Problemstellung... 583 12

21.1.2 Ausnahmen als Vereinfachung... 584 21.1.3 Die interne Klasse Exception... 585 21.1.4 Ausnahmen mit erweiterten Klassen... 586 21.1.5 Ausnahmen weiterreichen... 589 21.1.6 Die Standard-Ausnahme-Funktion... 589 21.2 Das News-System... 591 21.2.1 Script erklärt... 593 21.2.2 Script einsetzen... 61 22 Ein Message-System für angemeldete User... 613 22.1 Die Fehlerklassen... 614 22.2 Die Klasse für die einzelnen Nachrichten... 615 22.2.1 Die Attribute der Klasse... 615 22.2.2 Der Konstruktor... 617 22.2.3 Eine Nachricht anlegen... 617 22.2.4 Eine Nachricht ändern... 618 22.2.5 Eine Nachricht löschen... 619 22.2.6 Vorhandene Nachrichten auslesen... 619 22.2.7 Die Werte eines Objektes festlegen... 62 22.2.8 Neue Nachrichten?... 62 22.2.9 Eine Nachricht ausgeben... 621 22.2.1 Das Formular für neue Nachrichten... 622 22.2.11 Daten einer Nachricht testen... 622 22.2.12 Alle Nachrichten eines Users löschen... 624 22.2.13 Die Tabelle für die Nachrichten erstellen... 624 22.3 Die Klasse für das Message-System... 625 22.3.1 Die Attribute der Klasse... 625 22.3.2 Der Konstruktor... 626 22.3.3 Das Formular für neue Nachrichten... 627 22.3.4 Das Formular zum Beantworten einer Nachricht... 627 22.3.5 Eine Nachricht versenden... 629 22.3.6 Nachrichten löschen... 631 22.3.7 Den Bezeichner anhand einer User-ID ermitteln 632 22.3.8 Die User-ID anhand eines Bezeichners ermitteln 632 22.3.9 Die Auflistung der erhaltenen Nachrichten... 632 22.3.1 Testen der übergebenen Werte... 634 22.4 Das Message-System einsetzen... 635 22.5 Das Message-System einrichten... 636 22.6 Das Formular für neue Nachrichten... 636 22.7 Die Liste der empfangenen Nachrichten... 638 22.8 Neue Nachrichten sind vorhanden... 641 23 Tipps und Tricks... 645 23.1 Tipps zum Finden von Fehlern... 645 23.1.1 Fehlende Semikolon... 645 13

magnum 23.1.2 Geschwungene Klammern um Anweisungsblöcke... 646 23.2 Backslashes im Formularfeld... 65 23.3 Textteile verschwinden in Formularfeldern... 651 23.4 Trau keinem Surfer über und unter 3... 651 23.4.1 Die Angriffsszenarien... 653 23.4.2 Konzepte gegen Angriffe... 656 23.5 Kennwort testen... 659 23.5.1 Erklärung des regulären Ausdrucks... 659 23.6 Eine E-Mail-Adresse testen... 66 23.6.1 Das Script zum Testen... 66 23.6.2 Script erklärt... 662 23.6.3 Muster erklären... 664 23.7 Informationen, die Ihnen PHP und der Webserver flüstern... 667 23.7.1 Superglobals... 668 23.7.2 Informationen über den Browser des Clients... 669 23.8 Welcher Webspace ist der richtige für mich?... 669 23.8.1 Aspekte für die Auswahl... 67 23.8.2 Die Webspace-Varianten... 675 23.9 Suchmaschinenoptimierung... 677 23.9.1 Die Informationsquellen... 677 23.9.2 Die Zielsetzung von Suchmaschinen... 678 23.9.3 Bewerten von Optimierungstipps... 678 23.9.4 Der Linktausch auf Gegenseitigkeit... 679 23.1 Garbage collection... 68 A Anhang: Befehlsreferenz... 681 Stichwortverzeichnis... 715 14