webentwicklung mit php und mysql

Post on 24-May-2015

2.379 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Einstiegskurs PHP/MySQL. Die Folien enthalten nicht die zugehörigen Übungsaufgaben und Codebeispiele.

TRANSCRIPT

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

top related