Erste Schritte Grundbegriffe des Web PHP Programmierung MySQL Datenbanken Website mit DB-Anbindung Webentwicklung mit PHP und MySQL Dr. Kerstin Puschke Workshop, Uni Salzburg September 2012 K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Webentwicklung mit PHP und MySQL
Dr. Kerstin Puschke
Workshop, Uni Salzburg
September 2012
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Lizenz
LizenzDieser Text steht unter einer Creative CommonsAttribution-Share Alike 3.0 Germany Lizenz, siehehttp://creativecommons.org/licenses/by-sa/3.0/de/
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Hinweis
Materialien
Codebeispiele und Übungsaufgaben mit Erläuterungen undlinks im Wiki!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Outline
1 Erste Schritte
2 Grundbegriffe des Web
3 PHP Programmierung
4 MySQL Datenbanken
5 Website mit Datenbankanbindung
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Outline
1 Erste SchritteMit PHP-Dateien arbeitenPHP
2 Grundbegriffe des Web
3 PHP Programmierung
4 MySQL Datenbanken
5 Website mit Datenbankanbindung
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
PHP-Beispiel.php-Datei
<body><h1>Hallo</h1><p><?php
echo "Hallo, Welt!";?>
</p></body>
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
PHP-BeispielAusgeliefertes HTML
<body><h1>Hallo</h1><p>Hallo, Welt!</p>
</body>
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Allgemeine Syntax
jeder Block PHP-Code eingeschlossen in <?php ... ?>oder <? ... ?>
kann aus mehreren Zeilen Code bestehen<?
echo "Hallo, <b>Welt</b>!";echo "Na, wie geht’s?";
?>
jede Zeile Code endet mit einem ;Leerzeilen und Einrückungen werden nicht beachtetGroß- und Kleinschreibung relevant
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Allgemeine Syntax
jeder Block PHP-Code eingeschlossen in <?php ... ?>oder <? ... ?>
kann aus mehreren Zeilen Code bestehen<?echo "Hallo, <b>Welt</b>!";echo "Na, wie geht’s?";
?>
jede Zeile Code endet mit einem ;Leerzeilen und Einrückungen werden nicht beachtetGroß- und Kleinschreibung relevant
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Allgemeine Syntax
jeder Block PHP-Code eingeschlossen in <?php ... ?>oder <? ... ?>
kann aus mehreren Zeilen Code bestehen<?echo "Hallo, <b>Welt</b>!";echo "Na, wie geht’s?";
?>
jede Zeile Code endet mit einem ;
Leerzeilen und Einrückungen werden nicht beachtetGroß- und Kleinschreibung relevant
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Allgemeine Syntax
jeder Block PHP-Code eingeschlossen in <?php ... ?>oder <? ... ?>
kann aus mehreren Zeilen Code bestehen<?echo "Hallo, <b>Welt</b>!";echo "Na, wie geht’s?";
?>
jede Zeile Code endet mit einem ;Leerzeilen und Einrückungen werden nicht beachtet
Groß- und Kleinschreibung relevant
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Allgemeine Syntax
jeder Block PHP-Code eingeschlossen in <?php ... ?>oder <? ... ?>
kann aus mehreren Zeilen Code bestehen<?echo "Hallo, <b>Welt</b>!";echo "Na, wie geht’s?";
?>
jede Zeile Code endet mit einem ;Leerzeilen und Einrückungen werden nicht beachtetGroß- und Kleinschreibung relevant
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Kommentare
Kommentare werden nicht ausgeführt
dienen zur Erläuterung des Programms oder helfen beimDebuggen# oder // kommentieren den Rest der Zeile ausecho “Hallo, Welt”; # Erklärung
Blockkommentare mit /* ...*/
Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriertHTML-Kommentare
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Kommentare
Kommentare werden nicht ausgeführtdienen zur Erläuterung des Programms oder helfen beimDebuggen
# oder // kommentieren den Rest der Zeile ausecho “Hallo, Welt”; # Erklärung
Blockkommentare mit /* ...*/
Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriertHTML-Kommentare
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Kommentare
Kommentare werden nicht ausgeführtdienen zur Erläuterung des Programms oder helfen beimDebuggen# oder // kommentieren den Rest der Zeile ausecho “Hallo, Welt”; # Erklärung
Blockkommentare mit /* ...*/
Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriertHTML-Kommentare
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Kommentare
Kommentare werden nicht ausgeführtdienen zur Erläuterung des Programms oder helfen beimDebuggen# oder // kommentieren den Rest der Zeile ausecho “Hallo, Welt”; # Erklärung
Blockkommentare mit /* ...*/
Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriertHTML-Kommentare
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Kommentare
Kommentare werden nicht ausgeführtdienen zur Erläuterung des Programms oder helfen beimDebuggen# oder // kommentieren den Rest der Zeile ausecho “Hallo, Welt”; # Erklärung
Blockkommentare mit /* ...*/
Vorsicht: PHP ignoriert PHP-Kommentare, HTML ignoriertHTML-Kommentare
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Formatierung
Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!
aussgekräftige Kommentare
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Mit PHP-Dateien arbeitenPHP
Formatierung
Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!
aussgekräftige Kommentare
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Outline
1 Erste Schritte
2 Grundbegriffe des WebBegriffsklärungStatische WebseitenDynamische Webseiten
3 PHP Programmierung
4 MySQL Datenbanken
5 Website mit Datenbankanbindung
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Grundbegriffe
WWW : World Wide Web - ein Netzwerk verlinkterDokumente (Webseiten), nutzbar via Internet
HTTP: Hypertext Transfer Protocol - ein Protokoll zumTransport von Inhalten über das WWWHTML: Hypertext Markup Language - eineAuszeichnungssprache für WebseitenPHP: PHP Hypertext Preprocessor - eineProgrammierspracheMySQL: ein Datenbanksystem
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Grundbegriffe
WWW : World Wide Web - ein Netzwerk verlinkterDokumente (Webseiten), nutzbar via InternetHTTP: Hypertext Transfer Protocol - ein Protokoll zumTransport von Inhalten über das WWW
HTML: Hypertext Markup Language - eineAuszeichnungssprache für WebseitenPHP: PHP Hypertext Preprocessor - eineProgrammierspracheMySQL: ein Datenbanksystem
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Grundbegriffe
WWW : World Wide Web - ein Netzwerk verlinkterDokumente (Webseiten), nutzbar via InternetHTTP: Hypertext Transfer Protocol - ein Protokoll zumTransport von Inhalten über das WWWHTML: Hypertext Markup Language - eineAuszeichnungssprache für Webseiten
PHP: PHP Hypertext Preprocessor - eineProgrammierspracheMySQL: ein Datenbanksystem
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Grundbegriffe
WWW : World Wide Web - ein Netzwerk verlinkterDokumente (Webseiten), nutzbar via InternetHTTP: Hypertext Transfer Protocol - ein Protokoll zumTransport von Inhalten über das WWWHTML: Hypertext Markup Language - eineAuszeichnungssprache für WebseitenPHP: PHP Hypertext Preprocessor - eineProgrammiersprache
MySQL: ein Datenbanksystem
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Grundbegriffe
WWW : World Wide Web - ein Netzwerk verlinkterDokumente (Webseiten), nutzbar via InternetHTTP: Hypertext Transfer Protocol - ein Protokoll zumTransport von Inhalten über das WWWHTML: Hypertext Markup Language - eineAuszeichnungssprache für WebseitenPHP: PHP Hypertext Preprocessor - eineProgrammierspracheMySQL: ein Datenbanksystem
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Client und Server
Client
Software, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )
Webserver
Software, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.B. Apache Webserver,. . .
Datenbankserver
Software, die Datenbankdienste (ein Datenbanksystem)anbietet
manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Client und Server
ClientSoftware, die Inhalte anfordert und verarbeitet
i.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )Webserver
Software, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.B. Apache Webserver,. . .
Datenbankserver
Software, die Datenbankdienste (ein Datenbanksystem)anbietet
manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Client und Server
ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )
Webserver
Software, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.B. Apache Webserver,. . .
Datenbankserver
Software, die Datenbankdienste (ein Datenbanksystem)anbietet
manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Client und Server
ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )
Webserver
Software, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.B. Apache Webserver,. . .
Datenbankserver
Software, die Datenbankdienste (ein Datenbanksystem)anbietet
manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Client und Server
ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )
WebserverSoftware, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefert
z.B. Apache Webserver,. . .Datenbankserver
Software, die Datenbankdienste (ein Datenbanksystem)anbietet
manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Client und Server
ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )
WebserverSoftware, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.B. Apache Webserver,. . .
Datenbankserver
Software, die Datenbankdienste (ein Datenbanksystem)anbietet
manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Client und Server
ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )
WebserverSoftware, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.B. Apache Webserver,. . .
Datenbankserver
Software, die Datenbankdienste (ein Datenbanksystem)anbietet
manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Client und Server
ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )
WebserverSoftware, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.B. Apache Webserver,. . .
DatenbankserverSoftware, die Datenbankdienste (ein Datenbanksystem)anbietet
manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Client und Server
ClientSoftware, die Inhalte anfordert und verarbeiteti.d.R. ein Webbrowser (Firefox, Internet Explorer,. . . )
WebserverSoftware, die Webdienste anbietetd.h. Inhalte (z.B. Webseiten) per HTTP an Client ausliefertz.B. Apache Webserver,. . .
DatenbankserverSoftware, die Datenbankdienste (ein Datenbanksystem)anbietet
manchmal auch gemeint:der Rechner, auf dem die jeweilige Software läuft
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Statische Webseiten
Inhalte liegen als HTML-Dateien bereits fertig auf demServer vor
jeder Client bekommt jederzeit dieselben Inhalteausgeliefert
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Statische Webseiten
Inhalte liegen als HTML-Dateien bereits fertig auf demServer vorjeder Client bekommt jederzeit dieselben Inhalteausgeliefert
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Statische WebseitenAblauf
Client (Browser) fordert (per HTTP) Webseite an
Webserver erhält AnfrageWebserver findet HTML-DateiWebserver liefert HTML (per HTTP) an Client ausClient verarbeitet HTML,Browser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Statische WebseitenAblauf
Client (Browser) fordert (per HTTP) Webseite anWebserver erhält Anfrage
Webserver findet HTML-DateiWebserver liefert HTML (per HTTP) an Client ausClient verarbeitet HTML,Browser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Statische WebseitenAblauf
Client (Browser) fordert (per HTTP) Webseite anWebserver erhält AnfrageWebserver findet HTML-Datei
Webserver liefert HTML (per HTTP) an Client ausClient verarbeitet HTML,Browser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Statische WebseitenAblauf
Client (Browser) fordert (per HTTP) Webseite anWebserver erhält AnfrageWebserver findet HTML-DateiWebserver liefert HTML (per HTTP) an Client aus
Client verarbeitet HTML,Browser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Statische WebseitenAblauf
Client (Browser) fordert (per HTTP) Webseite anWebserver erhält AnfrageWebserver findet HTML-DateiWebserver liefert HTML (per HTTP) an Client ausClient verarbeitet HTML,Browser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite
Inhalte werden dynamisch ermittelt
clientseitig im Browser (javascript)serverseitig (php, ruby, perl,. . . )
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite
Inhalte werden dynamisch ermitteltclientseitig im Browser (javascript)
serverseitig (php, ruby, perl,. . . )
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite
Inhalte werden dynamisch ermitteltclientseitig im Browser (javascript)serverseitig (php, ruby, perl,. . . )
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite mit PHPAblauf
Client (Browser) fordert Webseite an
Webserver findet PHP-DateiPHP-Code
wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML
Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite mit PHPAblauf
Client (Browser) fordert Webseite anWebserver findet PHP-Datei
PHP-Code
wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML
Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite mit PHPAblauf
Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code
wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML
Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite mit PHPAblauf
Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code
wird ausgeführt
interagiert ggf. mit Datenbanksystemerzeugt ggf. HTML
Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite mit PHPAblauf
Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code
wird ausgeführtinteragiert ggf. mit Datenbanksystem
erzeugt ggf. HTML
Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite mit PHPAblauf
Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code
wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML
Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite mit PHPAblauf
Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code
wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML
Webserver liefert HTML an Client aus
Client verarbeitet HTMLBrowser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
Dynamische Webseite mit PHPAblauf
Client (Browser) fordert Webseite anWebserver findet PHP-DateiPHP-Code
wird ausgeführtinteragiert ggf. mit Datenbanksystemerzeugt ggf. HTML
Webserver liefert HTML an Client ausClient verarbeitet HTMLBrowser stellt Webseite dar
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
ArchitekturDrei-Schichten-Architektur
Datenbanksystem
Datenspeicherung und DatenverwaltungWebserver
Anwendungslogik und Darstellung
Client (Browser)
Anfragen stellen, Anworten verarbeiten
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
ArchitekturDrei-Schichten-Architektur
DatenbanksystemDatenspeicherung und Datenverwaltung
Webserver
Anwendungslogik und Darstellung
Client (Browser)
Anfragen stellen, Anworten verarbeiten
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
ArchitekturDrei-Schichten-Architektur
DatenbanksystemDatenspeicherung und Datenverwaltung
Webserver
Anwendungslogik und DarstellungClient (Browser)
Anfragen stellen, Anworten verarbeiten
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
ArchitekturDrei-Schichten-Architektur
DatenbanksystemDatenspeicherung und Datenverwaltung
WebserverAnwendungslogik und Darstellung
Client (Browser)
Anfragen stellen, Anworten verarbeiten
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
ArchitekturDrei-Schichten-Architektur
DatenbanksystemDatenspeicherung und Datenverwaltung
WebserverAnwendungslogik und Darstellung
Client (Browser)
Anfragen stellen, Anworten verarbeiten
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
BegriffsklärungStatische WebseitenDynamische Webseiten
ArchitekturDrei-Schichten-Architektur
DatenbanksystemDatenspeicherung und Datenverwaltung
WebserverAnwendungslogik und Darstellung
Client (Browser)Anfragen stellen, Anworten verarbeiten
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Outline
1 Erste Schritte
2 Grundbegriffe des Web
3 PHP ProgrammierungSkalare DatenAblaufsteuerungUserinput verarbeiten
4 MySQL Datenbanken
5 Website mit Datenbankanbindung
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalare Datentypen
integerganze Zahl, z.B. 42
floatreelle Zahl, z.B. 3.14stringZeichenkette, z.B. “Hallo, Welt!” oder “7”booleantrue oder falsephp konvertiert ggf. automatisch
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalare Datentypen
integerganze Zahl, z.B. 42floatreelle Zahl, z.B. 3.14
stringZeichenkette, z.B. “Hallo, Welt!” oder “7”booleantrue oder falsephp konvertiert ggf. automatisch
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalare Datentypen
integerganze Zahl, z.B. 42floatreelle Zahl, z.B. 3.14stringZeichenkette, z.B. “Hallo, Welt!” oder “7”
booleantrue oder falsephp konvertiert ggf. automatisch
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalare Datentypen
integerganze Zahl, z.B. 42floatreelle Zahl, z.B. 3.14stringZeichenkette, z.B. “Hallo, Welt!” oder “7”booleantrue oder false
php konvertiert ggf. automatisch
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalare Datentypen
integerganze Zahl, z.B. 42floatreelle Zahl, z.B. 3.14stringZeichenkette, z.B. “Hallo, Welt!” oder “7”booleantrue oder falsephp konvertiert ggf. automatisch
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalarvariablen
Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...
keine explizite Initialisierung oder Deklaration nötigZuweisungsoperator =
$username = “alice”;$begruessung = “Hallo, $username!”;$begruessung = “$begruessung HerzlichWillkommen!”;
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalarvariablen
Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...
keine explizite Initialisierung oder Deklaration nötig
Zuweisungsoperator =
$username = “alice”;$begruessung = “Hallo, $username!”;$begruessung = “$begruessung HerzlichWillkommen!”;
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalarvariablen
Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...
keine explizite Initialisierung oder Deklaration nötigZuweisungsoperator =
$username = “alice”;$begruessung = “Hallo, $username!”;$begruessung = “$begruessung HerzlichWillkommen!”;
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalarvariablen
Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...
keine explizite Initialisierung oder Deklaration nötigZuweisungsoperator =
$username = “alice”;
$begruessung = “Hallo, $username!”;$begruessung = “$begruessung HerzlichWillkommen!”;
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalarvariablen
Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...
keine explizite Initialisierung oder Deklaration nötigZuweisungsoperator =
$username = “alice”;$begruessung = “Hallo, $username!”;
$begruessung = “$begruessung HerzlichWillkommen!”;
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Skalarvariablen
Variablennamen beginnen mit $:$username, $NachName, $Telefon2,...
keine explizite Initialisierung oder Deklaration nötigZuweisungsoperator =
$username = “alice”;$begruessung = “Hallo, $username!”;$begruessung = “$begruessung HerzlichWillkommen!”;
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Variablen
Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!
aussagekräftige Variablennamen wählen
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Variablen
Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!
aussagekräftige Variablennamen wählen
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Ablaufsteuerung
Good PracticeIn längeren if...elseif...-Konstrukten einen else-Zweigvorsehen!
Abfangen unvorhergesehener Ereignisseggf. sogar Programmabbruch mit Fehlermeldung
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Ablaufsteuerung
Good PracticeIn längeren if...elseif...-Konstrukten einen else-Zweigvorsehen!
Abfangen unvorhergesehener Ereignisse
ggf. sogar Programmabbruch mit Fehlermeldung
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Ablaufsteuerung
Good PracticeIn längeren if...elseif...-Konstrukten einen else-Zweigvorsehen!
Abfangen unvorhergesehener Ereignisseggf. sogar Programmabbruch mit Fehlermeldung
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Formatierung
Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!
EinrückungenLeerzeilenZeilenumbrücheKlammern verwenden in langen, komplexen Ausdrücken
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Formatierung
Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!
Einrückungen
LeerzeilenZeilenumbrücheKlammern verwenden in langen, komplexen Ausdrücken
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Formatierung
Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!
EinrückungenLeerzeilen
ZeilenumbrücheKlammern verwenden in langen, komplexen Ausdrücken
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Formatierung
Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!
EinrückungenLeerzeilenZeilenumbrüche
Klammern verwenden in langen, komplexen Ausdrücken
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Formatierung
Good PracticeGuter Code ist nicht nur maschinen-, sondern auchmenschenlesbar!
EinrückungenLeerzeilenZeilenumbrücheKlammern verwenden in langen, komplexen Ausdrücken
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
FormulareGET und POST
Methode GET oder POST wählen (default GET)<form action=”hallo.php” method=”post”>
GET „hängt Daten an URL dran “
URL incl. Parameter kann direkt im Browser aufgerufen undeinfach geändert werden (bookmarks, history)
GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:
Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
FormulareGET und POST
Methode GET oder POST wählen (default GET)<form action=”hallo.php” method=”post”>
GET „hängt Daten an URL dran “
URL incl. Parameter kann direkt im Browser aufgerufen undeinfach geändert werden (bookmarks, history)
GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:
Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
FormulareGET und POST
Methode GET oder POST wählen (default GET)<form action=”hallo.php” method=”post”>
GET „hängt Daten an URL dran “URL incl. Parameter kann direkt im Browser aufgerufen undeinfach geändert werden (bookmarks, history)
GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:
Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
FormulareGET und POST
Methode GET oder POST wählen (default GET)<form action=”hallo.php” method=”post”>
GET „hängt Daten an URL dran “URL incl. Parameter kann direkt im Browser aufgerufen undeinfach geändert werden (bookmarks, history)
GET und POST sind unverschlüsselt und user könnenbeliebige Daten senden
Faustregel:
Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
FormulareGET und POST
Methode GET oder POST wählen (default GET)<form action=”hallo.php” method=”post”>
GET „hängt Daten an URL dran “URL incl. Parameter kann direkt im Browser aufgerufen undeinfach geändert werden (bookmarks, history)
GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:
Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
FormulareGET und POST
Methode GET oder POST wählen (default GET)<form action=”hallo.php” method=”post”>
GET „hängt Daten an URL dran “URL incl. Parameter kann direkt im Browser aufgerufen undeinfach geändert werden (bookmarks, history)
GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:
Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GET
Daten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
FormulareGET und POST
Methode GET oder POST wählen (default GET)<form action=”hallo.php” method=”post”>
GET „hängt Daten an URL dran “URL incl. Parameter kann direkt im Browser aufgerufen undeinfach geändert werden (bookmarks, history)
GET und POST sind unverschlüsselt und user könnenbeliebige Daten sendenFaustregel:
Daten dienen nur der Ablaufsteuerung (z.B. Anzeigebestimmter Produktkategorie): GETDaten weitergehend benötigt (z.B. Bestellung in Datenbankschreiben): POST
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
XSSCross-Site Scripting
verbreitete Sicherheitslücke
Opfer auf präparierte links locken:example.com?name=<script>boeses_java_script</script>persistentes XSS: Schadcode in die Datenbank schreiben
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
XSSCross-Site Scripting
verbreitete SicherheitslückeOpfer auf präparierte links locken:example.com?name=<script>boeses_java_script</script>
persistentes XSS: Schadcode in die Datenbank schreiben
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
XSSCross-Site Scripting
verbreitete SicherheitslückeOpfer auf präparierte links locken:example.com?name=<script>boeses_java_script</script>persistentes XSS: Schadcode in die Datenbank schreiben
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Userinput
WARNINGALL Input is EVIL!
user geben unabsichtlich Unerwartetes einuser geben absichtlich Unerwünschtes einEingaben können sehr großen Schaden anrichten
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Userinput
WARNINGALL Input is EVIL!
user geben unabsichtlich Unerwartetes ein
user geben absichtlich Unerwünschtes einEingaben können sehr großen Schaden anrichten
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Userinput
WARNINGALL Input is EVIL!
user geben unabsichtlich Unerwartetes einuser geben absichtlich Unerwünschtes ein
Eingaben können sehr großen Schaden anrichten
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Userinput
WARNINGALL Input is EVIL!
user geben unabsichtlich Unerwartetes einuser geben absichtlich Unerwünschtes einEingaben können sehr großen Schaden anrichten
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Userinput
WARNINGAll Input is Evil!
user benutzen nicht das Formular, erzeugen diePOST/GET-Daten selbstdeshalb: auch Eingaben prüfen, die vermeintlichvorgegebene Werte haben (radiobuttons, menus)
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Userinput
WARNINGAll Input is Evil!
user benutzen nicht das Formular, erzeugen diePOST/GET-Daten selbst
deshalb: auch Eingaben prüfen, die vermeintlichvorgegebene Werte haben (radiobuttons, menus)
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Userinput
WARNINGAll Input is Evil!
user benutzen nicht das Formular, erzeugen diePOST/GET-Daten selbstdeshalb: auch Eingaben prüfen, die vermeintlichvorgegebene Werte haben (radiobuttons, menus)
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Eingaben unschädlich machenEingaben filtern
Whitelist: explizit festlegen, welche Zeichen zulässig sind(z.B. nur Buchstaben), alles andere entfernen
Blacklist: explizit festlegen, welche Zeichen unzulässigsind (z.B. <,>,/), diese entfernenbei Erstellung der Listen kann leicht etwas übersehenwerden - Filterungen sind daher fehleranfällig!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Eingaben unschädlich machenEingaben filtern
Whitelist: explizit festlegen, welche Zeichen zulässig sind(z.B. nur Buchstaben), alles andere entfernenBlacklist: explizit festlegen, welche Zeichen unzulässigsind (z.B. <,>,/), diese entfernen
bei Erstellung der Listen kann leicht etwas übersehenwerden - Filterungen sind daher fehleranfällig!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Eingaben unschädlich machenEingaben filtern
Whitelist: explizit festlegen, welche Zeichen zulässig sind(z.B. nur Buchstaben), alles andere entfernenBlacklist: explizit festlegen, welche Zeichen unzulässigsind (z.B. <,>,/), diese entfernenbei Erstellung der Listen kann leicht etwas übersehenwerden - Filterungen sind daher fehleranfällig!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Eingaben unschädlich machenEscape/Maskieren
Eingaben vor der weiteren Verarbeitung escapen,d.h. gefährliche Zeichen maskieren
abhängig von der Art der weiteren VerarbeitungBeispiel: für Ausgabe von HTML gefährliche Zeichen inHTML-Entities umwandelngeeignete php-Funktionen vorhanden, keine Gefahr etwaszu vergessen - weniger fehleranfällig
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Eingaben unschädlich machenEscape/Maskieren
Eingaben vor der weiteren Verarbeitung escapen,d.h. gefährliche Zeichen maskierenabhängig von der Art der weiteren Verarbeitung
Beispiel: für Ausgabe von HTML gefährliche Zeichen inHTML-Entities umwandelngeeignete php-Funktionen vorhanden, keine Gefahr etwaszu vergessen - weniger fehleranfällig
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Eingaben unschädlich machenEscape/Maskieren
Eingaben vor der weiteren Verarbeitung escapen,d.h. gefährliche Zeichen maskierenabhängig von der Art der weiteren VerarbeitungBeispiel: für Ausgabe von HTML gefährliche Zeichen inHTML-Entities umwandeln
geeignete php-Funktionen vorhanden, keine Gefahr etwaszu vergessen - weniger fehleranfällig
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
Skalare DatenAblaufsteuerungUserinput verarbeiten
Eingaben unschädlich machenEscape/Maskieren
Eingaben vor der weiteren Verarbeitung escapen,d.h. gefährliche Zeichen maskierenabhängig von der Art der weiteren VerarbeitungBeispiel: für Ausgabe von HTML gefährliche Zeichen inHTML-Entities umwandelngeeignete php-Funktionen vorhanden, keine Gefahr etwaszu vergessen - weniger fehleranfällig
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Outline
1 Erste Schritte
2 Grundbegriffe des Web
3 PHP Programmierung
4 MySQL DatenbankenEinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
5 Website mit DatenbankanbindungK. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
DatenbanksystemDatenbank und Datenbankmanagementsystem
Datenbanksystem dient der Speicherung und Verwaltungvon Daten
besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)
Datenbank: strukturiert abgelegte Daten
zu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition
Datenbankmanagementsystem: Software zur Verwaltungder Daten
Datenbank definieren, erzeugen, manipulieren
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
DatenbanksystemDatenbank und Datenbankmanagementsystem
Datenbanksystem dient der Speicherung und Verwaltungvon Daten
besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)
Datenbank: strukturiert abgelegte Daten
zu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition
Datenbankmanagementsystem: Software zur Verwaltungder Daten
Datenbank definieren, erzeugen, manipulieren
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
DatenbanksystemDatenbank und Datenbankmanagementsystem
Datenbanksystem dient der Speicherung und Verwaltungvon Daten
besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)
Datenbank: strukturiert abgelegte Daten
zu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition
Datenbankmanagementsystem: Software zur Verwaltungder Daten
Datenbank definieren, erzeugen, manipulieren
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
DatenbanksystemDatenbank und Datenbankmanagementsystem
Datenbanksystem dient der Speicherung und Verwaltungvon Daten
besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)
Datenbank: strukturiert abgelegte Datenzu verwaltende Daten, z.B. Adressen
Datenbankschema: Metadaten zur DatenbankdefinitionDatenbankmanagementsystem: Software zur Verwaltungder Daten
Datenbank definieren, erzeugen, manipulieren
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
DatenbanksystemDatenbank und Datenbankmanagementsystem
Datenbanksystem dient der Speicherung und Verwaltungvon Daten
besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)
Datenbank: strukturiert abgelegte Datenzu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition
Datenbankmanagementsystem: Software zur Verwaltungder Daten
Datenbank definieren, erzeugen, manipulieren
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
DatenbanksystemDatenbank und Datenbankmanagementsystem
Datenbanksystem dient der Speicherung und Verwaltungvon Daten
besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)
Datenbank: strukturiert abgelegte Datenzu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition
Datenbankmanagementsystem: Software zur Verwaltungder Daten
Datenbank definieren, erzeugen, manipulieren
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
DatenbanksystemDatenbank und Datenbankmanagementsystem
Datenbanksystem dient der Speicherung und Verwaltungvon Daten
besteht aus Datenbanken undDatenbankmanagementsystem (DBMS)
Datenbank: strukturiert abgelegte Datenzu verwaltende Daten, z.B. AdressenDatenbankschema: Metadaten zur Datenbankdefinition
Datenbankmanagementsystem: Software zur Verwaltungder Daten
Datenbank definieren, erzeugen, manipulieren
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQL
DBMS
sehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-VersionRelationales DBMS
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQL
DBMSsehr verbreitet in Webanwendungen
auch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-VersionRelationales DBMS
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQL
DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungen
schwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-VersionRelationales DBMS
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQL
DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oracle
kostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-VersionRelationales DBMS
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQL
DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)
kostenpflichtige Enterprise-VersionRelationales DBMS
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQL
DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-Version
Relationales DBMS
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQL
DBMSsehr verbreitet in Webanwendungenauch eingebettet in anderen Anwendungenschwedische Firma MySQL AB, dann Sun Microsystems,dann Übernahme durch Oraclekostenlose Community-Version, freie Software (GPL)kostenpflichtige Enterprise-VersionRelationales DBMS
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Relationales Modell
E.F. Codd (1970)
hohe Verbreitung seit den 80er Jahren, z.B.
MySQLPostgreSQLOracle. . .
Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiertkeine Duplikate
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Relationales Modell
E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.
MySQLPostgreSQLOracle. . .
Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiertkeine Duplikate
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Relationales Modell
E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.
MySQL
PostgreSQLOracle. . .
Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiertkeine Duplikate
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Relationales Modell
E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.
MySQLPostgreSQL
Oracle. . .
Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiertkeine Duplikate
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Relationales Modell
E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.
MySQLPostgreSQLOracle
. . .
Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiertkeine Duplikate
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Relationales Modell
E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.
MySQLPostgreSQLOracle. . .
Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiertkeine Duplikate
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Relationales Modell
E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.
MySQLPostgreSQLOracle. . .
Datenbank als Sammlung von Relationen (Tabellen)
Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiertkeine Duplikate
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Relationales Modell
E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.
MySQLPostgreSQLOracle. . .
Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiertkeine Duplikate
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Relationales Modell
E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.
MySQLPostgreSQLOracle. . .
Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiert
keine Duplikate
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Relationales Modell
E.F. Codd (1970)hohe Verbreitung seit den 80er Jahren, z.B.
MySQLPostgreSQLOracle. . .
Datenbank als Sammlung von Relationen (Tabellen)Relation: Menge von Tupeln (Datensätzen, Zeilen)
unsortiertkeine Duplikate
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Client und Server
Datenbankserver : Software, die Datenbankdienste (einDatenbanksystem) anbietet
auch der Rechner, auf dem dieser Dienst läuft
Anwendung oder Client greift auf den Datenbankserver zu
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Client und Server
Datenbankserver : Software, die Datenbankdienste (einDatenbanksystem) anbietet
auch der Rechner, auf dem dieser Dienst läuft
Anwendung oder Client greift auf den Datenbankserver zu
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Client und Server
Datenbankserver : Software, die Datenbankdienste (einDatenbanksystem) anbietet
auch der Rechner, auf dem dieser Dienst läuft
Anwendung oder Client greift auf den Datenbankserver zu
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysql
Webinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter Datenbank
Zimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter Datenbank
Zimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter Datenbank
Zimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .
Webanwendungen
MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter Datenbank
Zimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter Datenbank
Zimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWiki
WordPressunsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter Datenbank
Zimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPress
unsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter Datenbank
Zimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPressunsere selbstprogrammierte Anwendung
. . .Anwendungen mit eingebetteter Datenbank
Zimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter Datenbank
Zimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter Datenbank
Zimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter DatenbankZimbra
. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
MySQLClients und Anwendungen
Kommandozeilenclient mysqlWebinterface phpmyadmin
MySQL GUI Tools
. . .Webanwendungen
MediaWikiWordPressunsere selbstprogrammierte Anwendung. . .
Anwendungen mit eingebetteter DatenbankZimbra. . .
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Erste Befehle
SHOW DATABASES zeigt alle Datenbanken
USE datenbank wählt Datenbank datenbank ausSHOW TABLES zeigt Tabellen der gewählten DatenbankDESCRIBE tabelle zeigt Spalten der Tabelle an
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Erste Befehle
SHOW DATABASES zeigt alle DatenbankenUSE datenbank wählt Datenbank datenbank aus
SHOW TABLES zeigt Tabellen der gewählten DatenbankDESCRIBE tabelle zeigt Spalten der Tabelle an
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Erste Befehle
SHOW DATABASES zeigt alle DatenbankenUSE datenbank wählt Datenbank datenbank ausSHOW TABLES zeigt Tabellen der gewählten Datenbank
DESCRIBE tabelle zeigt Spalten der Tabelle an
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Erste Befehle
SHOW DATABASES zeigt alle DatenbankenUSE datenbank wählt Datenbank datenbank ausSHOW TABLES zeigt Tabellen der gewählten DatenbankDESCRIBE tabelle zeigt Spalten der Tabelle an
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen I
SELECT
verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind
* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen
SELECT * FROM KundInnen
ORDER BY
sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen I
SELECT
verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind
* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen
SELECT * FROM KundInnen
ORDER BY
sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen I
SELECT
verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind
* bedeutet alle Spalten der Tabelle
SELECT Name,Vorname FROM KundInnen
SELECT * FROM KundInnen
ORDER BY
sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen I
SELECT
verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind
* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen
SELECT * FROM KundInnen
ORDER BY
sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen I
SELECT
verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind
* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen
SELECT * FROM KundInnen
ORDER BY
sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen I
SELECT
verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind
* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen
SELECT * FROM KundInnen
ORDER BY
sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen I
SELECT
verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind
* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen
SELECT * FROM KundInnen
ORDER BY
sortiert Ausgabe
SELECT Name,Vorname FROM KundInnen ORDER BYName
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen I
SELECT
verlangt Angabe von Spalte(n) und Tabellen, dieauszugeben sind
* bedeutet alle Spalten der TabelleSELECT Name,Vorname FROM KundInnen
SELECT * FROM KundInnen
ORDER BY
sortiert AusgabeSELECT Name,Vorname FROM KundInnen ORDER BYName
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Formatierung
Good PracticeSELECT * nicht in Anwendungen verwenden!
praktisch bei interaktivem Zugriff auf DBgefährlich in Anwendungen - das Datenbankschemakönnte sich z.B. geändert haben
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Formatierung
Good PracticeSELECT * nicht in Anwendungen verwenden!
praktisch bei interaktivem Zugriff auf DB
gefährlich in Anwendungen - das Datenbankschemakönnte sich z.B. geändert haben
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Formatierung
Good PracticeSELECT * nicht in Anwendungen verwenden!
praktisch bei interaktivem Zugriff auf DBgefährlich in Anwendungen - das Datenbankschemakönnte sich z.B. geändert haben
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen II
LIMIT
beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5
NULL
Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL
NULL
NULL ist etwas anderes als die Zahl Null oder ein leererString!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen II
LIMIT
beschränkt die Zahl der ausgegeben Einträge
häufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5
NULL
Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL
NULL
NULL ist etwas anderes als die Zahl Null oder ein leererString!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen II
LIMIT
beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniert
SELECT Name,Vorname FROM KundInnen LIMIT 5
NULL
Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL
NULL
NULL ist etwas anderes als die Zahl Null oder ein leererString!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen II
LIMIT
beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5
NULL
Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL
NULL
NULL ist etwas anderes als die Zahl Null oder ein leererString!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen II
LIMIT
beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5
NULL
Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL
NULL
NULL ist etwas anderes als die Zahl Null oder ein leererString!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen II
LIMIT
beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5
NULL
Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL
NULL
NULL ist etwas anderes als die Zahl Null oder ein leererString!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen II
LIMIT
beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5
NULL
Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL
NULL
NULL ist etwas anderes als die Zahl Null oder ein leererString!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen II
LIMIT
beschränkt die Zahl der ausgegeben Einträgehäufig mit ORDER BY kombiniertSELECT Name,Vorname FROM KundInnen LIMIT 5
NULL
Kein Eintrag (z.B. für Kundin Müller keine Telefonnummervermerkt): NULL
NULL
NULL ist etwas anderes als die Zahl Null oder ein leererString!
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Ergebnisse einschränken I
WHERE
schränkt Ergebnisse einSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’
SELECT Name FROM KundInnen WHERE Vorname ISNULL
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Ergebnisse einschränken I
WHERE
schränkt Ergebnisse ein
SELECT Name FROM KundInnen WHERE Stadt =’Salzburg’
SELECT Name FROM KundInnen WHERE Vorname ISNULL
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Ergebnisse einschränken I
WHERE
schränkt Ergebnisse einSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’
SELECT Name FROM KundInnen WHERE Vorname ISNULL
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Ergebnisse einschränken I
WHERE
schränkt Ergebnisse einSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’
SELECT Name FROM KundInnen WHERE Vorname ISNULL
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Ergebnisse einschränken II
AND und OR
verknüpfen mehrere BedingungenSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’ AND Vorname=’Clara’
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Ergebnisse einschränken II
AND und OR
verknüpfen mehrere Bedingungen
SELECT Name FROM KundInnen WHERE Stadt =’Salzburg’ AND Vorname=’Clara’
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Ergebnisse einschränken II
AND und OR
verknüpfen mehrere BedingungenSELECT Name FROM KundInnen WHERE Stadt =’Salzburg’ AND Vorname=’Clara’
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen einschränken III
UNION
vereinigt Ergebnisse(SELECT Name FROM KundInnen WHERE Stadt=’Salzburg’) UNION (SELECT Name FROMKundInnen WHERE Stadt = ’Wien’)
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen einschränken III
UNION
vereinigt Ergebnisse
(SELECT Name FROM KundInnen WHERE Stadt=’Salzburg’) UNION (SELECT Name FROMKundInnen WHERE Stadt = ’Wien’)
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Abfragen einschränken III
UNION
vereinigt Ergebnisse(SELECT Name FROM KundInnen WHERE Stadt=’Salzburg’) UNION (SELECT Name FROMKundInnen WHERE Stadt = ’Wien’)
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Ergebnisse einschränken IV
SELECT DISTINCT
gibt nur unterschiedliche Ergebnisse ausSELECT DISTINCT Stadt FROM KundInnen
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Ergebnisse einschränken IV
SELECT DISTINCT
gibt nur unterschiedliche Ergebnisse aus
SELECT DISTINCT Stadt FROM KundInnen
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
EinführungÜberblick verschaffenEinfache AbfragenErgebnisse einschränken
Ergebnisse einschränken IV
SELECT DISTINCT
gibt nur unterschiedliche Ergebnisse ausSELECT DISTINCT Stadt FROM KundInnen
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Outline
1 Erste Schritte
2 Grundbegriffe des Web
3 PHP Programmierung
4 MySQL Datenbanken
5 Website mit DatenbankanbindungDatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Datenbankverbindung
vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werden
Verbindungsaufbau kann fehlschlagen
Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )
Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Datenbankverbindung
vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen
Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )
Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Datenbankverbindung
vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen
Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .
Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )
Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Datenbankverbindung
vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen
Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )
Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Datenbankverbindung
vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen
Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )
Verbindung kann für mehrere Datenbankabfragen benutztwerden
nicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Datenbankverbindung
vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen
Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )
Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerden
nach Ende des php-Skripts wird automatisch getrennt
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Datenbankverbindung
vor Verwendung der Datenbank muß eine Verbindung zumDatenbankserver aufgebaut werdenVerbindungsaufbau kann fehlschlagen
Datenbankserver down, Firewall falsch konfiguriert,Verbindungsdaten fehlerhaft,. . .Fehlerfall berücksichtigen (Meldung undProgrammabbruch,. . . )
Verbindung kann für mehrere Datenbankabfragen benutztwerdennicht mehr benötigte Verbindung kann manuell getrenntwerdennach Ende des php-Skripts wird automatisch getrennt
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Datenbankinhalt
Datenbankinhalte sind u.U. unsicher
Ergebnisse von Datenbankabfragen ggf. vor weitererVerwendung unschädlich machengeeignet escapen
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Datenbankinhalt
Datenbankinhalte sind u.U. unsicherErgebnisse von Datenbankabfragen ggf. vor weitererVerwendung unschädlich machen
geeignet escapen
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Datenbankinhalt
Datenbankinhalte sind u.U. unsicherErgebnisse von Datenbankabfragen ggf. vor weitererVerwendung unschädlich machengeeignet escapen
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
SQL Injection
BeispielSELECT user,pw FROM usersWHERE user=’$user’ and pw=’$pw’
$pw="x’ OR ’’=’"
SELECT user,pw FROM usersWHERE user=’foo42’ and pw=’x’ OR ’’=’’
Abwehr
Eingaben für SQL escapen oderbesser: Prepared Statements
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
SQL Injection
BeispielSELECT user,pw FROM usersWHERE user=’$user’ and pw=’$pw’
$pw="x’ OR ’’=’"
SELECT user,pw FROM usersWHERE user=’foo42’ and pw=’x’ OR ’’=’’
Abwehr
Eingaben für SQL escapen oderbesser: Prepared Statements
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
SQL Injection
BeispielSELECT user,pw FROM usersWHERE user=’$user’ and pw=’$pw’
$pw="x’ OR ’’=’"
SELECT user,pw FROM usersWHERE user=’foo42’ and pw=’x’ OR ’’=’’
Abwehr
Eingaben für SQL escapen oderbesser: Prepared Statements
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
SQL Injection
BeispielSELECT user,pw FROM usersWHERE user=’$user’ and pw=’$pw’
$pw="x’ OR ’’=’"
SELECT user,pw FROM usersWHERE user=’foo42’ and pw=’x’ OR ’’=’’
AbwehrEingaben für SQL escapen oder
besser: Prepared Statements
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
SQL Injection
BeispielSELECT user,pw FROM usersWHERE user=’$user’ and pw=’$pw’
$pw="x’ OR ’’=’"
SELECT user,pw FROM usersWHERE user=’foo42’ and pw=’x’ OR ’’=’’
AbwehrEingaben für SQL escapen oderbesser: Prepared Statements
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Prepared Statements
trennen SQL-Logik und Dateneingabe
schützen dadurch vor SQL Injection Angriffenzusätzliches escapen nicht erforderlichggf. Performanzgewinn
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Prepared Statements
trennen SQL-Logik und Dateneingabeschützen dadurch vor SQL Injection Angriffen
zusätzliches escapen nicht erforderlichggf. Performanzgewinn
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Prepared Statements
trennen SQL-Logik und Dateneingabeschützen dadurch vor SQL Injection Angriffenzusätzliches escapen nicht erforderlich
ggf. Performanzgewinn
K. Puschke phpMySQL
Erste SchritteGrundbegriffe des WebPHP ProgrammierungMySQL Datenbanken
Website mit DB-Anbindung
DatenbankverbindungWebseiten mit DatenbankinhaltenSQL Injection
Prepared Statements
trennen SQL-Logik und Dateneingabeschützen dadurch vor SQL Injection Angriffenzusätzliches escapen nicht erforderlichggf. Performanzgewinn
K. Puschke phpMySQL