Click here to load reader

PHP 5 MySQL - GBV

  • View
    0

  • Download
    0

Embed Size (px)

Text of PHP 5 MySQL - GBV

DATA BECKER
1.3 Bedeutung von Zend 24
1.4 Informationen zur GPL 25
1.5 Editoren zur Arbeit mit PHP 26
2 * Einrichten und Installieren der Entwicklungsumgebung 29
2.1 Zusammenspiel von Webserver und PHP 30
2.2 Installation von Apache und PHP unter Linux 30
2.3 Installation von Apache und PHP unter Windows 31
PHP installieren 33
2.5 Konfiguration von Webserver und PHP 35
2.6 Testen und Einsehen der Konfiguration mit phpinfo() 36
Die Datei php.ini 37
phpMyAdmin 45 MySQL-Front 47 MicroWeb - PHP auf CD-ROM 48
2.10 One-Click-Installationspakete für Windows 49
EasyPHP 49 Andere Installations-Pakete 51
3« Einstieg in die PHP-Programmierung 53
3.1 PHP & HTML 54
3.2 PHP & JavaScript 55
3.3 Sprachelemente & Syntax 56
3.4 Definieren und Nutzen von Konstanten und Var iablen .... 57 Die Daten-Typen 58 Variable Variablen 59 Konstanten 60 Operatoren & Ausdrücke 61
3.5 Eigene Funktionen programmieren 62
3.6 Bedingungen & Schleifen 66 if 66 switch 67 for ...'. 68
while 69 exit -- 70
3.7 Referenzen 70
3.8 Arrays und ihre Funktionen 71 Mehrdimensionale Arrays 73 Konvertieren von Arrays 73 Arbeiten mit zwei Arrays 74 Arrays nach Elementen durchsuchen 75 Sortieren von Arrays 75 Durchlaufen von Arrays 75
3.9 Reguläre Ausdrücke 76
3.10 Fehler in PHP-Skripten 79 Fehler durch Safe Mode 81
4« Grundlegende Funktionen 83
4.2 Mathematische Funktionen 105 Berechnungsfunktionen 105 Trigonometrische Funktionen 109 Konvertierungsfunktionen 111 Zufallsgeneratoren 114 Formatfunktionen 116
4.3 Datum und Uhrzeit 118 Datum- und Uhrzeit-Funktionen 118 Kalenderfunktionen 128
4.4 HTTP-Funktionen 129
5.1 Zugriff auf Dateisystem 134 Datei- und Dateisystem-Analyse 134 Zugriff auf Dateieigenschaften 137 Ändern der Eigenschaften der Dateien 142 Dateien manipulieren 144
5.2 Lesen und Schreiben 145 Dateien öffnen 145
Schreiben in die Datei 147 Schließen einer Datei 149 Lesen aus einer Datei 150 Navigation innerhalb der Datei 156 Verriegelung einer Datei 157
5.3 Arbeiten mit Verzeichnissen 158 Erstellen, Navigieren und Löschen 158 Öffnen, Lesen, Schließen 160
5.4 Sicherheit gewährleisten 162
6* Interaktive Webseiten 163
6.3 Datenübergabe mit dem Query-String 179
7 . Sessions und Cookies 183
7.1 Vorzüge der Speicherung von Daten 184
7.2 Setzen und Lesen von Cookies 184 Setzen von Cookies 185 Cookies wieder auslesen 187
7.3 Wie arbeiten Sessions? 189
7.4 Variablen in Sitzungen speichern und lesen 190 Grundlegendes zur Arbeit mit Sessions 190
Funktionen zur Arbeit mit Variablen in Sessions 192 Sitzungsdaten speichern 193 Einstellungen in der php.ini 194
7.5 Login-Funktion 194
7.6 Cookies, Datenschutz - P3P und Browserprobleme 196 Browser und Cookies 196 Datenschutz und die eigene Homepage 198 P3P •. 199
8 * MySQL-Anwendungen mit PHP 205
8.1 Schnellübersicht über SQL 206 Schreibweisen und Namenskonventionen 207
Datentypen 208
Tabellenstruktur ändern 213 Mit Datenbanken arbeiten 216 Erweiterte Bedingungen mit WHERE 222
8.3 PHP und MySQL 222 Verbindung zur Datenbank herstellen 223 Datensätze auswählen 224 Abfragen verfeinern 226 Neue Datensätze erzeugen 227 Vorhandene Datensätze in Formularen anzeigen 229 Datensätze ändern 230 Datensätze löschen 230
8.4 MySQL-Funktionen in PHP 231 Anzahl der betroffenen Reihen (mysql_affected_rows) 231 Benutzer wechseln (mysql_change_user) 232 Standard-Zeichensatz (mysql_client_encoding) 232
Verbindung schließen (mysql_close) 233 Verbindung herstellen (mysql_connect) 233 Datenbank erzeugen (mysql_create_db) 234 Datensatz-Zeiger bewegen (mysql_data_seek) 234 Anfrage an Datenbank (mysql_db_query) 235 Datenbanken löschen (mysql_drop_db) 235 Fehlernummern anzeigen (mysql_errno) 236 Fehlermeldungen ausgeben (mysql_error) 237 Datensätze als assoziativer Array (mysql_fetch_array) 237
Objekt mit Feldinformationen (mysql_fetch_field) 238
Zeichen markieren (mysql_escape_string) 239
• Speicher freigeben (mysql_free_result) 244 Version der Clientbibliothek (mysql_get_client_info) 245 Hostinformationen (mysql_get_host_info) 245 Protokollversion ermitteln (mysql_get_proto_info) 245 Serverversion ermitteln (mysql_get_server_info) 246
ID einfügen (mysql_insert_id) 246 Datenbanken anzeigen (mysql_list_dbs) 246 Ergebnisfelder auflisten (mysqljistjields) 247 Ergebniskennung anzeigen (mysql_list_process) 247 Tabellen anzeigen (mysql_list_tables) 248
Anzahl der Felder (mysql_num_fields) 248 Anzahl der Datensätze (mysql_num_rows) 249 Persistente Verbindung herstellen (mysqLpconnect) 249 SQL-Statement senden (mysqLquery) 250 Feldinhalt anzeigen (mysql_result) " 250 Datenbank auswählen (mysql_select_db) 251 Tabellenname anzeigen (mysql_tablename) 251 Thread-ID ermitteln (mysql_thread_id) 252
8.5 Workshop: Umfrage und Bewertung programmieren 252
8.6 Die Datenbank 253
8.7 Die Zugangsdaten 254
8.11 Workshop: Datenbankbasiertes Gästebuch 266
Die Features des Gästebuches 267 Die Datenbank 268 Die Zugangsdaten 268 Die CSS-Datei 269 Den aktuellen Zeitpunkt ermitteln 275
Die Danke-Seite 276 Der Admin-Bereich 277
8.12 Workshop: Passwortschutz und Benutzerverwaltung umsetzen 281
Die Features der Zugangskontrolle 282 Die Datenbank 282 Die Zugangsdaten 283 Die Registrierung 283 Der Login-Bereich 288 Daten prüfen 289
Datenbanken mit SQLite 293
Allgemeines zu Datenbanken 294 Datenbankbetriebssysteme und Datenbanken 295 Aufbau von Datenbanken 295
9.2 Eine Access-Datenbank als Beispiel 296
Tabellen anlegen 297 Datentypen in Access 298 Datensätze eingeben 299 Beziehungen definieren 300
9.3 Einführung in SQLite 301
SQLite 302 Tools für SQLite 302 SQL-Statements in SQLite 308 Datentypen 310 Mit SQLite-Datenbanken arbeiten 312
9.4 SQLite und PHP : 318
Mit SQLite-Datenbanken arbeiten 319 Wichtige PHP-Funktionen 323 Datenbank öffnen (sqlite_open) 323 Persistente Verbindung herstellen (sqlite_popen) 324
Datenbank schließen (sqlite_close) 324 Datenbankabfrage durchführen (sqlite_query) 325 Datenbankabfrage durchführen (sqlite_array_query) 325 Wartezeit setzen (sqlite_busy_timeout) 326
Anzahl der geänderten Zeilen (sqlite_changes) 326 Spalte aus der aktuellen Zeile holen (sqlite_column) 327 Funktionen erzeugen (sqlite_create_function) 327 Aktuelle Zeile holen (sqlite_current) 327 Fehlercode ermitteln (sqlite_last_error) 328 Fehlerbeschreibung (sqlite_error_string) 328 String für SQL aufbereiten (sqlite_escape_string) 329
I
(sqlitejibencoding) 333 Version der SQLite-Bibliothek (sqlitejibversion) 333 Zur nächsten Zeile springen (sqlite_next) 333
Anzahl der Felder eines Abfrageergebnisses ermitteln (sqlite_num_fields) 334 Anzahl der Zeilen eines Abfrageergebnissen ermitteln (sqlite_num_rows) 334 Zur ersten Zeile springen (sqlite_rewind) 335 Zu einer Zeilennummer springen (sqlite_seek) 335 Daten dekodieren (sqlite_udf_decode_binary) 336 Daten kodieren (sqlite_udf_encode_binary) 336
9.5 Anwendungsbeispiele für SQLite 336
Counter 336
IP-Sperre 338
10.1 Allgemeines zu AdoDB 346
10.2 AdoDB-Grundlagen 347
Daten exportieren 355 Blätterfunktionen leicht gemacht 357 Menüs erstellen 358
10.5 ODBC 359
10.7 Workshop: ODBC-Funktionen in der Anwendung 361
Datenbank anlegen 361 ODBC-Datenquelle definieren 362
Datensätze auslesen 363 Datensätze einfügen 364
1 1 * Grafikprogrammierung 367
Grafikformate 370 Schriftarten 371 Farben 372
11.2 Erstellen neuer Bilder 373
Senden eines Headers an den Browser 374
Erstellen einer Leinwand (Bild-Resources) ,375 Zuweisen von Farben : 376 Zeichnen, Füllen und Schreiben 378 Löschen der Bild-Ressource 388
11.3 Arbeit mit vorhandenen Bildern 388
11.4 Workshop: Dynamische Diagramme einsetzen 391
Schritt 1: Lesen der Daten aus einer Textdatei 392 Schritt 2: Vorkalkulationen 393
Schritt 3: Zeichnen des Diagramms 394
12« Flash-Programmierung 395
Senden eines Headers an den Browser 399
Erstellen und Konfigurieren eines neuen Flash-Movie-Objekts 399 Erzeugen von Flash-Objekten „ 399 Hinzufügen der fertigen Objekte zu dem Movie 400 Ausgeben der Movies 400
12.2 Ming-Basisklasse: SWFMovie 401
Erstellung von Formen: Klasse SWFShape() 403 Arbeiten mit Texten: SWFText(), SWFTextField(), SWFFont() 407 Grafiken einfügen: SWFBitmap() 414 Schaltflächen erstellen: SWFButton() 415 Filmsequenz erstellen: SWFSprite() 418 Anzeige-Objekte: SWFDisplayltem() 420 Arbeiten mit Farben: SWFFill(), SWFGradient() 424 Formveränderung: SWFMorph() 427 Aktionen zuweisen: SWFAction() 428
12.4 Mit Flash Formulare gestalten 434
1 3 * PDF-Funktionen 437
13.2 PDF-Dokumente erzeugen 438
13.3 Texte in PDF-Dateien mit PHP schreiben 441
Text einfügen 441 Textgestaltung 443
•Veraltete PDF-Funktionen mit pdf_set_value() ersetzen 444 Lesezeichen 446
13.4 Zeichnen in PDF-Dateien 446
Linien zeichnen (pdfj ineto) 447 Rechtecke zeichnen (pdf_rect) 448 Kreise zeichnen 448 Kurven zeichnen 449 Farbangaben 450
13.5 Bilder in PDF-Dateien einfügen 451
13.6 Die FPDF-Klasse 452
Ein erstes Beispiel 452 Wichtige Funktionen 453 Erweiterte Funktionen 456
13.7 Praktisches Beispiel: Briefe online erstellen 458
Die Umsetzung des Briefprojekts 459
1 4 . PEAR 463
Installation von PEAR 464 PEAR-Pakete verwenden 465
14.2 PEAR::DB 466
Unterstützte Datenbanken und Features 466 Verbindung zur Datenbank aufnehmen und schließen 467
SQL-Abfragen durchführen 468 Vereinfachte Syntax 470 Informationen einholen 472 Datensätze eindeutig einfügen 474 Execute/prepare 474
14.3 PEAR::Mail 475
ZZZ-~ ~ _ 1
14.6 XMLJree 484 Elemente erzeugen 484 Elemente löschen 486 XML-Dokumente einlesen 487 Attribute hinzufügen 489 XML-Strukturen als XML-Dateien speichern '. 490 Datenbanken auslesen 491
14.7 HTMLJTable 493
Tabellen erzeugen 493 Spalten und Reihen hinzufügen 495 Tabellenkopf definieren 496
14.8 HTML_Page 498
Seitentitel und Meta-Tags definieren 499 Stylesheets und Skripte einbinden 500
1 5 . OOP in PHP 503
15.1 Was bedeutet OOP, welche Vorteile bringt sie? 504
15.2 Programmierkonzepte 505
15.3 Struktur von OOP in PHP 5 507
Rückgabeverhalten 508
Object Cloning 508 Objektdereferenzierung 510 Const 510 Konstruktoren und Destruktoren 510 Final 512 Objekte löschen 513 Statische Klassenvariablen 513 Exeption Handling 514
15.4 Eigene Klassen definieren 514
Hallo, Welt! in OOP 514
15.5 Klassen und Objektfunktionen 516
15.6 Klassen vererben 521
15.7 Eine MySQL-Klasse 522
E-Mail unter Unix 530 E-Mail unter Windows 531
E-Mail-Status abfragen 531
16.2 E-Mail-Funktion 532
16.4 Formulare automatisch auslesen 540
16.5 Workshop: ein Newsletter-Skript erstellen 541
1 7 . Entwicklung eines individuellen Intranets 547
17.1 Entwicklung des Konzepts 548
Die Features des Intranets 549
17.2 Die Datenbank 550
17.4 Mitarbeiterverzeichnis 554
Vorhandene Abteilungen ansehen und neue anlegen 555 Eine neue Abteilung anlegen 556 Der Mitarbeiterbereich ". 557 Einen neuen Mitarbeiter anlegen 560 Den Mitarbeiter in die Datenbank eintragen 562 Details zu den Mitarbeitern ansehen 563
17.5 To-do-Liste 565
Eine neue Aufgabe definieren 568 Die neue Aufgabe speichern 571
Eine Aufgabe löschen 572 Den Status einer Aufgabe verändern 573 Die Statusänderungen speichern 574 Kommentare einfügen 575 Kommentare speichern 577 Die Kommentare ansehen 578
J
18.1 Vorabüberlegungen zum Konzept 582
18.2 Entwurf der Datenbankstruktur 584
Kategorien 584
Das Frameset 586 Stylesheet 586 Navigation 587 Kategorien ^589 Artikel-Navigation 591 Einen neuen Artikel eingeben/Artikel bearbeiten 593 Artikel speichern 598 Artikel administrieren 600 Artikel freigeben 603 Artikel löschen 605
18.4 Das Webinterface 606
Das Frameset 606 Die Navigation 607 Artikelvorschau 609 Artikel lesen 611
19« Templates in PHP 613
19.1 Grundlegendes zu Templates 614
19.2 FastTemplate 615
Ein erstes Beispiel 616 Praktische Anwendung 618 Content verteilen 620 Tabellen dynamisch erzeugen 622
19.3 Smarty .' 625
Ein erstes Beispiel 626 Allgemeine Syntax (für Designer) 627 Eingebaute Funktionen 630 Eigene Funktionen 631 Allgemeine Syntax (für Programmierer) 635 Variablen 636 Methoden 637 Caching 638 Workshop: Smarty in der Praxis 640
2 0 . PHP und XML 647
20.1 XML-Grundlagen: Sprachelemente und Syntax 648
20.2 XML-Support in PHP 5 658
20.3 SimpleXML 660
20.4 XSLT 663
Objektbeschreibung: xsltProcessor 666
20.6 Simple API für XML (SAX) ! 686
20.7 HTML-Tidy 692
So arbeitet HTML-Tidy 693 HTML umwandeln 694 Dateien reparieren 695
Dokumente konvertieren 696
21.1 Parsen als Quelle von Informationen 700
21.2 Bedeutung und Einsatz von RDF/RSS 700
Newsfeeds lesen 701
21.4 RDF- und RSS-Dateien auslesen 704
Es geht auch einfacher 705
21.5 RSS und PEAR 707
21.6 Parsen fremder HTML-Seiten 708
Nur Überschriften auslesen 708 Nur Meta-Tags auslesen 709 Nur den Seitentitel auslesen 710 Seiten ohne HTML-Tags auslesen 711 Zeilenumbrüche mit PHP ersetzen 712 Sonderzeichen umwandeln 714
2 2 . Programmierung eines eigenen Webmailers 715
22.1 Grundlegende POP/IMAP-Funktionen 716
22.3 Login 730
22.4 Postfachübersicht 731
2 3 * Programmierung eines Fotoalbums 739
23.1 Die Features des Fotoalbums 740
23.2 Die Datenbank 741 Die Zugangsdaten 742
23.3 Die Seitenstruktur 743 Die CSS-Datei 743 Die Frameset-Definition 744 Die Navigation 745
23.4 Kategorien anlegen 747
23.6 Thumbnails erstellen 753
23.7 Bilder löschen 756
23.8 Bilder ansehen 759
24« Programmierung eines Forums 765
24.1 Entwurf eines Konzepts 766
24.2 Datenbankdesign 767 Stylesheets 769 Die Zugangsdaten 769
I I
24.4 Die Startseite 771
24.6 Beiträge speichern 775
24.7 Beiträge anzeigen 776
24.9 Antworten speichern 782
2 5 * Suchmaschinen-Optimierung 787
25.2 Unfein: Spam-Methoden 789
Doorway-Pages 790
25.4 Pagerank & Co 793
25.6 Unterschätzter Seitentitel 795
25.8 Die Robots.txt 795
Mod_rewrite-Voraussetzungen 797 Der Zusammenhang: .htaccess 797 Automatisiert ersetzen 798
25.10 Automatische Seitenanmeldung mit PHP-Skripten 798
25.11 Suchmaschinen - Übersicht 799
25.12 Links zur Suchmaschinen-Optimierung 801
Anhang 803
Apache- & PHP-Installations-FAQ 809
Die Apache-Konfiguration 817
Section 1: Global Environment 817 Section 2: Main Server configuration 818 Section 3: Virtual Hosts 820 Den Apache testen mit ab 821
Schnelleinstieg: eigener Server & Putty 821
Putty schnell einsetzen 823 Putty konfigurieren 825 Window 826 Sessions speichern und laden 827
Quicksyntax 827
Stichwortverzeichnis 843