Praktikum im Grundstudium

Ähnliche Dokumente
Internet Praktikum im Grunstudium Formularwerte und Datenbanken Speichern, Lesen und Aufbereiten. Dr. Guido Rößling Dipl.-Ing.

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen

Praktikum im Grundstudium

1)Login Funktion ohne Datenbank

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Erstellt bei Teris Cooper Freie Nutzung des PDF Dokuments.

PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern

MySQL, Java und einiges mehr

Diese neuen Gestaltungsmöglichkeiten können nun auf den Web-Anzeigenmarkt angewandt werden: Wissensbaustein»Anzeigenmarkt: CSS-Einsatz«(S.

Internet-Technologien

Perl-Praxis. CGI-Skripte. Jörn Clausen

Einführung in PHP und MySQL

Folien php/mysql Kurs der Informatikdienste

Folien php/mysql Kurs der Informatikdienste

HTML Scripting. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 06. Dezember 2017

Grundlagen. Wie sind PHP-Dateien aufgebaut?

Web-Anwendungen Teil 2 PHP kl. Studienprojekt (Praktikum) Winter 2014/ Daniel Fett

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

Web-basierte Anwendungssysteme PHP Teil 2

W7 Projekt im Zusammenhang Gästebuch

Play Framework, MySQL, JPA, HQL, HTML, jquery,

PHP-5-Zertifizierung. Block 12 Security.

PHP JavaScript Kapitel 9. Java-Script-Objekte und das Event-Modell

Perl-Praxis. CGI-Skripte. Jörn Clausen Jens Reeder, Jan Krüger

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (michael.kluge@tu-dresden.

Das Einsteigerseminar ASP

"Die HTML-PHP-Schnittstelle -- Ein- und Ausgabe der Daten"

Folien php/mysql Kurs der Informatikdienste

Separierung der Darstellung durch Templates

PHP Schulung Beginner. Newthinking Store GmbH Manuel Blechschmidt

easylearn Webservice lsessionservice Interface für Single Sign On (SSO)

Klausur im Modul: Softwaretechnik (SWT) - WEB

MySQL, phpmyadmin & SQL. Kurzübersicht

Datenbanksysteme SS 2007

JSP Usereingabe. Inhalt. 1 Zielsetzung. SEW(3.Jg) Unterlagen zu Java Server-Pages Teil 2

PHP Übungsaufgabe 2 1 / 5. Doing Web Apps. PHP Übungsaufgabe 2

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 5 Formulare

Entwicklung einer Webseite zur Verwaltung von Prüfungsterminen

W7 Projekt im Zusammenhang Gästebuch

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

ARDS-Projekt. Datenbankentwicklung für medizinische Auswertungen. Dr. Thomas Meinike

FileMaker und PHP Workshop

Einführung in Imperia für Systembetreuer

Funktionen nur wenn dann


Charles Wyke-Smith. Codin' forthe Web. Ein Leitfaden für Designer zur Entwicklung dynamischer Websites ^ADDISON-WESLEY

Partner-ID in eigenen Seiten verwenden

Übungen. DI (FH) Levent Öztürk

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS 2015 PHP MVC. Dr. Christian Senger. PHP MVC 1 von 21

Übung zur Vorlesung Multimedia im Netz

PHP, Ajax und JavaScript

Aufgaben HTML Formulare. Prof. Dr. rer. nat. Claus Brell, Wirtschaftsinformatik, Statistik

PHP-Skripte in Anwendung mit einer MySQL-Datenbank am Beispiel der Datenbank Personalwesen

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Lösungen der Aufgaben zur Klausurvorbereitung. Aufgabe 1: a) was sagen die folgenden Eigenschaften eines XML-Dokumentes aus? wohlgeformt gültig

Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode

Web-basierte Anwendungssysteme PHP-Einführung

Grundlagen der Informatik 2

Um einen neuen Konnektor anzulegen klicken sie auf die Schaltfläche Neue Konfiguration > Befüllung folgender Felder:

mod_ireport ESS Enterprise Solution Server Version 1.0 / Release 6.0 ESS Programmierbeispiele 1

Multimedia im Netz Wintersemester 2011/12

Dateien lesen und schreiben mit php

Thomas Theis PHP4. Webserver-Programmierung für Um- und Einsteiger. Galileo Press

VERARBEITUNG VON FORMULARDATEN

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und

Matthias-Claudius-Gymnasium Fachcurriculum Informatik

5. Übung: PHP-Grundlagen

Projekt Online-Shop:

XHTML. Lernfragen zu XHTML. Was ist HTML? Überblick

Grundlagen Internet-Technologien INF3171

Dokumentation zum php-mysql Projekt: Themenvergabe

Java Server Pages (JSP)

WebApp mit Node und Express

Funktionen. - sind kleine, meist ausgelagerte Programme bzw. Programmfragmente. - können Werte zurückgeben, z.b. Berechnungen

DOKUMENTATION. CaptchaAd mit Java. Entpacken und Hochladen. Die Schritte zur Integration des CaptchaAd-Modul im Einzelnen. Informationen von CaptchaAd

Abbildung : Aufruf des Wikis (Server: Interner Web-Server HTTPD auf Port 8080)

Multimedia im Netz Wintersemester 2013/14. Übung 10 (Nebenfach)

Wie schreibe ich ein Blog in eine Datenbank (Sqlite)

2. Webapplikationen. Webzugang. Präsentation. Geschäftslogik. Browser. Datenhaltung. JSP, Servlets, ASP, PHP. HTML + JavaScript? +Java Applets?

JavaScript clientseitige Programmiersprache zur Dynamisierung von Internetseiten


Unsere Webapplikation erweitern

Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit dem Web-Framework Django

Multimedia im Netz Wintersemester 2013/14. Übung 01 (Hauptfach)

Entwicklung einer Webseite zur Verwaltung von Prüfungsterminen

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Hochschule Darmstadt Fachbereich Informatik

Hochschule Darmstadt Fachbereich Informatik

Einführung in PHP. NLI-Kurs BBS am Museumsdorf Cloppenburg Außenstelle Löningen

TYPO3 und TypoScript

Interaktive Webseiten mit PHP und MySQL

Funktionen nur wenn dann

Um eine Zusammenfassung zu erstellen, müssen Sie folgendes tun:

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach)

Anwendersoftware. Thema 7 Dialoggestaltung mit HTML-Formularen. Sommersemester Dr. Henry Herper

Embedded Webserver in Forth

Desktop-Wikis am Beispiel von TiddlyWiki

Transkript:

Praktikum im Grundstudium Teil 6: Dynamische Content-Generierung aus Datenbank-Daten als valid XHTML Aktueller Zustand Sie sollten schon in der Lage sein Formulare in XHTML zu erzeugen (statisch oder dynamisch), Formulare zu überprüfen (leere Felder, ) Ausgefüllte Formulardaten entgegenzunehmen und dem Nutzer anzuzeigen Formularwerte in die Datenbank zu speichern Formularwerte aus der Datenbank zu lesen Datenbankeinträge zu ändern Was fehlt? Diverse Kleinigkeiten Alle diese Dinge zusammenbringen Dynamische Generierung der Inhalte 1

Korrekter XHTML-Header Auslassung aus Foliensatz 1 Bekannt: Jedes XHML-Dokument sollte mit <html xmlns= beginnen Ausgelassen: DOCTYPE (für SGML-Konformität) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns= "http://www.w3.org/1999/xhtml"> </html> Ohne DOCTYPE Fehler bei W3C-HTML-Validator Der Lebenszyklus eines Formulars/Skripts Wie kann ein Formular so lange angezeigt werden, bis alle Eingaben korrekt sind? Ansatz bei interaktiven Programmen á la GdI 1: Schleife um Lesen der Eingabe Schleife wird verlassen, wenn die Eingabe korrekt ist $iscorrect = false while (!$iscorrect) { Lesen der Eingabe Prüfen der Eingabe Setzen von $iscorrect = true bei vollständiger Eingabe Funktioniert bei Web-Anwendungen leider nicht! Grund: Mit jedem Browser-Aufruf wird das Skript neu ausgewertet 2

Der Lebenszyklus eines Formulars/Skripts Lösung Skript hat sich selbst als action= Bei Aufruf: Auswerten der Parameter Ohne Parameter = Aufruf kam zum ersten Mal Mit Parameter Überprüfen der Parameter auf Gültigkeit Markieren der ungültigen Elemente Der Lebenszyklus eines Formulars/Skripts Beispiel <html> <head><title>test</title></head> <body> <form action="form.php"> <?php if ($_REQUEST["hallo"] == '') echo '<p style="color: red">'; else echo '<p>'; echo 'Hallo: <input type="text" name="hallo" value="'; echo $_REQUEST["hallo"]; echo '" /></p>';?> </form> </body> </html> 3

Der Lebenszyklus eines Formulars/Skripts http://.../form.php Browser Eingabe Browser Sendet Anfrage form.php ohne Parameter Ergebnis von form.php ohne Parameter Sendet Anfrage form.php Parameter: Ausgefüllter Wert Webserver Webserver ergänzt Browser Ergebnis von form.php mit Parameter Sendet Anfrage form.php Parameter: Versteckte Elemente Wiederholung aus Foliensatz 3: Versteckte Elemente Werden nicht angezeigt Können nicht verändert werden Werden aber an Server übertragen User-ID in verstecktem Element speichern, bei Übermittlung des Formulars passenden Benutzer suchen Definition <input type="hidden" name="id value= Wert" /> Sehr praktisch für die Überprüfung Wird das Formular zum ersten mal angezeigt? Keine Fehlermarkierung Verstecktes Element nicht vorhanden: erste Anzeige if ($_REQUEST["id"]!= "Wert")... 4

Modularisierung Durch den include-befehl können Seiten in Module aufgeteilt werden include($dateiname); Wertet das als Dateiname gegebene PHP-Skript aus Zeigt das Ergebnis des Skripts an der Stelle des include- Befehls an Verwendung: Einzelne Vorlage-Dateien für verschiedene Bereiche der Seite Datei mit Hilfsfunktionen, die oft benötigt werden Umleitung auf andere URLs Umleitung auf neue URL häufig sinnvoll Umzug in anderes Verzeichnis/auf andere Server merkbare URL wird in computerlesbare URL umgewandelt Formular korrekt eingegeben neue Anzeige, obwohl action= das Formular als URL definiert http://.../form.php http://.../done.php Browser vollständige Eingabe Browser Neue/falsche Eingabe 5

Umleitung auf andere URLs PHP-Funktion für Umleitung function goto($location) { header('location: http://'.$_server['http_host']. dirname($_server['php_self']).'/'.$location); Kandidat für Datei mit Hilfsfunktionen Umleitung muss vor der Ausgabe von Daten passieren! noch vor XHTML-Header Verwendung <?php include("util.php"); if (eingabekorrekt()) { Speichern der Werte in die Datenbank goto("done.php");?> <html> Ausblick: Template Engines Validierung von Eingabedaten häufigste Anwendung von Skripts Durch Web-Lebenszyklus etwas unpraktisch Vorgestellte Techniken reichen für Praktikum aus Template Engines Fertige Lösungen für automatische Erzeugung von dynamischen Seiten Trennen Skript und Layout einfacher für Nichtprogrammierer (?) z.b.: Smarty - http://smarty.php.net/ Beispiele auf Webseite Einsatz im Praktikum erlaubt, aber nicht verpflichtend 6

Aus Datenbank erstellter Content Never do what SQL can do for you Verwenden von WHERE- und HAVING-Klauseln, anstelle Daten in PHP zu prüfen Sortierung mittels ORDER gewährleisten Verwenden von LIMIT bei Anzeige nicht-vollständiger Anzeige Ergebnisse 1-10 von ungefähr 241,000,000 Dynamisches Generieren von SQL-Statements SQL-Statements sind normale Strings können nach Belieben zur Laufzeit erstellt werden Aus Foliensatz 5: Vorsicht vor Böswilligen Abfragen bei SQL-Abfragefeldern Entschärfen der Eingabe mit addslashes sorgt dafür, dass aus WHERE nicht zwei Abfragen werden Bei Syntaxfehlern in dynamisch generierten Statements Fehlermeldung von PHP Unterdrückung mittels @ vor mysql_query Zum Entwickeln Anzeige der Fehlermeldung sinnvoll 7

Dynamisches Generieren von SQL-Statements Beispiel: Einfache Suche in einem Feld... <form action="search.php"> Name: <input name="query" type="text" /> </form> <?php if ($_REQUEST['query']!= '') { $result = @mysql_query("select * FROM users WHERE ". name = '". addslashes($_request['query']. "'");?>... while ($person = @mysql_fetch_array($result)) { // Ausgabe Verwenden von XHTML-Features für automatische SQL-Erstellung Gegeben: Datenbank mit vordefinierten Feldern Gesucht: Deutsches Formular, soll Sortierung nach Belieben erlauben <form action="sort.php"> Sortierung nach: <select name="order" size="1"> <option value="firstname">vorname</option> <option value="lastname">nachname</option> <option value="company">firmenname</option> </select> </form> FirstName LastName Company <?php $order = _REQUEST['order']; if ($order == '') $order = 'FirstName'; $result = @mysql_query("select * FROM users ORDER BY $order");?> 8

Automatisches Erstellen komplexer SQL-Anfragen Suche mit mehreren optionalen Elementen SQL-Anfrage muss zu suchende Felder in WHERE mit AND verbinden Syntax-Einschränkung: AND nur zwischen Feldern erlaubt, nicht am Anfang oder Ende Automatisches Erstellen komplexer SQL-Anfragen Mehrere Möglichkeiten für korrekte Syntax Testen, ob noch Nachfolger vorhanden ist wenn ja, dann AND hinzufügen Einfacher mit Trick: AND immer hinzufügen Am Ende immer 1 hinzufügen Ergebnis: SELECT WHERE foo = 'x' AND bar = 'y' AND 1 9

Automatisches Erstellen komplexer SQL-Anfragen function makequery() { $query = 'SELECT * FROM publications WHERE '; $fields = array('author', 'project', 'year'); foreach ($fields as $element) { if ($_REQUEST[$element]!= '') $query.= "$element = '". addslashes($_request[$element]). "' AND "; if ($_REQUEST['search']) { $query.= "(keyword LIKE '%". addslashes($_request['search']). "%' OR abtract LIKE '%". addslashes($_request['search']). "%') AND "; $query.= "1"; return $query; Beispiel Automatisches Erstellen komplexer SQL-Anfragen Guido Rößling algorithmen SQL-String 'SELECT * FROM publications WHERE author='guido Rößling' AND (keyword LIKE '%algorithmen%' OR abstract LIKE '%algorithmen%') AND 1 10

Projekt Erstellen einer Mediendatenbank In Ausbaustufen unterteilt Ausbaustufen bauen aufeinander auf Sind in sich abgeschlossen Erzielte Ausbaustufe bestimmt bestenfalls erreichbare Note Abnahme Kurze Dokumentation des Projekts Testat der Lehrveranstaltungsleiter in der letzten Vorlesungswoche 11