PHP 5.4 und MySQL 5.5 (eBook) - Stefan Reimers, Gunnar Thies

Gunnar Thies Stefan Reimers 

PHP 5.4 und MySQL 5.5 (eBook)

Grundlagen, Anwendung, Praxiswissen, Objektorientierung, MVC, Sichere Webanwendungen, PHP-Frameworks, Performancesteigerungen, CakePHP

eBook
 
Ob und wann dieser Artikel wieder vorrätig sein wird, ist unbekannt
Nicht lieferbar
Bewerten Empfehlen Merken Auf Lieblingsliste


Andere Kunden interessierten sich auch für

PHP 5.4 und MySQL 5.5 (eBook)

Das Buch richtet sich an ambitionierte Einsteiger und fortgeschrittene Entwickler, die umfangreiches Grundwissen in der Datenbankentwicklung und Programmierung mit PHP erhalten möchten. Der Autor bietet Ihnen eine praxisorientierte Einführung in Techniken, Arbeitsweisen und Werkzeuge für Ihre datenbankgestützte Webseite mit PHP und MySQL.



Produktinformation

  • Deutsch
  • ISBN-13: 9783836218764
  • ISBN-10: 3836218763
  • Best.Nr.: 34890073

Inhaltsangabe

1;Auf einen Blick;4 2;Inhalt;6 3;Vorwort;16 4;1 Einleitung;18 4.1;1.1 Konzeption;22 4.2;1.2 Feedback;25 5;2 Grundpfeiler der Webentwicklung;26 5.1;2.1 Das weltweite Netz;27 5.2;2.2 Das HTTP-Protokoll;32 5.3;2.3 Hypertext Markup Language (HTML);35 5.4;2.4 Anbieter und Anwender;37 5.4.1;2.4.1 Anbieter/Ressourceninhaber;38 5.4.2;2.4.2 Nutzer Ihres Systems;40 6;3 Installation;44 6.1;3.1 Microsoft Windows;46 6.1.1;3.1.1 Installation des XAMPP-Basispakets;46 6.1.2;3.1.2 Installation von XAMPP Lite;49 6.1.3;3.1.3 Starten und Beenden der Server;50 6.2;3.2 Linux;51 6.3;3.3 Konfiguration von XAMPP;53 6.3.1;3.3.1 Sicherheitslücken schließen;53 6.3.2;3.3.2 Konfigurationsdateien anpassen;56 6.4;3.4 Aktualisierung der Komponenten;62 6.5;3.5 Komponentenweise Installation;64 6.6;3.6 Die Minimallösung: PHP als Webserver;69 7;4 Einführung in PHP;72 7.1;4.1 Strukturen einer PHP-Seite;73 7.2;4.2 Variablen;75 7.2.1;4.2.1 Grundlegende Syntax;75 7.2.2;4.2.2 Datentypen;77 7.2.3;4.2.3 Namenskonventionen;99 7.3;4.3 Konstanten;100 7.4;4.4 Kommentare;101 7.5;4.5 Funktionen;103 7.5.1;4.5.1 Syntax;105 7.5.2;4.5.2 Gültigkeitsbereiche;107 7.5.3;4.5.3 Namenskonventionen;109 7.5.4;4.5.4 Anonyme Funktionen;109 7.6;4.6 Kontrollkonstrukte;111 7.6.1;4.6.1 Bedingte Entscheidungen;112 7.6.2;4.6.2 Wiederholungen;120 7.6.3;4.6.3 Sprunganweisungen;129 7.7;4.7 Vordefinierte Informationen;130 7.7.1;4.7.1 Superglobale Arrays;131 7.7.2;4.7.2 Vordefinierte Konstanten;141 7.8;4.8 Einbinden externer Dateien;144 8;5 Objektorientierung in PHP;148 8.1;5.1 Die Modellierungssprache UML;148 8.2;5.2 Klassen und Objekte;150 8.2.1;5.2.1 Konstruktoren und Destruktoren;152 8.2.2;5.2.2 Zugriffsmodifizierer;153 8.2.3;5.2.3 Funktionen oder Methoden;157 8.2.4;5.2.4 Die Implementierung der Klasse »Fahrzeug«;158 8.2.5;5.2.5 Magische Methoden;160 8.3;5.3 Klassenbeziehungen;164 8.3.1;5.3.1 Vererbung;164 8.3.2;5.3.2 Klonen;175 8.4;5.4 Automatisches Laden von Klassen;177 8.5;5.5 Klassenattribute und -methoden überladen;178 8.6;5.6 Namensräume;184 8.7;5.7 Objektorientierte Fehlerbehandlung;188 9;6 Einführung in MySQL;194 9.1;6.1 Relationale Datenbanksysteme;199 9.2;6.2 MySQL und SQL;202 9.2.1;6.2.1 Eine Serververbindung aufbauen;203 9.2.2;6.2.2 Grundlegende SQL-Kommandos;210 9.2.3;6.2.3 Datentypen;228 9.3;6.3 Zugriffswerkzeuge;243 9.3.1;6.3.1 MySQL Administrator;243 9.3.2;6.3.2 MySQL Query Browser;245 9.3.3;6.3.3 MySQL Migration Toolkit;246 9.3.4;6.3.4 MySQL Workbench;248 9.3.5;6.3.5 phpMyAdmin;250 10;7 MySQLi;254 10.1;7.1 MySQLi in PHP einsetzen;254 10.2;7.2 MySQLi-Klassen;256 10.2.1;7.2.1 mysqli;256 10.2.2;7.2.2 mysqli_result;271 10.2.3;7.2.3 mysqli_stmt;281 11;8 Wichtige PHP-Funktionalitäten;290 11.1;8.1 Datums- und Zeitfunktionen;290 11.1.1;8.1.1 Erstellung eines Datums;291 11.1.2;8.1.2 Erstellung von Zeitstempeln;292 11.1.3;8.1.3 Mikrosekunden;293 11.1.4;8.1.4 Umgangssprachliche Zeitkalkulation;295 11.2;8.2 Datei- und Verzeichnisfunktionen;297 11.2.1;8.2.1 Auslesen und Schreiben von Dateien;297 11.2.2;8.2.2 Arbeiten mit Verzeichnissen;301 11.2.3;8.2.3 Prüfungen im Dateisystem;303 11.3;8.3 Reguläre Ausdrücke;304 11.3.1;8.3.1 Syntax;306 11.3.2;8.3.2 Reguläre Ausdrücke in PHP;312 11.3.3;8.3.3 Reguläre Ausdrücke in der Praxis;316 11.4;8.4 PEAR und PECL;318 11.4.1;8.4.1 PEAR;319 11.4.2;8.4.2 PECL;320 11.5;8.5 Datenabstraktion;321 11.5.1;8.5.1 Abstraktion im Kleinen: DBX;322 11.5.2;8.5.2 PDO;329 11.6;8.6 SQLite;347 11.7;8.7 Standard-PHP-Bibliothek;357 11.7.1;8.7.1 Iteratoren;358 11.7.2;8.7.2 Datenstrukturen;361 11.7.3;8.7.3 Exceptions;363 11.8;8.8 PHP-Archive;364 12;9 Fortgeschrittenes MySQL;378 12.1;9.1 Benutzerverwaltung;378 12.2;9.2 Kontrollfluss und Aggregationen;383 12.2.1;9.2.1 Bedingte Auswertung;383 12.2.2;9.2.2 Aggregationen;385 12.3;9.3 Performanter Datenbankzugriff;391 12.3.1;9.3.1 JOIN-Syntax;391 12.3.2;9.3.2 Indizes;395 12.4;9.4 Metadaten;401 12.4.1;9.4.1 INFORMATION_SCHEMA;401 12.4.2;9.4.2 Metadatenanweisungen;406 12.4.3;9.4.3 PERFORMANCE_SCHEMA;407 12.5;9.5 Views;409 12.5.1;9.5.1 Anlegen;410 12.5.2;9.5.2 Editierbare und erweiterbare Sichten;414 12.5.3;9.5.3 Ändern und löschen;416 12.5.4;9.5.4 Ein praktisches Beispiel;417 12.6;9.6 Stored Procedures;418 12.6.1;9.6.1 Anlegen;419 12.6.2;9.6.2 Aufrufen;423 12.6.3;9.6.3 Ändern und Löschen;424 12.6.4;9.6.4 Variablen;424 12.6.5;9.6.5 Kontrollstrukturen;425 12.6.6;9.6.6 Error Handling;430 12.7;9.7 Trigger;436 12.7.1;9.7.1 Anlegen;436 12.7.2;9.7.2 Wozu aber sind Trigger notwendig?;438 12.7.3;9.7.3 Löschen;441 12.8;9.8 Partitionierung;442 12.8.1;9.8.1 Partitionstypen;446 12.8.2;9.8.2 Subpartitionierung;455 12.8.3;9.8.3 Verwaltung von Partitionen;457 12.9;9.9 Events;459 12.9.1;9.9.1 Anlegen;460 12.9.2;9.9.2 Ändern;466 12.9.3;9.9.3 Löschen;468 13;10 MySQL Storage Engines;470 13.1;10.1 MyISAM;472 13.2;10.2 InnoDB;476 13.2.1;10.2.1 Transaktionen;478 13.2.2;10.2.2 Referentielle Integrität;481 13.3;10.3 MEMORY;484 13.4;10.4 ARCHIVE;486 13.5;10.5 Maria;488 13.6;10.6 CSV;489 13.7;10.7 MySQL Pluggable Storage Engines;492 13.8;10.8 MySQL Forks;494 13.8.1;10.8.1 Percona XtraDB;495 13.8.2;10.8.2 OurDelta;496 13.8.3;10.8.3 MariaDB;497 13.8.4;10.8.4 Drizzle;498 14;11 Sicherheit;500 14.1;11.1 Formulardaten und Validierung;502 14.2;11.2 Verschlüsselung;507 14.2.1;11.2.1 Ein-Weg-Verschlüsselung;507 14.2.2;11.2.2 Zwei-Wege-Verschlüsselung;510 14.2.3;11.2.3 SSL;514 14.3;11.3 Angriffsmethoden und Schutzmaßnahmen;516 14.3.1;11.3.1 Cross-Site-Scripting (XSS);517 14.3.2;11.3.2 SQL Injection;520 14.3.3;11.3.3 Angriffe auf Sitzungen;521 14.3.4;11.3.4 HTTP Response Splitting;523 14.3.5;11.3.5 Fazit;525 14.4;11.4 Filter;525 14.4.1;11.4.1 Verfügbare Filter;526 14.4.2;11.4.2 Filterfunktionen;527 14.4.3;11.4.3 Datenvalidierung;535 14.4.4;11.4.4 Datenbereinigung;543 15;12 Datenbankentwurf;550 15.1;12.1 ERM;551 15.2;12.2 Normalisierung;555 15.2.1;12.2.1 Normalformen;555 15.2.2;12.2.2 Denormalisierung;560 15.3;12.3 Datenbankentwurf mit phpMyAdmin;561 16;13 Extensible Markup Language;564 16.1;13.1 XML-Grundlagen;564 16.2;13.2 XPath;566 16.3;13.3 SimpleXML;570 16.4;13.4 MySQL-XML-Funktionalität;582 17;14 Ein Basissystem mit PHP und MySQL;592 17.1;14.1 Konfigurationsdateien;593 17.1.1;14.1.1 common.php;593 17.1.2;14.1.2 paths.php;595 17.1.3;14.1.3 settings.php;596 17.1.4;14.1.4 includeAllClasses.php;598 17.2;14.2 Die Klasse für HTML;598 17.3;14.3 Datenbankverbindungen;601 17.3.1;14.3.1 Die Datenbankverbindungsklasse MySQL;602 17.3.2;14.3.2 Abstraktionsschicht mittels PHP Data Objects;608 17.3.3;14.3.3 Verwendung der PDO-Klasse;613 17.3.4;14.3.4 SQLite-Verbindungsklasse;615 17.4;14.4 Sicherheitsklasse;616 17.5;14.5 Logging;620 17.5.1;14.5.1 Die Logging-Klasse;620 17.5.2;14.5.2 Verwendung des Loggings;625 17.6;14.6 Debugging;626 17.6.1;14.6.1 Die Klasse »DebugConsole«;627 17.6.2;14.6.2 Hilfsdateien für die Debug-Konsole;636 17.6.3;14.6.3 Verwendung der Klasse »DebugConsole«;637 18;15 Sichere Webanwendungen;640 18.1;15.1 Benutzer authentifizieren;641 18.1.1;15.1.1 Klasse »Login«;641 18.1.2;15.1.2 »Login«-Klasse anwenden;645 18.2;15.2 Sitzungen mit der Datenbank verwalten;647 18.2.1;15.2.1 Die Klasse der Sitzungsverwaltung;647 18.2.2;15.2.2 Sitzungsverwaltung anwenden;653 18.2.3;15.2.3 Probleme mit der Sitzungsverwaltung;654 18.2.4;15.2.4 »Race Hazard« bei datenbankbasierter Sitzungsverwaltung;655 18.2.5;15.2.5 Benutzerstatus abfragen;657 18.2.6;15.2.6 Benutzer abmelden;658 18.3;15.3 Passwörter sicher gestalten;659 18.3.1;15.3.1 Passwortstrategie;659 18.3.2;15.3.2 Zufalls-Passwörter generieren;660 18.3.3;15.3.3 Passwort-Syntax überprüfen;662 18.4;15.4 Logging realisieren;664 18.4.1;15.4.1 Daten speichern;665 18.4.2;15.4.2 Klasse »Log«;666 18.4.3;15.4.3 Daten mittels JpGraph darstellen;669 18.4.4;15.4.4 Klasse »Chart«;670 18.4.5;15.4.5 Daten als PDF-Dokument archivieren;673 18.4.6;15.4.6 Klasse »PDFMaker«;675 18.4.7;15.4.7 »PDFMaker«-Klasse anwenden;682 18.5;15.5 Einfache Intrusion Detection implementieren;683 18.5.1;15.5.1 Konfigurationsdatei für das Intrusion Detection Login;685 18.5.2;15.5.2 Klasse für Intrusion Detection;686 18.6;15.6 Sichere Formulare;692 18.7;15.7 Eigene Fehlerbehandlung einbauen;698 18.7.1;15.7.1 Konfigurationsdatei für Fehlerbehandlung;699 18.7.2;15.7.2 Fehlerbehandlungsklasse;701 18.7.3;15.7.3 Fehlerbehandlung in das Basissystem integrieren;706 19;16 Mehrbenutzersysteme;708 19.1;16.1 Das Hauptproblem: 2 Benutzer - 1 Datensatz;709 19.1.1;16.1.1 Szenario 1: Wer zuerst kommt … Ein Änderungsschlüssel;709 19.1.2;16.1.2 Szenario 2: Datensätze explizit sperren;709 19.2;16.2 Sperren von MySQL-Datensätzen;711 19.2.1;16.2.1 Die Klasse »Locks«;712 19.2.2;16.2.2 Beispielanwendung mit Sperren versehen;716 19.3;16.3 Transaktionen im praktischen Einsatz;720 19.3.1;16.3.1 Klasse »Bank«;722 19.3.2;16.3.2 Sichere und unsichere »Banktransaktionen« verwenden;725 19.4;16.4 Mehrsprachige Weboberflächen;728 19.4.1;16.4.1 Klasse »LanguageSupport«;729 19.4.2;16.4.2 Mehrsprachige Benutzeroberflächen realisieren;733 19.4.3;16.4.3 Erweiterungsmöglichkeiten;734 19.5;16.5 Mehrsprachige Weboberflächen mit gettext;737 19.5.1;16.5.1 Vorbereiten einer PHP-Datei;738 19.5.2;16.5.2 Dateiformat;739 19.5.3;16.5.3 Ordnerstruktur von »locale«;740 19.5.4;16.5.4 Klasse »Gettext«;742 19.5.5;16.5.5 Software für die Erstellung von Locales-Dateien;744 20;17 Web 2.0-Technologien;750 20.1;17.1 JavaScript Object Notation;750 20.2;17.2 AJAX;753 20.2.1;17.2.1 Beispiel: Blog-»Suchmaschine«;753 20.2.2;17.2.2 Klasse »AJAX«;754 20.2.3;17.2.3 AJAXJavaScript.js;763 20.2.4;17.2.4 PHP-Skripte für das AJAX-Beispiel;768 20.2.5;17.2.5 PHPLiveX im Einsatz;771 20.3;17.3 Web-API;781 20.3.1;17.3.1 Webservices;781 20.3.2;17.3.2 REST-Services;783 20.3.3;17.3.3 Interface für unsere eigene Web-API;785 20.3.4;17.3.4 REST-API;786 20.3.5;17.3.5 JSON-API;796 20.3.6;17.3.6 Verwendung und Aufruf der API-Klassen;804 20.3.7;17.3.7 Klasse »Resolver«;807 20.3.8;17.3.8 Klasse »Request«;810 20.3.9;17.3.9 index.php;816 20.4;17.4 jQuery;817 20.5;17.5 Web-Feeds;824 20.5.1;17.5.1 Technologie hinter Web-Feeds;824 20.5.2;17.5.2 Erstellen von Feed und Einträgen;826 20.5.3;17.5.3 RSS-Feed zur Verfügung stellen;838 20.5.4;17.5.4 Einsatz des RSS-Feeds;842 21;18 Blogs und Wikis;844 21.1;18.1 Blog;845 21.1.1;18.1.1 Klasse »Blog«;846 21.1.2;18.1.2 Blog in der praktischen Anwendung;858 21.2;18.2 Ein konkretes Mehrbenutzersystem: Wiki;863 21.2.1;18.2.1 Die Klasse »Wiki«;865 21.2.2;18.2.2 Wiki in der Praxis;878 22;19 Bildergalerien;882 22.1;19.1 Standard-Bildergalerie;882 22.1.1;19.1.1 Klassenübersicht: Bildergalerie;882 22.1.2;19.1.2 Klasse »AbstractGallery«;886 22.1.3;19.1.3 Klasse »Admin«;887 22.1.4;19.1.4 Klasse »Gallery«;908 22.1.5;19.1.5 Klasse »Picture«;911 23;20 Dauerhafte Objektspeicherung;916 23.1;20.1 Persistenz;916 23.2;20.2 Umsetzung persistenter Objekte;916 23.2.1;20.2.1 Klasse Attribute;917 23.2.2;20.2.2 Klasse Object;919 23.3;20.3 Gültigkeitsprüfung von Parametern;936 23.3.1;20.3.1 Konfigurationsdatei der Gültigkeitsprüfung;936 23.3.2;20.3.2 Gültigkeitsprüfungsklasse;940 23.3.3;20.3.3 Gültigkeitsprüfung in die Klasse »Object« einbauen;954 23.4;20.4 Objekt-Serialisierung in Cookies mittels Traits;956 23.4.1;20.4.1 Implementierung eines Traits;956 23.4.2;20.4.2 Verwendung mehrerer Traits;960 24;21 Automatische Formularerstellung;962 24.1;21.1 Klasse »SimpleAutomaticFormular«;965 24.2;21.2 Automatische Formulargenerierung anwenden;981 24.3;21.3 Verbesserungsvorschläge;982 25;22 Model View Controller;984 25.1;22.1 Installation und Konfiguration von CakePHP;987 25.2;22.2 Prinzipien in CakePHP;989 25.3;22.3 MVC mit CakePHP umsetzen;990 25.3.1;22.3.1 HABTM-Modell;997 25.3.2;22.3.2 Validierung von Modell-Attributen;1000 25.3.3;22.3.3 Methoden zum Controller hinzufügen;1001 25.3.4;22.3.4 Views anpassen (selbst backen);1003 25.4;22.4 Ausblick;1006 26;A PHP-Referenz;1010 26.1;C.1 GPL;1060 26.2;C.2 LGPL;1062 26.3;C.3 BSD;1063 26.4;C.4 PHP License;1064 26.5;C.5 MySQL-Lizenz;1064 26.6;C.6 Lizenzen im Überblick;1065 27;Index;1074