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 ... 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 \n"; ?> Cookie auslesen 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, ..) Formular
Vorname:
Nachname:
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 Einfache Liste
echo $_GET ['auswahl']; Mehrfachauswahlen - SELECT-Tag, MULTIPLE Attribut \n"; next($wahl); } ?> isset () Affenformular Passwörter: FORM INPUT TYPE="password" Dann mit MD5 speichern md5 ("password"); Sessions: 1.) session_start (); 2.) Session-ID 3.) $_SESSION [] Session-ID's ohne Cookies seit PHP 5.3 nicht mehr unterstützt session_destroy (); DBMS Relationale Datenbank, Relation, Tupel Datentypen: - Ganzzahlen - Fließkommazahlen - Zeichenketten - binäre Datentypen BIT TINYINT BOOL BOOLEAN SMALLINT MEDIUMINT INT INTEGER BIGINT Fließkommazahlen FLOAT DOUBLE DECIMAL CHAR VARCHAR (M) TINYTEXT TEXT MEDIUMTEXT LONGTEXT BINARY VARBINARY TINYBLOB BLOB MEDIUMBLOB LONGBLOB DATE TIME DATETIME TIMESTAMP CREATE TABLE mysql -u root -p -v < xyz.sql DROP DATABASE 'xyz' CREATE DATABASE 'xyz' DROP TABLE 'abc' CREATE TABLE 'abc' ('name1' VARCHAR (64), 'name2' VARCHAR (64)) INSERT INTO 'abc' VALUES ("Hallo", "Welt"); SHOW TABLES IN 'xyz' USE 'xyz' SELECT * FROM 'abc' SELECT * FROM 'abc' WHERE expression INSERT INTO 'abc' ('name1', 'name2') VALUES ("Hallo", "Welt"); DELETE FROM 'abc' WHERE expression SELECT * FROM 'abc' JOIN 'def' USING SHOW DATABASES; SET PASSWORD; mysql_connect (); mysql_close (); mysql_query (); mysql_error (); mysql_real_escape_string (); mysql_select_db (); mysql_fetch_row (); mysql_fetch_assoc (); mysql_num_rows (); mysql_num_fields (); mysql_result (); $handle = mysql_connect ('127.0.0.1', user, password); if ($handle) ... else ... $query = "SELECT * FROM 'abc'; $result = mysql_quere ($query); $row = mysql_fetch_assoc ($result);