Christian Saun

PHP 5 für Dummies

Fachkorrektur Von Christian Ritter und Katrin Jost

WILEY- VCH WILEY-VCH Verlag GmbH & Co. KGaA Inhaltsverzeichnis

Einführung 21 Zu diesem Buch 21 Über die CD 22 Was dieses PHP eigentlich ist ; 22 Wer sind Sie? Einige Annahmen über Sie 22 Wie dieses Buch aufgebaut ist 23 Teil I: Erste Schritte mit PHP 5 23 Teil II: PHP und die Grundlagen 23 Teil III: Eine Sprache - Tausend Möglichkeiten: Zugriff auf Dateien, FTP, E-Mail, Programmierung, PDF und mehr 23 Teil IV: PHP, HTML, XML und Datenbanken in Aktion 24 Teil V: Der Top-Ten-Teil 24 Teil VI: Anhänge 24 Die Icons in diesem Buch 24 Wie es weiter geht 25

Teil I Erste Schritte mit PHP 5 27

Kapitel 1 Einstieg in PHP 29 Am Ende kann man sagen,... 30 Zend - der Parser 31 Aktuelle Versionen von PHP 31 Was PHP kostet 32 Vorteile von PHP gegenüber anderen Lösungen 32 Welche Hard- und Software ist nötig? 33

Kapitel 2 PHP-Skripte editieren 35 Was macht eine (gute) PHP-Entwicklungsumgebung aus? 37 Das persönliche Anpassen: Customizing 37 Zeigen, was zählt: 38 Machen Sie es sich einfach: Code Snippets 38 Machen Sie es sich doch noch einfacher: Code Completion 38 i PHP 5 für Dummies i

Alles im Blick: Funktions- und Klassenbrowser 38 Suchen und Ersetzen 38 Alles richtig gemacht: Syntax Checking 38 Nervige Arbeit? Das muss nicht sein: Mehrzeiliges Einrücken 39 Mehr Übersicht bitte: Smart Tabs 39 Fehler finden leicht gemacht: Debugger 39 Organisation ist das halbe Leben: Projektorganisation 39 Aus den Augen, aus dem Sinn: Folding 39 Hilfe anfordern: Integrierte Hilfe 40 Editoren und Entwicklungsumgebungen 40 BBEdit 40 41 (X) 42 Glimmer 42 JaneBUILDER 43 Komodo 43 HomeSite 45 NEdit 45 Pepper 47 PHPEd 47 PHPEdit 48 UltraEdit 48 vi(m) 49 Weaverslave 51 Zend Studio 51 Oasen im Netz 52 Wie ein PHP-Skript aussieht 53

Kapitel 3 Jetzt geht's tos! 55 Das erste Skript - Hallo Welt 55 Datumsausgabe 57 Werte zuweisen und Daten speichern 58 Benutzereingaben in HTML-Formularen 59 Viele Alternativen, viele Möglichkeiten 62 Schleifen binden 64 E-Mails mit PHP schreiben 66 Datenbanken mit Inhalt füllen und ausgeben 68 PHP-Code richtig dokumentieren 70 i Inhaltsverzeichnis \

Teil II PHP und die Grundlagen 73

Kapitel l* Variablen und Operatoren in PHP 75 Variablen richtig schreiben 76 Datentypen in PHP 77 Der Datentyp Integer 77 Double - oder der Weg in die Tiefen der Genauigkeit 78 Strings - Zeichen ohne Ende 79 Der Datentyp Array 80 Mit Object Objekte deklarieren 80 Wahr oder Falsch? Auf alle Fälle Boolean 81 Typenumwandlung 83 Casting - nicht nur für angehende Filmstars 87 Machen Sie Variablen in PHP wertvoll! 90 Zuweisung durch Wert 90 Zuweisung durch Referenzierung 90 Nur gültige Variablen sind gute Variablen 92 Vordefinierte Umgebungsvariablen sind ein Quell steter Freude (und Informationen) 97 Variable Variablen 99 Darf ich vorstellen: Konstanten 100 Den Speicher freigeben 103 unset 104 empty 104 isset 105 Ausdrücke und Operatoren 106 Operationen durchführen... 106 ... also realisieren 107 Arithmetische Operatoren 107 Inkrementierungs-/Dekrementierungsoperatoren 108 Logische Operatoren - Denken Sie logisch! 110 Vergleiche ziehen 111 Bit-Operatoren 112 Zuweisungsoperatoren 114 Und noch mehr Operatoren - nimmt das denn gar kein Ende 115 PHP-Operator-Rangfolge 118 Mit Strings arbeiten 120 Auf die Länge kommt es an 120 Den Inhalt eines Strings umdrehen 121 Die Buchstaben eines Strings umwandeln 122 i PHP 5 für Dummies i

Strings mischen 124 In Strings suchen 125 Einen Suchstring suchen und die Position im String erfahren 127 Einen Teil aus einem Strings herausholen 128 Kapitel 5 Keine Panik - altes unter Kontrolle mit PHP 129 Alternativen können unter PHP sehr einseitig sein 129 Eine zweiseitige Alternative: if-else 131 Das Fragezeichen in PHP r 132 Mit if-elseif abfragen 133 if-elseif-else 134 Eine sehr abweisende Schleife in PHP: while 135 do-while 138 Der zähe Zähler: for 139 foreach 141 switch - von Fall zu Fall 142 Eine Anweisung zum Pausemachen 145 Weiter geht's mit continue 146 Auf zum Ausgang mit exit und PHP 146 PHP und das sterbende Programm 147 Kapitel 6 Arraus 1U9 Was Arrays sind 149 Eindimensionale Arrays in PHP 149 Die Elemente eines Arrays zählen - count 151 Die Elemente eines Arrays ausgeben 152 Mehrdimensionale Arrays in PHP 153 Mehrdimensionale Arrays in Strings referenzieren 154 Arrays sortieren 155 Nach Werten sortieren 155 Nach Schlüsseln sortieren 161 Völlig freie Hand beim Sortieren 164 Elemente einem Array hinzufügen oder entnehmen 165 Arrays vergrößern, von hinten und von vorn - kein Problem! 165 Das Erste oder das Letzte? - Das ist hier die Frage 166 Jetzt aber mal ordentlich ausmisten im Array 168 Zum Teufel mit den Doppelten 169 Elemente an ein Array vorne oder hinten anhängen 170 Nützliche Array-Funktionen 172 i Inhaltsverzeichnis i

Ja, wie viele sind es denn nun? 173 Auf den Schnitt kommt es an 174 Aus zwei (oder mehr) mach eins 176 Die Letzten werden die Ersten sein 178 Auf die Werte kommt es an - zum Teufel mit den Schlüsseln! 180 Eine Funktion auf jedes Element anwenden 180 Das aktuelle Element oder den Schlüssel erfahren 182 Weitblick ermöglichen 182 Mit detektivischem Spürsinn 185 Ein Array in eine Zeichenkette umwandeln 186 Die Suche nach dem Extremen - max und min 186 Ein Array mit einem bestimmten Bereich eines anderen Arrays erzeugen 187 Zeigerrücken leicht gemacht 188 Wie der Zufall so will 190

Kapitel 7 c Höhere Programmiertechniken mit PHP 191 Funktionen 191 Was eine Funktion ist . 192 Funktionen definieren - kein Problem 192 Rückgabewerte - die return-Anweisung 195 Auch in Funktionen sind nur gültige Variablen gute Variablen 197 Die global-Anweisung 197 Das GLOBALS-Array 198 Rekursive Funktionen - wirklich Teufelszeug? 199 Dynamische Funktionsaufrufe 202 Funktionsbibliotheken 204 Klassen und Objekte 207 Kleiner Ausflug in die Objektorientierung 207 Klassen, Objekte und Methodendeklarationen 208 Eine Klasse als Verfeinerung einer anderen 213 Der lange Marsch durch die Instanzen 214

Kapitel 8 Sicherheit geht Vor 217 Warum soll ich mich überhaupt mit Sicherheit beschäftigen? 217 Wie können Sicherheitslücken überhaupt entstehen? 218 Alle Benutzereingaben überprüfen 218 Keine wichtigen oder geheimen Daten im Webserver-Verzeichnis ablegen 218 Die Globalen Variablen abschalten 218 Wie kann ein Rechner/Server sicher gemacht werden? 220 i PHP 5 für Dummies i

Fehler, die schlimme Folgen haben können 221 Ist die Datenbank auch sicher? 221 Der Fall der Fälle: der Rechner wurde gehackt 222 Sicherheitslücken vermeiden 222

Teil III Eine Sprache - Tausend Möglichkeiten: Zuqriff auf Dateien, FTP, E-Maii-Proqrammierunq, PDF und mehr 223

Kapitel 9 Input/Output und Zugriff auf Dateien 225 Mit PHP an den Browser schreiben 225 Mit Dateien arbeiten 230 Die Existenz einer Datei überprüfen 230 Zeit ohne Ende - schön wär's 232 User und ihre Gruppen, Rechte und Pflichten 235 Groß und mächtig 238 Schauen Sie sich doch mal nach dem Typ um 239 Lesen, schreiben, ausführen, verfolgen - Aber nicht ohne vorher nachzuschauen 239 I/O öffnen und schließen 244 Lesen und schreiben lernen - Mit PHP aus Dateien lesen und in Dateien schreiben 246 Bis zum bitteren Ende 247 Aus Dateien lesen 247 In Dateien schreiben 251 Eine leere Datei erzeugen 252 Was man mit einer Datei alles so anstellen kann 252 Arbeiten mit Verzeichnissen 254 Ein Wechsel kann nicht schaden - auch nicht bei Verzeichnissen 255 Ja, aber was ist denn das aktuelle Verzeichnis? 256 Speicher, platz! 256 Selbst ein Verzeichnis erstellen 256 Weg damit! Verzeichnisse löschen 257 Sie haben das Kommando - Befehle an die Shell geben 257 Ex und nicht hopp 258 Ein einfacher Web-Counter 260 Zutritt nur mit Passwort! 261 i Inhaltsverzeichnis i

Kapitel 10 Fertig für das Protokoll - FTP 265 Jede Menge Möglichkeiten 265 Die Kontaktstelle - ftp_connect 266 Ohne Anmeldung kein Eintritt 267 Hilfe, wie komme ich hier wieder raus? - FTP-Verbindungen beenden 268 Das aktuelle Arbeitsverzeichnis ausgeben 270 Auf andere Ebenen hüpfen; N 271 Verzeichnis, wechsle dich! 273 Dateientsorgung 275 Dateien herunterladen . 276 Direktes Abspeichern ohne Pointer 278 Schöpfung im kleinen Stil 280 Listenreich 281 Jetzt dürfen Sie auch mal passiv sein 283 ftp_put - 283 Auch Dateien sind nicht zeitlos ... 285 Übertragung starten mit ftp_fput 286 Jetzt aber ins Detail 288 Aus alt mach neu - Dateien umbenennen 289 Der Löschvorgang - diesmal mit Verzeichnissen 291 Dateien mit Größe 293 Systemforschung betreiben 294 FTP - das volle Programm! 296

Kapitel 11 E-Mails mit PHP erzeugen und Verschicken 297 Text-Mails mit PHP schreiben 297 HTML-Mails mit PHP schreiben 302

Kapitel 12, 13 und U als Bonuskapitel auf der CD 305

Kapitel 15 POF mit PHP erzeugen 307 Die PDFlib 307 Die PDFlib unter PHP installieren 308 Erste Schritte mit der Bibliothek 309 FPDF 314

15l i PHP 5 für Dummies i

Teil IV PHP, HTML, XML und Datenbanken in Aktion 323

Kapitel 16 Datenbanken und PHP 325 Was MySQL ist 325 Die Geschichte von MySQL 326 Wie hängen MySQL, PHP und der Benutzer zusammen? 326 Erste Schritte nach der Installation 327 Was phpMyAdmin ist und wofür es gut ist 328 phpMyAdmin konfigurieren 329 Auf Nummer Sicher gehen: Ein Backup von einer MySQL-Datenbank machen 329 Die Funktionsweise von MySQL 331 Mit MySQL arbeiten 332 Ohne Datenbank läuft nichts 332 Eine Datenbank auswählen 337 Tabellen herzaubern und wieder verschwinden lassen 341 The SHOW must go on! 347 Die Tabellen füllen 349 Mit SELECT an die Informationen kommen 351 Einträge aus den Tabellen entfernen 358 Mit UPDATE immer auf dem aktuellsten Stand bleiben 360 Eine Datenbank als HTML-Tabelle ausgeben 361 Besucher zählen mit PHP und MySQL 365 Die Felder in ein Array schreiben 371 Her mit den Feldern 371

Kapitel 17 Wahlverwandtschaft: HTML-Formutare und PHP 377 Texteingabefelder, Ausführungsbuttons und was man damit machen kann 378 Radio-Buttons 382 Checkboxen 384 Auswahl-Menüs und Listen 387 Mehrzeilige Texteingabefelder 389 Versteckte Felder 390 Dateien uploaden 390 HTML-Formular und PHP-Listing in einer Datei 391 Pizza-Blitz: Formular für einen Pizzaservice 393 Als Zeichen der Gastfreundschaft: Das Gästebuch 398 i Inhaltsverzeichnis i

Kapitel 18 XML und PHP kO1 Der Hintergrund von XML 401 Der Weg von SGML über HTML zu XML 402 Wie arbeitet man mit XML? 403 Wie die Tags aufgebaut sein müssen 403 Der Anfang eines XML-Dokuments 404 Richtig Kommentieren in XML 405 Mit der Document Type Definition (DTD) die Grammatik festlegen 406 Ein erstes Beispiel 408 XML-Dokumente können gültig und wohlgeformt sein 410 Die Document Type Definition (DTD) auslagern 411 XML-Dokumente mit PHP verarbeiten 413 Fehlercodes 414 Ein erster XML-Parser 415

Teil V Der Top-Ten-Teil kl9

Kapitel 19 Die zehn Wichtigsten Dinge, die Sie beim Programmieren beachten sollten 1)21 Nicht einfach drauf los coden 421 Kommentieren Sie Ihren Code! 421 Sinnvolle Namensgebung 422 Das Gelernte auch anwenden 422 Lernen durch Nachvollziehen und Verstehen 422 Rückversichern - Sicherheit tut not 422 Testen Sie Ihr Programm 423 Fragen Sie ruhig. Aber versuchen Sie es erst selbst! 423 Heben Sie sich Ihre Aufzeichnungen gut auf- Sie werden sie brauchen 423 Bilden Sie sich fort - dieses Buch kann nur ein Anfang sein 424 Veröffentlichen Sie Ihren Code 424 Hocken Sie nicht den ganzen Tag am Rechner 424

Kapitel 20 Die zehn (oder auch mehr) Wichtigsten Adressen im Web 1)25 http://www.php.net 425 http://www.apache.org 425 http://www.mysql.de 426 i PHP 5 für Dummies i

http://selfhtml.teamone.de 426 http://www.zend.com 426 http://www.hotscripts.com 426 http://www.hotscripts.de 426 http://php.resourceindex.com 427 http://www.linuxguruz.org 427 http://www.selfphp.com 427 http://www.scriptindex.de 427 http://www.phptotal.de^ > 428 http://www.php-center.de 428 http://www.php-homepage.de 428 http://www.phpbb.com/ 428 http://www.weaverslave.ws 428 http://www.postgresql.org 428 http://www.dynamic-webpages.de 429 http://www.phpmyadmin.net 429 http://www.phparchiv.de 429 http://www.pdflib.com 429 http://www.fpdf.org 429 http://www.aditus.nu/jpgraph/index.php 429 http://www.phpgtk.de 430 http://gtk.php.net 430

Teil VI Anhänge tß 7 Anhang A PEAR k33 Gestatten - PEAR 433 Codierstandards 434 Korrektes Einrücken macht Sinn 435 Korrektes Aussehen von Kontrollstrukturen 435 Sauberer Kommentarstil - besser mehr als weniger - aber vor allem sauber bitte 437 Es könnte auch Bedingungen geben: Einfügen von Code 437 Den Start und das Ende nicht verpassen! 438 Auch ein Kommentar unterliegt Regeln 438 Konventionen auch für Namen 439 Globale Variablen 439 Lokale Variablen 440 i Inhaltsverzeichnis i

Konstanten 440 Funktionen und Methoden 440 Ein paar Worte zum Abschluss 440

Anhang B Installation Von PHP & Co. mit XAMPP

XAMPP für Windows installieren 442 XAMPP für Linux installieren 444

Anhang C Wegweiser durch die CD M5 Stichwortverzeichnis 447

Und auf der CD ...

Bonuskapitel 12 Zufattszahlen und andere mathematische Spielereien mit PHP CD-45 7 Mathematische Operationen durchführen CD-457 Von absolut absoluten Werten CD-458 Basen konvertieren leicht gemacht CD-459 Auf und Ab . CD-466 Die trigonometrischen Funktionen ... CD-468 Die Arcus-Funktionen CD-471 Von Winkeln und Bögen CD-474 Den Exponenten einer Zahl... CD-475 Den Logarithmus zähmen CD-475 Her mit den Tausendern CD-476 3,14159... CD-477 Von Basen und Exponenten - potenzieren CD-478 Wurzeln ziehen - und das ganz ohne Schmerzen CD-479 Die Arcus-Familie CD-480 So genau muss es gar nicht sein - Zahlen mit beliebiger Genauigkeit CD-481 Die grundlegenden Rechenoperationen mit beliebiger Genauigkeit durchführen CD-481 Zwei vergleichen CD-483 Von Basen, Exponenten und Genauigkeitsfanatikern CD-484 Setzen Sie Standards mit bcscale CD-485 Her mit dem Modulo CD-485 Jetzt ziehen Sie doch endlich die Wurzel! CD-485