Themen:
- Formulare
- Sessions
- Dateien/Verzeichnisse
- Cross Site Skripting - XSS
- Kommunikation zwischen Webbrowser/Webserver
- HTTP-Protokoll
- Cookies
DNS-Server und Webserver: Unterschiedliche Server
1.) Name des Servers
2.) ...
Anfrage des Webbrowsers
GET index.php HTTP/1.1.
Host: localhost
Antwort:
HTTP/1.1 200 OK
Date:
Server:
X-Powerd-By:
Transfer-Encoding:
Content-Type:
201b
<body>...
Response-Code: 200 OK, Seite wurde gefunden
201b bedeutet: 8129 = 8kByte - so lang sind die Daten
1.) Request
2.) Response
- Nachrichtenkopf: Header
- Response-Code
- Nachrichtenkörper: Body
8 verschiedene Anfrage-Typen: Response-Types:
- GET
- POST (Gleich wie GET, aber eventuell andere Parameter)
- HEAD (Das gleiche, aber ohne BODY)
- PUT (Lädt Datei auf Server hoch)
- DELETE (Löscht Datei auf dem Server)
- TRACE (Der Server liefert die Antwort, wie er sie bekommen hat - wurde unterwegs manipuliert?)
- OPTIONS
- CONNECT (Verschlüsselte Verbindung über PROXY)
Response-Code
200 OK
301 Moved Permanently
400 Bad Request
404 Not found
Cookies: HTTP: Zustandsloses Protokoll
Der Wert eines Cookies kann im HTTP-Header übertragen werden
Nutzen:
- Speichern von benutzerdefinierten Einstellungen
- Sessions
- Sammeln von Surfgewohnheiten
Sitzungscookies
<?php
setcookie ("meinCookie", "Inhalt des Cookies", time()+3600);
echo "Cookie wurde gesendet.<BR />\n";
?>
<A HREF="getcookie.php">Cookie auslesen</A>
PHP-Beispiel-Codes
- setcookie.php
- getcookie.php
PHP-Functions:
- setcookie (...)
- getcookie (...)
Parameter der Funktion cookie
- Name des Cookies
- Inhalt des Cookies
- Abgelaufen
(3 Parameter)
Zugriff auf Cookie
$_COOKIES ["Name des Cookies"];
$_COOKIES [];
Globale Variablen
$_GET []: Für Addressleiste
$_POST []: Für Formulare
$_COOKIES []: Für Cookies
Stichwort: Global assoziatives Array
Formulare, was lernen?
- Formulare entwerfen
- Listen und Mehrfachauswahlen
- Benutzereingaben überprüfen
- Affenformular
- Übertragungsmöglichkeiten
- Passwortabfrage
Formulare bestehen aus zwei Komponenten
- HTML-Code
- Skript (PHP, ..)
<HTML>
<HEAD><TITLE>Formular</TITLE></HEAD>
<BODY>
<FORM ACTION="formular1.php" METHOD="GET">
Vorname: <INPUT TYPE="text" NAME="vorname" /> <BR />
Nachname: <INPUT TYPE="text" NAME="nachname" /> <BR />
<INPUT TYPE="submit" VALUE="Los gehts!" />
</FORM>
</BODY>
</HTML>
Formulare werden mit dem FORM-Tag definiert.
- FORM-Tag
- Attribut ACTION
- Parameter POST (Welcher HTTP-Request kommt zum Einsatz)
Eingabefelder:
- Textfelder TYPE="text"
- Passwordfelder TYPE="password"
- Checkboxen TYPE="checkbox"
- Schaltflächen TYPE="submit", verbunden mit ACTION
NAME: Eindeutiger Name
Entweder POST oder GET
$_POST ["name1"];
$_GET ["name2"];
Listen in Formularen
SELECT-Tag
<HTML>
<HEAD><TITLE>Einfache Liste</TITLE></HEAD>
<BODY>
<FORM ACTION="list.php" METHOD="GET">
<SELECT NAME="auswahl">
<OPTION>Apfel</OPTION>
<OPTION>Birne</OPTION>
<OPTION>Banane</OPTION>
<OPTION>Grapefruit</OPTION>
</SELECT>
<INPUT TYPE="submit" VALUE="Abschicken">
<FORM>
</BODY>
</HTML>
echo $_GET ['auswahl'];
Mehrfachauswahlen - SELECT-Tag, MULTIPLE Attribut
<?php
$wahl = $_GET['auswahl'];
for ($i=0; $i < sizeof($wahl); $i++) {
$wert = current($wahl);
echo $wert ."<BR />\n";
next($wahl);
}
?>
isset ()