Author(s): Sebastian Wolfgarten
Publisher: Addison Wesley Verlag
Year: 2004
Language: German
Pages: 690
PHP 5 & MySQL 5 - Grundlagen, Programmiertechniken, Beispiele......Page 3
Kapitelübersicht......Page 5
1.8 Editor/Entwicklungsumgebung......Page 7
3.2 OO-Syntax in PHP 5......Page 8
5.4 Session-Verwaltung......Page 9
6.3 Datenbanken erstellen und ändern......Page 10
7.11 mylibrary-Datenbankschema......Page 11
9.7 Die ersten/letzten n Datensätze bearbeiten......Page 12
10.8 Seitenweise Darstellung von Suchergebnissen......Page 13
12.2 Hello SP-World!......Page 14
13.6 Installation......Page 15
15.5 Forumsbeiträge anzeigen und eingeben......Page 16
Stichwortverzeichnis......Page 17
Vorwort......Page 19
Konzeption des Buchs......Page 21
Teil I - PHP-Grundlagen und - Programmiertechniken......Page 25
1.1.1 Versionen......Page 27
1.1.2 Lizenzen......Page 29
1.2.1 Apache 2.0 installieren......Page 31
1.2.2 PHP 5.0 installieren......Page 33
1.2.3 MySQL 4.1 oder 5.0 installieren......Page 35
1.3 Installation unter Linux......Page 40
1.3.1 XAMPP installieren......Page 41
1.3.2 MySQL 4.1 oder 5.0 installieren......Page 45
1.3.3 Apache 2 und PHP 5 kompilieren......Page 48
1.3.4 MySQL-Entwicklerversion kompilieren......Page 52
1.4.1 Apache-Konfigurationsdatei......Page 55
1.4.2 Passwortschutz für Webverzeichnisse (.htaccess-Datei)......Page 58
1.5 PHP-Konfiguration......Page 61
1.6.1 MySQL-Konfiguration......Page 65
1.6.2 MySQL-Administrationswerkzeuge......Page 66
1.6.3 MySQL-Installation absichern......Page 71
1.7 Zeichensatz (latin1 oder Unicode UTF-8)......Page 72
1.7.1 Zeichensatzgrundlagen......Page 73
1.7.2 Zeichensatzunterstützung in Apache, PHP und MySQL......Page 74
1.8 Editor/Entwicklungsumgebung......Page 82
2.1 Hello World......Page 83
2.2 PHP- und HTML-Code kombinieren......Page 85
2.3 Typen......Page 88
2.3.1 Arrays......Page 89
2.3.2 Strings......Page 91
2.4.1 Variablen......Page 95
2.4.2 Konstanten......Page 97
2.5.1 Operatoren......Page 98
2.5.2 Kommentare......Page 100
2.5.3 Sonderzeichen......Page 101
2.6.1 if-Abfragen......Page 102
2.6.3 Schleifen......Page 103
2.7 Funktionen definieren und aufrufen......Page 105
2.8.1 Reaktion auf Programmfehler, Fehlermeldungen......Page 108
2.8.2 Exceptions......Page 110
2.9 Einbinden von Dateien......Page 111
3.1.1 Was ist OOP?......Page 113
3.1.3 Der Spagat von PHP: OOP und prozedural......Page 114
3.2.1 Erste Klasse......Page 115
3.2.2 Klassen erzeugen und erweitern......Page 116
3.2.3 Kapselung: Zugriff auf Member-Variablen und -Funktionen......Page 117
3.2.4 Variablen und Funktionen überladen......Page 119
3.2.5 Interfaces......Page 121
3.2.6 Fehlerbehandlung in Klassen......Page 122
3.2.7 Tipps und Tricks......Page 123
3.3 Beispiel: Ein Buchungssystem für Räume und Geräte......Page 127
3.3.1 Bedienung der Anwendung......Page 128
3.3.2 Die Klassenstruktur......Page 129
3.3.3 Die Verwendung der Klassen......Page 135
Wichtige PHP- Funktionen......Page 141
4.1 Mathematische Funktionen......Page 142
4.2.1 Ausgabe von Strings......Page 143
4.2.2 Standardfunktionen......Page 144
4.2.3 Regionale Formatierung und Sortierung von Zeichenketten......Page 151
4.3.1 date......Page 152
4.3.2 mktime und strtotime......Page 153
4.4 Variablenverwaltung......Page 155
4.5.1 Standardfunktionen......Page 157
4.5.2 Suche in Arrays......Page 158
4.5.3 Sortierung......Page 159
4.6.1 header......Page 160
4.6.2 $_SERVER-Variablen......Page 164
4.7 URL-Funktionen......Page 165
5.1 Einführung......Page 167
5.2.2 Lokale Passwörter......Page 168
5.2.3 LDAP-Validierung......Page 170
5.2.4 Validierung über einen Mailserver......Page 172
5.3.1 Was sind Cookies?......Page 173
5.3.2 Cookies im Einsatz......Page 176
5.4.1 Einleitung......Page 179
5.4.2 Sessions in der Praxis......Page 182
5.5.1 Gefahren bei Formulardaten......Page 184
5.5.2 Formulardaten richtig verarbeiten......Page 185
5.5.3 Beispiel: Anmeldung zum Kongress......Page 191
5.6 E-Mail versenden......Page 194
5.6.1 PHP-Mail mit sendmail unter Unix/Linux......Page 195
5.6.3 E-Mail mit PEAR......Page 196
5.7 PDF-Dokumente erzeugen......Page 201
5.7.2 PDFlib und PDFlib-Lite......Page 202
5.7.3 PDF-Logo erstellen......Page 203
5.7.4 Eine PDF-Rechnung mit PHP......Page 206
5.8.1 Grafische Darstellung der Daten einer automatischen Wetterstation......Page 212
5.9.1 Einführung......Page 221
5.9.2 Beispiele......Page 223
5.10.1 Verarbeiten von RSS-Informationen mit SimpleXML......Page 229
5.10.2 XML verarbeiten mit DOM......Page 236
Teil II - MySQL-Grundlagen und -Programmiertechniken......Page 241
phpMyAdmin......Page 243
6.1 Installation und Konfiguration......Page 244
6.2.1 Verwaltung von Benutzern und Privilegien......Page 248
6.2.2 MySQL absichern......Page 251
6.2.3 Neue Benutzer anlegen......Page 252
6.3.1 Datenbank erzeugen......Page 255
6.3.2 Tabelle erzeugen......Page 256
6.3.3 Vorhandene Tabellen ändern......Page 258
6.3.4 Foreign-Key-Regeln aufstellen......Page 259
6.3.5 Datenbankstruktur dokumentieren......Page 260
6.4 Daten ansehen, einfügen und ändern......Page 261
6.5 SQL-Kommandos ausführen......Page 262
6.6 Import und Export......Page 264
6.7 Administrative Funktionen......Page 268
6.8 Zusatzfunktionen......Page 269
7.1 Grundlagen (Miniglossar)......Page 277
7.2 Tabellentypen (MyISAM, InnoDB, HEAP)......Page 279
7.3.1 Ganze Zahlen......Page 281
7.3.2 Fließ- und Festkommazahlen......Page 282
7.3.3 Datum und Uhrzeit......Page 283
7.3.4 Zeichenketten......Page 284
7.3.6 Sonstige Datentypen......Page 286
7.4 Tipps und Tricks zum Datenbankdesign......Page 287
7.5 Normalisierungsregeln......Page 289
7.5.1 Die erste Normalform......Page 290
7.5.2 Zweite Normalform......Page 291
7.5.3 Dritte Normalform......Page 294
7.6 Verwaltung von Hierarchien......Page 295
7.7 Relationen......Page 296
7.8.1 Primärschlüssel (primary key)......Page 299
7.8.2 Fremdschlüssel (foreign key)......Page 300
7.8.3 Referenzielle Integrität (Foreign-Key-Regeln)......Page 301
7.9.1 Grundlagen......Page 302
7.9.2 Gewöhnlicher Index, Unique-Index, Primärindex......Page 304
7.9.3 Volltextindex......Page 305
7.10 Views......Page 306
7.11 mylibrary-Datenbankschema......Page 309
8.1 Syntaxregeln......Page 313
8.2 Einfache Abfragen (SELECT)......Page 315
8.2.1 Anzahl der Ergebnisdatensätze einschränken (LIMIT)......Page 317
8.2.2 Ergebnisse sortieren (ORDER BY)......Page 319
8.2.3 Datensätze durch Bedingungen auswählen (WHERE, HAVING)......Page 320
8.3.1 JOINs über zwei Tabellen......Page 321
8.3.2 JOINs über drei und mehr Tabellen......Page 323
8.4 Sub-SELECTs......Page 326
8.5 Abfrageergebnisse aneinander fügen (UNION)......Page 328
8.6 Gruppierte Abfragen, Aggregatsfunktionen......Page 329
8.7.1 Datensätze einfügen (INSERT)......Page 333
8.7.2 Datensätze verändern (UPDATE)......Page 335
8.7.3 Datensätze löschen (DELETE)......Page 336
8.8 Variablen......Page 338
8.9 Transaktionen......Page 340
8.10 Datenbanken und Tabellen erzeugen und ändern......Page 341
8.10.2 Tabellen erzeugen (CREATE TABLE)......Page 342
8.10.3 Das Tabellendesign ändern (ALTER TABLE)......Page 343
9.1.1 Zeichenketten bearbeiten......Page 345
9.1.2 Zeichensatz ändern......Page 347
9.2 Datum und Uhrzeit......Page 348
9.3 ENUMs und SETs......Page 352
9.4 IF- und CASE-Bedingungen......Page 354
9.5 Kreuztabellen (Pivottabellen)......Page 356
9.6 Doppelgänger suchen......Page 360
9.8 Datensätze zufällig auswählen......Page 361
9.9 Mustervergleich......Page 363
9.10 Volltextsuche......Page 366
10.1 mysql-Funktionen......Page 371
10.1.1 Verbindungsaufbau......Page 373
10.1.2 SQL-Kommandos ausführen......Page 374
10.1.3 SELECT-Ergebnisse auswerten......Page 375
10.1.5 Fehlerabsicherung und Fehlersuche......Page 379
10.2 mysqli-Klassen, -Methoden und -Eigenschaften......Page 380
10.2.1 Verbindungsaufbau......Page 382
10.2.2 SQL-Kommandos ausführen......Page 384
10.2.3 SELECT-Ergebnisse auswerten (mysqli_result)......Page 385
10.2.4 Mehrere SQL-Kommandos gleichzeitig ausführen......Page 387
10.2.5 SQL-Kommandos mit Parametern (prepared statements)......Page 388
10.2.6 Transaktionen......Page 391
10.3.1 Mehr Sicherheit durch eine eigene Passwortdatei......Page 392
10.3.2 Sicherheit und Komfort mit der MyDb-Klasse......Page 394
10.4 SELECT-Ergebnis als Tabelle anzeigen......Page 398
10.5 Zeichenketten, Datum, Zeit, BLOB und NULL......Page 399
10.5.1 Zeichenketten und BLOBs......Page 400
10.5.2 Datum und Uhrzeit......Page 401
10.5.3 NULL......Page 402
10.6 Miteinander verknüpfte Datensätze einfügen......Page 403
10.7.1 Codeaufbau......Page 404
10.7.2 Formularaufbau......Page 408
10.7.3 Validierung der Formulardaten......Page 413
10.7.4 Speicherung der Formulardaten......Page 414
10.7.5 Titel löschen......Page 417
10.7.6 Erweiterungsmöglichkeiten......Page 418
10.8 Seitenweise Darstellung von Suchergebnissen......Page 419
10.8.1 Codeaufbau......Page 420
10.8.2 Autorensuche......Page 422
10.8.3 Titelsuche......Page 423
10.8.4 Suchergebnisse anzeigen......Page 424
10.8.5 Links auf weitere Seiten......Page 426
10.9 Hierarchische Daten verwalten......Page 427
10.9.1 Codeaufbau......Page 428
10.9.2 Kategoriebaum anzeigen......Page 430
10.9.3 Unterkategorien einfügen......Page 433
10.9.4 Kategorien und Unterkategorien löschen......Page 435
10.9.5 Übergeordnete Kategorien suchen......Page 436
10.9.6 Untergeordnete Kategorien suchen......Page 437
10.10.1 Grundregeln für die effiziente Codeausführung......Page 438
10.10.2 Statistik- und Benchmarking-Hilfe......Page 441
10.10.3 Beispiel: Kategorielisten effizient erzeugen......Page 442
10.11 Binäre Daten (BLOBs) und Bilder......Page 447
10.11.1 Grundlagen und Programmiertechniken......Page 448
10.11.2 Programmcode......Page 452
11.1 Einleitung......Page 457
11.2.1 Ein Wort zu geografischen Daten......Page 458
11.2.2 ASCII-Format......Page 459
11.2.4 Well-Known Text, Well-Known Binary......Page 460
11.3.1 Datentypen......Page 462
11.3.2 Einfache geometrische Funktionen......Page 464
11.3.3 Räumliche Analysefunktionen......Page 467
11.3.4 Indizieren von geometrischen Daten......Page 470
11.4 SQL-Beispiele......Page 471
11.5 Beispiel Umkreis-Suche......Page 475
11.5.1 Bedienung der Anwendung......Page 476
11.5.2 Datenbankstruktur......Page 478
11.5.3 Import......Page 479
11.5.4 Suche......Page 482
11.5.5 Ausgabe......Page 485
Stored Procedures......Page 491
12.1 Wozu Stored Procedures?......Page 492
12.2 Hello SP-World!......Page 494
12.3 Implementierungsdetails......Page 498
12.4 Administration......Page 499
12.5 Syntax und Sprachelemente......Page 502
12.5.1 Allgemeine Syntaxregeln......Page 503
12.5.2 Aufruf von SPs (CALL)......Page 504
12.5.3 Parameter und Rückgabewert......Page 506
12.5.4 Kapselung von Kommandos (BEGIN/END)......Page 508
12.5.5 Variablen......Page 509
12.5.7 Schleifen......Page 511
12.5.8 Fehlerabsicherung (Handler)......Page 513
12.5.9 Cursor......Page 516
12.6.1 Kategorie einfügen......Page 518
12.6.2 Titel einfügen......Page 519
12.6.3 Übergeordnete Kategorien ermitteln......Page 522
12.6.4 Hierarchisch geordnete Kategorieliste liefern......Page 523
12.7 SPs und PHP......Page 526
12.8 SP-Administrator......Page 527
12.8.1 Bedienung......Page 529
12.8.2 Installation......Page 530
12.8.3 Code......Page 531
Teil III - Beispielprojekte......Page 537
13.1.1 Benutzersicht......Page 539
13.1.2 Administratorsicht......Page 540
13.2 Datenbankdesign......Page 542
13.3 Aufbau des Codes......Page 544
13.4.2 Umfrageergebnis anzeigen (result.php)......Page 545
13.4.3 Umfrageformular anzeigen und auswerten (vote.php)......Page 550
13.4.4 Loginformular (login.php)......Page 555
13.4.5 Neue Umfrage definieren (newpoll.php)......Page 557
13.5 Erweiterungsmöglichkeiten......Page 561
13.6 Installation......Page 562
14.1.1 Anforderungen an das Programm......Page 565
14.2 Bedienung......Page 567
14.2.1 Anonyme Benutzer......Page 568
14.2.2 Administratoren......Page 569
14.3 Datenbankdesign......Page 571
14.4.1 Der PHP-Code......Page 572
14.4.2 Der HTML/CSS-Code......Page 574
14.5.1 MyDb......Page 576
14.5.2 GalleryImage......Page 578
14.5.3 GalleryCollection......Page 580
14.5.4 GalleryViewer......Page 581
14.5.5 Bilder-Import......Page 583
14.5.6 Der Viewer......Page 590
14.5.7 Die Suche......Page 592
14.5.8 Der RSS-Feed......Page 593
14.6 Verbesserungen und Erweiterungen......Page 594
14.7 Installation......Page 595
15.1 Bedienung......Page 597
15.2 Datenbankdesign......Page 603
15.3 Aufbau des Codes......Page 605
15.4 Login-Verwaltung......Page 607
15.4.1 Erste Anmeldung......Page 608
15.4.2 E-Mail-Validierung und Aktivierung......Page 611
15.4.3 Login-Auswertung......Page 612
15.4.4 Logout......Page 613
15.4.5 Neuerlicher Login......Page 614
15.5.1 Menü......Page 615
15.5.2 Forumsliste (forum.php)......Page 616
15.5.3 Thread-Liste (threads.php)......Page 617
15.5.4 Thread-Ansicht (thread.php)......Page 621
15.5.5 Eingabeformular (newmessage.php)......Page 625
15.6 Volltextsuche......Page 627
15.6.1 SQL-Code der Suche......Page 628
15.6.2 Suche durchführen (Funktion show_search_results)......Page 629
15.6.3 Suchergebnisse hervorheben......Page 632
15.7 Erweiterungsmöglichkeiten......Page 634
15.8 Installation......Page 635
16.1.1 Was ist ein CMS?......Page 637
16.2 Installation und Konfiguration......Page 638
16.2.1 Dummy-Installation unter Linux/Windows......Page 639
16.2.2 TYPO3 Backend......Page 643
16.2.3 Die erste TYPO3-Seite......Page 644
16.3 Backend-Benutzerverwaltung......Page 648
16.4.1 Verteilte Rollen......Page 650
16.4.2 Tipps und Tricks......Page 651
16.5.1 Installation von Extensions......Page 654
16.5.2 News......Page 655
16.5.3 General Office Displayer......Page 657
16.6 TYPO3 mit eigenen PHP-Scripts erweitern......Page 659
Anhang......Page 665
Neue Funktionalitäten......Page 667
Inkompatibilitäten mit älteren Versionen......Page 669
InnoDB-Tabellentyp mit Transaktionen und Foreign-Key-Regeln......Page 671
Sub-SELECTs......Page 672
Trigger......Page 673
Verbesserungen bei Stored Procedures und Triggern......Page 674
Der Inhalt der beiliegenden CD......Page 675
A......Page 677
C......Page 678
D......Page 679
F......Page 680
I......Page 681
M......Page 682
P......Page 684
R......Page 685
S......Page 686
T......Page 687
X......Page 688
Z......Page 689
Ins Internet: Weitere Infos zum Buch, Downloads, etc.......Page 0
© Copyright......Page 690