Webseiten mit
PHP 5 & MySQL 5
Web-Technologien für Ein- und Umsteiger
MATTHIAS KANNENGIESSER
Markt+Technik
© 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network.
Hjv,
Inhaltsverzeichnis
E Einleitung 1
13
lnternet-/lntranettechnologien
1.1 1.2
1.3 1.4 1.5 1.6 1.7 1.8 1.9
Ursprünge des Internets Internetprotokolle
TCP/IP-Architekturmodell Protokolle der Internetschicht Protokolle der Transportschicht Protokolle der Anwendungsschicht CGI - Common Gateway Interface Dynamische Webseiten
PHP als Skriptsprache Wie arbeitet PHP?
PHP & HTML
Wie funktioniert eine Web-Anwendung?
Software für Web-Anwendungen Datenbanken
Kompatibilität mit SQL-Standards Eigenschaften von MySQL
Leistungsumfang von MySQL
Aufbau des MySQL-Datenbanksystems MySQL-Anwendungsgebiete
Installation und Konfiguration
2.1 2.2
2.3
Vorbereitung
Installation unter Windows WAMP
Apache konfigurieren
Installation von PHP unter Windows Installation unter Linux
LAMP
Apache-Installation
15 16 21 21 25 34 41 53 55 56 57 58 60 60 64 66 68 71 73 76 79 79 81 81 81 83 84 84 84
Installation von PHP als CGI-Programm Installation von PHP als Apache-Modul 2.4 Installationskits
XAMPP Apache 2 Triad WAMP5 MAMP
Installationskits und Sicherheit 2.5 PHP-Konfiguration
Syntax der Init-Datei Sprachoptionen
Leistungsbegrenzungen
Fehlerbehandlung und Protokollierung Datenbehandlung
Pfade und Verzeichnisse
PHP-Erweiterungen für Windows Moduleinstellungen
2.6 Sicherheit
Sicherheitsprobleme Angriffsszenarien
2.7 Internet Service Provider und PHP Zugangsdaten
Angebote von Providern 2.8 Überprüfen der Konfiguration 2.9 MySQL-Installation
Installation des MySQL-Datenbankservers Installation auf Unix-/Linux-Systemen Installation auf Windows-Systemen Installation überprüfen
Kommandozeilenwerkzeuge von MySQL Grafische MySQL-Clients
Anwendungen der MySQL-AB-Gruppe 2.10 Entwicklungsumgebungen
Entwicklungsumgebungen vs. Editoren Zend Studio
Maguma Workbench NuSphere PHPEd DEV-PHP
Macromedia Dreamweaver 8
85 85 86 86 94 96 97 97 98 98 98 99 100 100 102 102 103 105 105 106 108 108 108 110 112 114 114 118 119 120 124 134 141 141 142 144 144 145 146
Inhaltsverzeichnis
T
3 Grundlagen PHP & MySQL
3.1
3.2
3.3
3.4
3.5
PHP und XHTML Simple HTML-Seite Tabellen
Formulare
Notationshinweise Sprachelemente von PHP Ausdrücke und ihre Bedeutung Anweisungen und ihre Mythen
Semikola - Geschichte vom Strichpunkt Leerzeichen und Steuerzeichen
Groß- und Kleinschreibung Geschweifte Klammern Runde Klammern Schlüsselwörter
Zusammensetzung von Zuweisungen Bedeutung von Kommentaren Echo- und Print-Befehl Operatoren und Ausdrücke Variablen im Griff
Daten- bzw. Variablentypen Konstanten vs. Variablen Einfluss von Kontrollstrukturen Funktionen im Einsatz
Modularisierung - Einbindung externer Skripte PHP-Syntax vs. Sicherheit
Code-Konventionen
Was sind Code-Konventionen?
Wie sollen sie eingesetzt werden?
Coderegelsammlung
Debugging - Fehlersuche in PHP PHP-Fehlerkonzept
Syntaxanalyse Fehlerprävention Fehlerarten Debugging
Fehler suchen und finden Einführung PHP & MySQL MySQL und MySQLi MySQLi installieren
MySQLi - erste Gehversuche MySQLi und SQL-Abfragen
147 147 147 150 151 152 153 154 158 159 161 162 163 163 164 165 166 168 172 179 182 194 195 208 212 216 221 221 222 228 232 232 233 234 235 238 238 241 241 242 243 245
Referenz zur MySQLi-Unterstützung 248 Referenz zur MySQL-Unterstützung 252 3.6 Einsatz von PHP & MySQL 257 Datenbank erstellen 257 Datenbanktabelle erstellen 258 Datenverwaltung 263 Datenbanken und Tabellen löschen 278 Datenbanktabellen ändern 279 Verknüpfte Tabellen (WHERE/JOIN) 283 Tabellen vereinigen (UNION) 294 3.7 Backups von Daten und Tabellen 299 Sichern von Struktur und Daten 299 Ausführung von gespeicherten SQL-Befehlen 301 Lösungsarchiv - Pool der Skripte 303 4.1 Formulare und PHP 304 GET und POST 304 Auswertung von Formularen 305 HTML-Formulare und Mehrfachauswahl 309 Formulare über mehrere Seiten 311 4.2 Daten via URL 313 Codierung von Daten 315 Achtung - Escape-Zeichen 315 Arbeiten mit dem $QUERY_STRING 316 4.3 Mail versenden via PHP 318 Versenden einer Mail an mehrere Empfänger 318 Atomic Mailer - Mailformular via PHP 319 4.4 Cookies via PHP 323 Spezifikation von Cookies 324 Cookies in PHP 325 Cookies löschen 327 4.5 Session-Management via PHP 328 Weitergabe der Session-ID über Cookies 335 Weitergabe der Session-ID über GET/POST 335 Weitergabe der Session-ID über header() 336 4.6 Datei-Upload via HTML-Formular 337 4.7 PHP & MySQL 343 Bannerabfrage via MySQL 343 Weblog - PHP- und MySQL-Anwendung 346 4.8 Datum & Zeit 356 Formatierte Ausgabe des aktuellen Wochentags 356 Datum - Schaltjahr 359 Datum - Zusammenspiel von date() und mktime() 360
Inhaltsverzeichnis
4.9 Zahlen & Ziffern 361 Zahlen - gerade oder ungerade 361 Zahlenformatierung - Einsatz von number_format() 362 Genauigkeit - Runden von Fließkommazahlen 363 4.10 Dateien & Co. 363 Analyse von Dateien 363 Datei vollständig einlesen 365 Datei - Anzahl der Zeilen ermitteln 365 Ausgabe einer Datei samt Zeilennummerierung 366 4.11 Zufall & Kennwörter 368 Zufall - Ziehung von Zufallszahlen ohne Wiederholung 368 Zufall - Ziehung von Zufallseinträgen ohne Wiederholung 369 Zufallslinks - Hyperlinks 372 Kennworterzeugung mit beliebiger Länge 372 4.12 Reguläre Ausdrücke & Mustererkennung 375 E-Mail-Mustererkennung - reguläre Ausdrücke 375 Erkennen von gültigen URL-Adressen 380 HTML-Tags-Erkennung 381 4.13 Lösungspool Mix 383 Ermitteln des Plurals 383 Dynamische Signaturen 383 Formatierung - Zeilenumbrüche in <br>-Tags umwandeln 384 Sprachumleitung für Webseiten 385 Lokalisierung von Webseiten 386 Browser - Cachen von Webseiten verhindern 389 Browser - Skalieren von asymmetrischen Bildern 389 4.14 Codesnippets - Schnipselspielereien 392 Filtert sämtliche Zeichen aus Ziffern 392 Array-Elemente nach Zeichenlänge sortieren (ASC/DESC) 392 Zeichen bzw. Buchstaben ersetzen 393 Text-Cutter - Texte kürzen 394 Spruch des Tages via Modulo 394 Anzeige von IP-Adressen und Hostnamen 395 Datum - Alter eines Nutzers ermitteln 396 Grafik - Umwandeln einer Bildvorlage in ASCII-Zeichen 397 Authentifizierung - Login und Passwortschutz 398 Datei - Download sämtlicher Dateiformate 399 Zufallsbild aus einem Verzeichnis 400 Anzeigen aller Bilder eines Verzeichnisses 401 Anzahl der Dateien im Verzeichnis 402 Verzeichnis - Verzeichnisbaum-Generator 402 Detection - Nutzer-Browser und Betriebssystem 403
4.15
5 CMS
5.1
5.2
5.3
5.4 5.5
Aufteilen von 1 extinhalten in Tabellenspalten Cookie - Reloadsperre
Session - Reloadsperre & Counter Datei - Useronline
Extras
und Web-Anwendungen
Content-Management-System (CMS) Was ist ein CMS?
CMS - Kategorien und Typen Web-Content-Management-System
Möglichkeiten der Nutzung von CMS-Systemen Wozu CMS nicht geeignet sind
CMS und Zugriffsrechte Was ist chmod?
Rechte und Berechtigungsstruktur Secunia
WCMS - Web-Anwendungen Kategorie Portale
Kategorie Foren Kategorie Shopsysteme Kategorie Weblogs Kategorie Groupware Kategorie Wikis
Open Source CMS - Anwendungen im Testlauf CMS Matrix - Systeme im Vergleich
ForumMatrix - Forensoftware im Vergleich
A Webserver von CD-ROM
A.1 A.2 A.3
Mobile Webserver Einsatzgebiete Server2Go
Server2Go-Distributionen DwebPro WebServer
DWebPro WebServer-Distributionen
B Parsen von XHTML-Seiten
B.l B.2 B.3 B.4 B.5
Auslesen von Seitentiteln Filtern von XHTML-Tags
Entfernen sämtlicher HTML-Tags Ersetzen von Zeilenumbrüchen Umwandeln von Sonderzeichen
404 406 406 407 408 411 411 411 413 415 416 416 416 416 417 419 419 420 425 428 431 434 438 439 440 441 443 443 444 444 445 445 446 447 447 448 449 451 452
Inhaltsverzeichnis
CD-ROM
C.l C.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9 CIO C.ll C.12
Kapitel
Installationskits Apache 2 MySQL 4 PHP 5 Tools
PHP-Editoren
PHP-Entwicklungs-Studios MySQL-Editoren
SQLite-Editoren
CMS - Web-Anwendungen PHP-Debugger
D Informationsguellen Nachwort
S Stichwortverzeichnis
455 455 455 455 455 455 455 456 456 456 457 457 457 459 461 463