O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

PHP & MySQL von Kopf bis Fuß

Book Description

PHP & MySQL von Kopf bis Fuß zu lesen ist wie Unterricht bei einem coolen Lehrer: Das Lernen macht plötzlich Spaß und Sie freuen sich tatsächlich auf die nächste Stunde. In diesem abwechslungsreichen und visuell ansprechenden Arbeitsbuch erfahren Sie ganz praktisch, wie Sie mit PHP und MySQL schnell eine datenbankbasierte Website auf die Beine stellen. Machen Sie sich die Hände schmutzig und bauen Sie sofort echte Anwendungen wie eine High-Score-Liste für ein Computerspiel oder eine Online-Dating-Site.

Wenn Sie dieses Buch durchgearbeitet haben, sind Sie gut gerüstet und wissen, wie man Formulare validiert, mit Sitzungs-IDs und Cookies arbeitet, Datenabfragen und Joins durchführt, Dateioperationen vornimmt und vieles mehr.

Table of Contents

  1. PHP & MySQL von Kopf bis Fuß
  2. Die Autoren von PHP & MySQL von Kopf bis Fuß
    1. Über den Übersetzer dieses Buchs
  3. Wie man dieses Buch benutzt: Einführung
    1. Für wen ist dieses Buch?
      1. Wer sollte eher die Finger von diesem Buch lassen?
    2. Wir wissen, was Sie gerade denken
    3. Und wir wissen, was Ihr Gehirn gerade denkt
    4. Metakognition: Nachdenken übers Denken
    5. Das haben WIR getan
    6. Lies mich
    7. Die technischen Gutachter
    8. Danksagungen
  4. 1. Ihren statischen Seiten Leben einhauchen: Das Web lebt
    1. HTML ist statisch und langweilig
    2. PHP macht Webseiten lebendig
    3. Egons Formular
    4. Formulare werden aus HTML gebaut
    5. Das Formular macht Probleme
    6. HTML lebt auf dem CLIENT
    7. PHP lebt auf dem SERVER
    8. PHP-Skripten laufen auf dem Server
    9. Mit PHP auf die Formulardaten zugreifen
    10. PHP-Skripten gehören auf den Server!
    11. Die PHP-Skripten auf den Server bringen
    12. Von PHP zu HTML
    13. Egons PHP-Skript zerlegt
    14. Einige PHP-Lebensregeln Programmier
    15. Den perfekten Variablennamen finden
    16. Variablen speichern Daten
    17. $_POST ist eine superglobale Variable
    18. $_POST gibt Skripten Zugriff auf Formulardaten
    19. Den Inhalt einer E-Mail mit PHP erstellen
    20. Auch Klartext kann (etwas) formatiert werden
    21. Escape-Sequenzen brauchen doppelte Anführungszeichen
    22. Eine E-Mail für Egon aufbauen
    23. Die E-Mail-Bestandteile in Variablen speichern
    24. Mit PHP eine E-Mail senden
    25. Egon erhält Post
    26. Egon verliert den Überblick
    27. Ihr PHP & MySQL-Werkzeugkasten
  5. 2. Mit MySQL verbinden: Die Bausteine zusammenfügen
    1. Egons PHP-Formular läuft. Zu gut ...
    2. MySQLs Stärke ist die Speicherung von Daten
    3. Egon braucht eine MySQL-Datenbank
    4. Eine MySQL-Datenbank und eine Tabelle erstellen
    5. INSERT im Einsatz
    6. Mit SELECT Tabellendaten abfragen
    7. Lassen wir PHP den SQL-Kram erledigen
    8. Mit PHP können die Daten die Anwendung steuern
    9. Aus PHP eine Verbindung mit MySQL aufbauen
    10. Daten mit einem PHP-Skript einfügen
    11. Mit PHP-Funktionen mit der Datenbank reden
    12. Verbinden mit mysqli_connect()
    13. Die INSERT-Abfrage in PHP aufbauen
    14. Die Datenbank mit PHP abfragen
    15. Die Verbindung mit mysqli_close() schließen
    16. $_POST liefert die Formulardaten
    17. Egon braucht Hilfe beim Durchforsten der Datenbank
    18. Egon kommt seinem Fang immer näher
  6. 3. Datenbanken erstellen und befüllen: Eigene Daten erstellen
    1. Der Elvis-Laden nimmt den Betrieb auf
    2. Elmar braucht eine Anwendung
    3. Der Entwurf für Elmars Anwendung
    4. Am Anfang war eine Tabelle ...
    5. Mit dem MySQL-Server reden
    6. Die Datenbank für Elmar erstellen
    7. In der Datenbank eine Tabelle erstellen
    8. Die Daten definieren
    9. Machen Sie Bekanntschaft mit einigen MySQL-Datentypen
    10. Die Tabelle mit einer Abfrage erstellen
    11. Die Tabelle in die Datenbank bringen
    12. Die aktive Datenbank auswählen
    13. DESCRIBE offenbart die Struktur von Tabellen
    14. Jetzt kann Elmar Daten speichern
    15. Das Anmeldeskript erstellen
    16. Die andere Seite der Anwendung
    17. Die Struktur des Mail senden-Skripts
    18. Zunächst brauchen wir die Daten
    19. mysqli_fetch_array() ruft Abfrageergebnisse ab
    20. Eine Weile Schleifen drehen
    21. Daten mit while durchlaufen
    22. Sie haben Post ... von Elmar!
    23. Ein paar Personen wollen raus
    24. Daten mit DELETE löschen
    25. Mit WHERE spezifische Daten löschen
    26. Zufälliges Löschen vermeiden
    27. MachMichElvis.de ist eine Webanwendung
    28. Ihr PHP & MySQL-Werkzeugkasten
  7. 4. Praxistaugliche Anwendungen: Ihre Anwendung im Web
    1. Einige von Elmars Kunden sind verärgert
    2. Elmar vor Elmar schützen
    3. Saubere Formulardaten verlangen
    4. Die Logik hinter der Mail senden-Validierung
    5. Mit IF kann Code Entscheidungen fällen
    6. Auf Wahrheit prüfen
    7. IF kann nicht nur auf Gleichheit prüfen
    8. Die Mail senden-Daten validieren
    9. PHP-Funktionen zur Prüfung von Variablen
    10. Vergleiche mit AND und OR verknüpfen
    11. Benutzer wünschen Feedback
    12. PHP oder nicht PHP
    13. Doppelten Code vermeiden
    14. Das HTML-Formular nur einmal schreiben
    15. Ein Formular, das sich selbst referenziert
    16. Die Formularaktion auf das Skript zeigen lassen
    17. Prüfen, ob das Formular übermittelt wurde
    18. Aber einige Benutzer meckern immer noch
    19. Tabellenzeilen sollten eindeutig identifizierbar sein
      1. Was Elmars Tabelle enthält:
      2. Was Elmars Tabelle enthalten sollte
    20. Primärschlüssel erzwingen Eindeutigkeit
      1. Die fünf Regeln für Primärschlüssel:
    21. Von Checkboxen zu IDs
    22. Ein Array mit foreach durchlaufen
  8. 5. Mit Daten aus Dateien arbeiten: Wenn Datenbanken nicht ausreichen
    1. Virtueller Gitarren-Wettstreit
      1. Text darf man nicht trauen
    2. Der Beweis im Bild
    3. Die Anwendung muss Bilder speichern
    4. Den Datei-Upload vorbereiten
    5. Die Highscore-Datenbank ändern
    6. Wie erhalten wir Bilder?
    7. Das Bild in die Datenbank einfügen
    8. Den Namen der hochgeladenen Datei ermitteln
    9. Wo ist die hochgeladene Datei gelandet?
    10. Den Bilddateien eine Heimat geben
    11. Gemeinsame Daten müssen geteilt werden
    12. Gemeinsame Skriptdaten einschließen
    13. Betrachten Sie require_once als »einfügen«
    14. Bei Highscores ist Timing Ordnung alles
    15. Den größten Guitar Wars-Heroen ehren
    16. Den Topscore mit HTML und CSS formatieren
    17. Nur kleine Bilder erlaubt
    18. Die Dateivalidierung macht die Anwendung robuster
    19. Eine Admin-Seite einbauen
    20. Skripten können kommunizieren
    21. GET und POST
    22. GET, POST und Highscores löschen
    23. Den zu löschenden Highscore isolieren
    24. Mit LIMIT steuern, wie viel gelöscht wird
    25. PHP & MySQL-Kreuzworträtsel, Lösung
    26. Ihr PHP & MySQL-Werkzeugkasten
  9. 6. Anwendungen absichern: Ein Quantum Paranoia
    1. Der Tag, an dem die Musik starb
    2. Wo sind die Highscores hin?
    3. Schutz für virtuelle Gitarrenartisten
    4. Die Guitar Wars-Admin-Seite schützen
    5. Die HTTP-Authentifizierung verlangt Header
    6. Mit PHP Header steuern
    7. Authentifizierung mit Headern
    8. PHP-Magneten
    9. PHP-Magneten, Lösung
      1. Also ist Guitar Wars vielleicht doch nicht so sicher
    10. Ein Autorisierungsskript erstellen
    11. Guitar Wars Episode II: Angriff der Highscore-Klone
    12. Subtraktion durch Addition
    13. Sicherheit erfordert Menschen
    14. Der Plan für eine Guitar Wars-Moderation
    15. Platz für die Bestätigungen schaffen
    16. Unbestätigte Highscores rausschmeißen
    17. Der Millionen-Punkte-Hack
    18. Wird wirklich alles moderiert?
    19. Wie hat sie das bloß angestellt?
    20. MySQL mit Kommentaren austricksen
    21. SQL-Injection
    22. Ihre Daten gegen SQL-Injection wappnen
    23. Ein sichereres INSERT
    24. Eine Formularvalidierung kann nie gut genug sein
    25. Waffenstillstand!
    26. Ihr PHP & MySQL-Werkzeugkasten
  10. 7. Persnalisierte Webanwendungen: Erinnern Sie sich an mich?
    1. Gegensätze ziehen sich an, sagt man
    2. Hassliebe.net basiert auf persönlichen Daten
    3. Benutzer-Logins
    4. Die Benutzer-Logins vorbereiten
    5. Die Datenbank für Logins vorbereiten
    6. Eine Login-Schnittstelle aufbauen
    7. Passwörter verschlüsseln mit SHA()
    8. Passwörter dekodieren vergleichen
      1. Platz für das verschlüsselte Passwort schaffen
    9. Nutzer mit HTTP authentifizieren
    10. Benutzer mit HTTP-Authentifizierung einloggen
    11. Ein Anmeldeformular für neue Benutzer
    12. Den Benutzern eine Möglichkeit zur Anmeldung geben
    13. Manchmal braucht man Cookies
    14. Was in einem Cookie steckt
    15. Cookies mit PHP nutzen
    16. Den Login-Ablauf überdenken
    17. Ein cookiebasiertes Login
    18. Die Navigation in Hassliebe.net
    19. Cookies löschen
    20. Sitzungen laufen nicht nur über den Client
    21. Sitzungsleben
    22. Sitzungsdaten festhalten
    23. Hassliebe.net mit Sitzungen
    24. Logout mit Sitzungen
    25. Ganz zu Sitzungen übergehen
    26. Benutzeraufstand
    27. Sitzungen sind kurzlebig ...
    28. ...Cookies können unsterblich sein!
    29. Sitzungen + Cookies = dauerhafteres Gedächtnis
    30. Ihr PHP & MySQL-Werkzeugkasten
  11. 8. Doppelten Code eliminieren: Teilen ist weise
    1. Die Anwendung zerlegen
    2. Die Hassliebe.net-Vorlage
    3. Die Anwendung auf Vorlagen umstellen
    4. Hassliebe.net runderneuert und viel besser organisiert
  12. 9. Die Daten im Griff: Daten ernten
    1. Das perfekte Gegenstück finden
    2. Bei der Gegensatzsuche dreht sich alles um Daten
    3. Die Hassliebe-Daten zerlegen
    4. Die Datenbank über ein Schema modellieren
    5. Mehrere Tabellen verknüpfen
    6. Fremdschlüssel im Einsatz
    7. Tabellen können einander zeilenweise entsprechen
    8. Eine Zeile führt zu vielen
    9. Viele passende Zeilen
    10. Den Fragebogen aufbauen
    11. Die Reaktionen in die Datenbank bringen
    12. Formulare mit Daten steuern
    13. Effizienz ...
    14. Das Fragebogenformular generieren
    15. Jetzt steuern die Daten das Formular
    16. Das Streben nach Normalität
    17. Denken Sie beim Normalisieren an Atome
    18. Warum normal sein?
    19. Drei Schritte zu einer normalen Datenbank
    20. Die Hassliebe.net-Datenbank ändern
    21. Also ist die Datenbank jetzt normal?
    22. Abfragen in Abfragen
    23. Die Tabellen verknüpfen
    24. Mit Punkten verbinden
    25. Was man mit Inner-Joins noch machen kann
    26. USING statt ON
    27. Kosenamen für Tabellen und Spalten
    28. Joins im Einsatz
    29. Liebe ist ein Zahlenspiel
    30. Fünf Schritte zum gelungenen Gegenstück
    31. Die Gegenstücksuche vorbereiten
    32. Gegensätzlichkeit prüfen
    33. Wir brauchen eine for-Schleife
    34. Die Anwendung fertigstellen
    35. Ihr PHP & MySQL-Werkzeugkasten
  13. 10. String-Funktionen und eigene Funktinen: Funktionen machen das Leben leichter
    1. Ein guter riskanter Job ist schwer zu finden
    2. Die Suche lässt keinen Raum für Abweichungen
    3. LIKE macht Abfragen flexibel
    4. Einen String zerlegen
    5. implode() macht aus einem Array einen String
    6. Den Such-String vorbereiten
    7. Unerwünschte Zeichen ersetzen
    8. Die Abfrage braucht echte Suchbegriffe
    9. Die nicht leeren Elemente kopieren
    10. Wenn man nur Teile von Strings braucht
    11. Vom anderen Ende her abrufen
    12. Ergebnisse sortieren mit mehreren Abfragen
    13. Code wiederverwenden mit Funktionen
    14. Die Abfrage in einer Funktion aufbauen
    15. SWITCH trifft Entscheidungen
    16. abfrage_aufbauen() sortierfähig machen
    17. Die Ergebnisse auf mehrere Seiten verteilen
    18. Mit LIMIT die zurückgelieferten Zeilen beschränken
    19. Seitenlinks mit LIMIT steuern
    20. Die Daten für die Seiteneinteilung festhalten
    21. Die Seitenvariablen einrichten
    22. Die Abfrage für die Ergebnisseiten anpassen
    23. Die Navigationslinks generieren
    24. Das Suchskript zusammenbauen
    25. Das Suchskript, Fortsetzung ...
    26. Ihr PHP & MySQL-Werkzeugkasten
  14. 11. Reguläre Ausdrücke: Ersetzungsregeln
    1. Benutzer können jetzt Stellengesuche einstellen
    2. Entscheiden, wie Ihre Daten aussehen sollten
    3. Ein Muster für Telefonnummern formulieren
    4. Mustervergleiche mit regulären Ausdrücken
    5. Muster und Metazeichen
    6. Muster mit Zeichenklassen verfeinern
    7. Muster prüfen mit preg_match()
    8. Die Telefondaten vereinheitlichen
    9. Unerwünschte Zeichen eliminieren
    10. E-Mail-Adressen sind kompliziert
    11. Domain-Suffixe gibt es massenhaft
    12. Die Domain prüfen
    13. E-Mail-Validierung: Die Steine zusammensetzen
    14. Ihr PHP & MySQL-Werkzeugkasten
  15. 12. Daten visualisieren!: Dynamische Grafiken
    1. Guitar Wars Reloaded: Aufstand der Maschinen
    2. Kein Eingabeformular ist sicher
    3. Mensch und Maschine unterscheiden
    4. Automatisierte Übermittlung automatisiert vereiteln
    5. Den Text für das CAPTCHA generieren
    6. Das CAPTCHA-Bild zeichnen
    7. Die GD-Grafikfunktionen
    8. Die GD-Grafikfunktionen, Fortsetzung ...
    9. Text in einer bestimmten Schrift zeichnen
    10. Ein zufälliges CAPTCHA-Bild erzeugen
    11. Guitar Wars den Verstand zurückgeben
    12. Das CAPTCHA dem Highscore melden-Skript hinzufügen
    13. Fünf Stufen der Gegensätzlichkeit
    14. Gegensätzlichkeit zeichnen
    15. Daten für Säulendiagramme speichern
    16. Von einem Array zum anderen
    17. Ein Array gegensätzlicher Themen aufbauen
    18. Einen Plan für die Säulendiagramme entwerfen
    19. Kategorien zählen
    20. Die Berechnung durchführen
    21. Säulendiagrammgrundlagen
    22. Das Säulendiagramm zeichnen und anzeigen
    23. Separate Diagrammdateien für alle Benutzer
    24. Diagramme und glückliche Benutzer
    25. Ihr PHP & MySQL-Werkzeugkasten
  16. 13. RSS und Webservices: Tore zur Welt
    1. Egon geht an die Öffentlichkeit
    2. Die Entführungsberichte zu den Menschen bringen
    3. RSS stellt Webinhalte zu
    4. RSS ist eigentlich XML
    5. Von der Datenbank zum RSS-Reader
    6. RSS im Bilde
    7. Dynamisch einen RSS-Feed generieren
    8. Der Link auf den RSS-Feed
    9. Ein Bild Video ist mehr wert als Tausend Millionen Wörter
    10. Webinhalte anderer nutzen
    11. YouTube-Videos servieren
    12. Eine YouTube-Videoanfrage
    13. Egon ist bereit, eine REST-Anfrage aufzubauen
    14. YouTube spricht XML
    15. Dekonstruktion einer YouTube-XML-Antwort
    16. Die XML-Videodaten im Bild
    17. Auf XML-Daten über Objekte zugreifen
    18. Von XML-Elementen zu PHP-Objekten
    19. Über Objekte in XML-Daten eindringen
    20. Nicht ohne Namensraum!
    21. Die Fang-Sichtungen nehmen zu
    22. Die Videos einbinden
    23. Die Videodaten zur Anzeige formatieren
    24. Ihr PHP & MySQL-Werkzeugkasten
  17. A. Was übrig bleibt: Die Top Ten der Themen, die wir nicht behandelt haben
    1. 1. Dieses Buch mit PHP 4 und den mysql-Funktionen einsetzen
    2. 2. Benutzerberechtigungen in MySQL
    3. 3. Fehlermeldungen für MySQL
    4. 4. Exception-Handling bei PHP-Fehlern
    5. 5. PHP objektorientiert
      1. Zwei große Vorteile der objektorientierten Programmierung:
    6. 6. Ihre PHP-Anwendung absichern
    7. 7. Ihre Anwendung vor Cross-Site-Scripting schützen
      1. Validieren Sie alles
      2. Eingebaute PHP-Funktionen können helfen
      3. Daten sind schuldig, bis ihre Unschuld nachgewiesen wurde
    8. 8. Operator-Vorrang
    9. 9. Der Unterschied zwischen PHP 5 und PHP 6
      1. Erweiterte Unicode-Unterstützung
      2. OO-Verbesserungen, XML-Unterstützung und andere Änderungen
    10. 10. Den PHP-Code anderer wiederverwenden
      1. Drupal
      2. phpBB
      3. Coppermine Gallery
      4. WordPress
  18. B. Die Entwicklungsumgebung einrichten: Der Spielplatz
    1. Eine PHP-Entwicklungsumgebung aufbauen
    2. Herausfinden, was Sie haben
    3. Habe ich einen Webserver?
    4. Habe ich PHP? Welche Version?
    5. Habe ich MySQL? Welche Version?
    6. Beginnen wir mit dem Webserver
    7. Die Apache-Installation abschließen
    8. PHP-Installation
    9. Die Schritte bei der PHP-Installation
    10. Die PHP-Installation abschließen
    11. MySQL installieren
      1. Anleitungen und Problemlösung
    12. Schritte zur MySQL-Installation unter Windows
    13. Das Installationspaket herunterladen
    14. Einen Zielordner wählen
    15. Die Installation abschließen
    16. Auf Mac OS X PHP aktivieren
    17. MySQL-Installation auf Mac OS X
    18. Aus der Entwicklung in Produktion gehen
    19. Daten (und Tabellen) ausgeben
    20. Den Einsatz der gesicherten Daten vorbereiten
    21. Die kopierten Daten auf den Live-Server spielen
    22. Mit dem Live-Server verbinden
  19. C. PHP erweitern: Wenn Sie mehr brauchen
    1. PHP installieren
      1. Wenn Sie Windows nutzen, haben Sie Glück
    2. Und auf dem Mac ...
  20. Stichwortverzeichnis