Programmieren von Webinformationssystemen



Ähnliche Dokumente
Programmieren von Webinformationssystemen

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Multimedia im Netz Wintersemester 2011/12

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

Objektorientierte Programmierung für Anfänger am Beispiel PHP

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

Einführung in die Scriptsprache PHP

Grundlagen von Python

Java-Schulung Grundlagen

Einführung in PHP. (mit Aufgaben)

Objektorientierung: Klassen und Objekte

Client-Server-Beziehungen

Einführung in die Java- Programmierung

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Einführung in die Programmierung

Swetlana Stickhof. Universität Heidelberg

5. Tutorium zu Programmieren

Große Übung Praktische Informatik 1

Objektorientierte Programmierung

Der/die KursleiterIn kann sowohl die Einträge als auch die geposteten Kommentare in allen drei Blog- Typen bearbeiten, kommentieren und löschen.

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Adminer: Installationsanleitung

Datenbanksysteme SS 2007

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Assoziation und Aggregation

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

PHP Programmierung. Seminarunterlage. Version 1.02 vom

Kurzanweisung für Google Analytics

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

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

Content Management System (CMS) Manual

Einführung in Javadoc

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Programmieren in Java

Grundlagen der Informatik 2

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

NODELOCKED LIZENZ generieren (ab ST4)

Übersicht Programmablaufsteuerung

Unsere Webapplikation erweitern

Java: Vererbung. Teil 3: super()

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Java Kurs für Anfänger Einheit 5 Methoden

FileMaker und PHP Workshop

Einführung in die Programmierung Blockkurs Java

Einrichtung Secure-FTP

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Datenbanken 1. Einführung und Zugänge für die eingesetzten Resourcen. ISWeb - Information Systems & Semantic Web University of Koblenz Landau, Germany

Einführung in die Informatik Tools

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

Vererbung & Schnittstellen in C#

Prinzipien Objektorientierter Programmierung

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Lehrer: Einschreibemethoden

Erwin Grüner

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

XML-Namensräume. Marc Monecke

Factory Method (Virtual Constructor)

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Eclipse und Java

Die aktuelle Version des SPIEGEL-Bestseller-Widgets können Sie auf unserer Website unter Entwicklertools herunterladen.

HSR git und subversion HowTo

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

Python SVN-Revision 12

Objektorientierte Programmierung

Objektorientiertes JavaScript

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck

Vorkurs C++ Programmierung

Dreamweaver 8 Einführung

Zugriff auf Daten der Wago über eine Webseite

Programmieren 2 (Prof. Hasbargen) Klausur

Programmieren in Java

Nathan Burgener. Design by Contract. Modul SWE

In 5 Klicks zum Vorlesungsverzeichnis Stud.IP und TYPO3 integriert

Einführung in die Programmierung für Wirtschaftsinformatik

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: CF Carola Fichtner Web-Consulting

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Objektorientierte Programmierung. Kapitel 12: Interfaces

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

C# im Vergleich zu Java

Microsoft Access 2013 Navigationsformular (Musterlösung)

Gezielt über Folien hinweg springen

Kleines Handbuch zur Fotogalerie der Pixel AG

Sessions mit PHP. Annabell Langs Sessions in PHP - Annabell Langs 1

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

kleines keyword brevier Keywords sind das Salz in der Suppe des Online Marketing Gordian Hense

IAWWeb PDFManager. - Kurzanleitung -

Web-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Tutorium Rechnerorganisation

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

PHP-Schwachstellen und deren Ausnutzung

SEMINAR Modifikation für die Nutzung des Community Builders

Transkript:

Programmieren von Webinformationssystemen Nikolaus Krismer Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1

PHP Ursprünglich: Personal Homepage Tools Rekursives Akronym: PHP Hypertext Preprocessor Schwach typisierte Skriptsprache Syntax an C angelehnt Code kann in HTML eingebettet werden <?php echo "Hello World";?> Objektorientierter & Prozeduraler Stil http://php.net/manual/de/langref.php 2

* Der TIOBE-Index ist ein wenig mit Vorsicht zu genießen. Siehe dazu Kapitel Kritik auf Wikipedia 3

Variablen Variablenzuweisung $variable_identifier = Wert Beispiel: $x = 5; $x = "Hallo"; Variablendeklaration: erfolgt automatisch bei erster Verwendung bzw. Zuweisung Typ wird automatisch festgestellt 4

Arrays $myarray = array(1,2,3,4,5,9,234); Zugriff auf Array: echo $myarray[0]; $myarray[3] = 15; Assoziative Arrays möglich: $myarray['name'] = 'Wolfgang'; $myarray['address'] = 'Uni IBK'; oder $myarray = array('name' => 'Wolfgang', 'address' => 'Uni IBK'); 5

Operatoren & Kontrollstrukturen Operatoren angelehnt an C + - ++ -- * / + == String Konkatenationsoperator:. (Punkt) Kontrollstrukturen if ($x==5) { echo "x ist 5"; else { echo "x ist nicht 5, sondern $x"; 6

Kontrollstrukturen cont. Sonstige übliche Kontrollstrukturen switch (break) for while (do-while) elseif break / continue... http://de.php.net/manual/de/language.control-structure s.php 7

Funktionen Beispiel einer Funktion: function fun_identifier($param1, $param2) { $sum = $param1 + $param2; return $sum; Variablen nur innerhalb Funktion gültig Zugriff auf globale Variablen über Array $GLOBALS $globvar1 = 10; function globtest() { return $GLOBALS['globVar1']; 8

Objektorientierung Beispiel einer Klasse class Animal { public $name; protected $weight; private $friends; public function getfriends() { return $this >friends; //voller Zugriff von //außen //Zugriff bei Vererbung //Zugriff nur innerhalb //Klasse Zugriff aus Objekt innerhalb Klasse über $this 9

Objektorientierung cont. Vererbung class Tiger extends Animal {... Abstrakte Klassen (seit PHP 5.0) abstract class AbstrakteKlasse { // Methode muss implementiert werden abstract protected function getinfo(); // gemeinsam genutzte Methode public function getsinnfrei() { return 0; 10

Objektorientierung cont. Traits (ab PHP 5.4) trait getinfotrait { function getinfo() {... class myclass extends otherclass { use getinfotrait; Interfaces (Änderung in PHP 5.3.9) interface mytemplate { public function getinfo($param1); 11

Besondere Methoden (Magic Methods) Methoden beginnend mit haben spezielles Verhalten Konstruktur/Destruktor: construct() destruct() tostring() definiert Verhalten von Klasse als String Wenn unerlaubter Zugriff auf Member (oder Member in Klasse nicht verfügbar) set($name, $value) get($name) Wenn unerlaubter Zugriff auf Methode (oder Methode in Klasse nicht verfügbar) call($name, array $arguments) 12

Namespaces Seit PHP 5.3 namespace Foo\Bar; class myclass { ; class Foo\Bar\myClass { // selbe Bedeutung $c = new myclass(); // Klasse im aktuellen NS $global_c = new \myclass(); // globale Klasse 13

Closures $numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]; $add = 2; $f = function($i) use ($add) { return $i + $add; ; $mapped = array_map($f, $numbers); echo implode(" ",$mapped); // Output: 3 4 5 6 7 8 9 10 11 14

Verwendung von Klassen class Animal { public $name; class Tiger extends Animal { public function makenoise() { return 'uaahhh'; $mytiger = new Tiger(); $mytiger >name = 'Lion'; echo $mytiger >makenoise(); 15

Exceptions function bad() { throw new Exception('Some Error'); try { bad(); catch (Exception $e) { echo 'Caught exception: '. $e getmessage(); 16

Best Practice Eine Klasse pro Datei (wie bei Java) Einbinden von Dateien durch: include/require bzw _once include_once(filename.php) require_once(filename.php) Dateibenennung nach Klassenname (wie bei Java) Keine Mischung Prozedural & OO in einer Datei 17

Dynamische Webseiten Reagieren auf Benutzer bzw. dessen Eingaben Geben angepasste Seiten (HTML) Code aus, abhängig von Eingaben bzw. anderen Bedingungen (z.b. Typ des Browser, Zeit, Wetter) Grundlegende Möglichkeit Eingaben oder andere Werte zu transportieren GET: über URI suche.php?plz=6020 POST: innerhalb HTTP Request (auch binäre Daten wie z.b. Bilder) 18

Übermittelte Werte in PHP verwenden Vordefinierte Variablen $_SERVER Umgebungsvariablen (Path,...) $_GET Variablen von GET-Request $_POST Variablen von POST-Request $_FILES Daten bei Datei-Upload... http://.../index.php?var1=5&var2=hallo <?php echo $_GET['var1'].$_GET['var2']; // Output: 5hallo?> 19

Einschub: HTML-Formulare 20

Session Management Seit PHP 4 eingebautes Session-Management Identifiziert Benutzer um HTTP-Stateless zu überwinden und Benutzer wiederzuerkennen session_start(); if (!isset($_session['start'])) { $_SESSION['start'] = time(); echo 'Startzeit der Session: '. $_SESSION['start']; 21

Einschub: HTTP - Cookies 22

PHP 7 Release noch 2015 2x schneller Operatoren: <=>,?? <=>: ($a < $b)? 1 : (($a > $b)? 1 : 0)??: isset($b)? $b : "default"; Scalar Type Hints / Return Type Hints https://www.digitalocean.com/company/blog/getting -ready-for-php-7/ https://www.zend.com/en/resources/php-7 23

Hilfreiche Links http://de.selfhtml.org/ (ausführlich, aber veraltet) http://www.php.net (sehr gute Doku + Comments) http://www.google.at ;) 24

Assignment 2 MyBlog Anzeigen von Beiträgen in Liste (mit Link zur Detail-Seite index.php? titel=beitragstitel, die dann angezeigt wird) Erstellen, Ändern, Löschen von Beiträgen Formular: Titel (eindeutig), Beitrag, Keywords Weitere Felder: Autor, Erstellungszeit (evtl. + Änderungszeit) Speicherung der Beiträgen in Session (Session soll auch nach Browser-Ende erhalten bleiben) keine Libraries und/oder Frameworks! (HTML, JS, CSS, PHP, etc...) 25