EWA PHP Einführung, CMS Prinzipien



Ähnliche Dokumente
Einführung in die Scriptsprache PHP

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

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

Programmieren von Webinformationssystemen

Objektorientierte Programmierung

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

Objektorientierung: Klassen und Objekte

Einführung in die Programmierung

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

Modul 122 VBA Scribt.docx

E-PRIME TUTORIUM Die Programmiersprache BASIC

Objektorientierte Programmierung für Anfänger am Beispiel PHP

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

5. Tutorium zu Programmieren

Einführung in die Java- Programmierung

Einführung in die C++ Programmierung für Ingenieure

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Einführung in Javadoc

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Einführung in das Web Content Management System (CMS) Typo3

HTML Formulare. Benutzerschnittstelle für interaktive Webseiten

Delegatesund Ereignisse

Übungen Programmieren 1 Felix Rohrer. Übungen

Graphic Coding. Klausur. 9. Februar Kurs A

Ich liebe Java && Ich liebe C# Rolf Borst

ASP: Active Server Pages

Kontrollstrukturen und Funktionen in C

Arrays. PHP JavaScript Kapitel 9

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Java: Vererbung. Teil 3: super()

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

PHP Programmierung. Seminarunterlage. Version 1.02 vom

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Programmieren von Webinformationssystemen

Java Einführung Collections

Multimedia im Netz Wintersemester 2011/12

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Prinzipien Objektorientierter Programmierung

.NET Code schützen. Projekt.NET. Version 1.0

Modellierung und Programmierung 1

Einführung in die Programmierung

Programmieren in Java

Grundlagen der Informatik 2

Content Management mit Open Source Beispiel: OpenCms

Linux Prinzipien und Programmierung

Klausur zur Einführung in die objektorientierte Programmierung mit Java

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Gebundene Typparameter

Objektorientiertes JavaScript

Programmierkurs Java

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

Themen. Web Service - Clients. Kommunikation zw. Web Services

Javakurs zu Informatik I. Henning Heitkötter

1 Vom Problem zum Programm

VisualBasic - Variablen

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Probeklausur: Programmierung WS04/05

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

Impressum. Herausgeber Telekom Deutschland GmbH Geschäftskunden Landgrabenweg Bonn

Große Übung Praktische Informatik 1

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

Grundkonstrukte der Objektorientierung in Java, C# und C++

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

4. AuD Tafelübung T-C3

Java Kurs für Anfänger Einheit 5 Methoden

Java-Schulung Grundlagen

Klausur in Programmieren

Erwin Grüner

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Einführung in PHP. (mit Aufgaben)

Programmierung in C. Grundlagen. Stefan Kallerhoff

Datenbanksysteme SS 2007

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Studentische Lösung zum Übungsblatt Nr. 7

Softwaretechnologie - Wintersemester 2012/ Dr. Günter Kniesel

Unsere Webapplikation erweitern

C# im Vergleich zu Java

VNUML Projektpraktikum

Einführung in die Programmierung für Wirtschaftsinformatik

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Vorkurs C++ Programmierung

PHP und MySQL. Sicherheit und Session-Handling mit PHP. Zellescher Weg 12 Willers-Bau A109 Tel

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Vererbung & Schnittstellen in C#

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Formulare & Zähler. Erstellen von Formularen & Zählern mit FrontPage- oder ASP-Erweiterungen ZUGEHÖRIGE INFORMATIONEN

Testen mit JUnit. Motivation

Java Einführung Abstrakte Klassen und Interfaces

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

AJAX Implementierung mit Joomla!

Transkript:

PHP Historie 1 EWA PHP Einführung, CMS Prinzipien 2 1995 Rasmus Lerdorf entwickelte in PERL Funktionen zur dynamischen Erstellung von Homepages: PHP P ersonal H ome P age, heute Hypertext Preprocessor (www.lerdorf.on.ca). Nov 1997 PHP 2.0.0 Jun 1998 PHP 3.0.0 Mai 2000 PHP 4.0.0 (erstes OO) Juli 2004 PHP 5.0.0 (Exceptions, SQLite, SimpleXML, DOM,...) Nov 2006 PHP 5.2.0 (Filter, Zip,...) Verbreitung Stellenanzeigen 3 TYPO3 Wallstreet Online Sueddeutsche.de 4 Suche für Deutschland (April 2007): monster.de: 545 jobpilot: 509 Onvista Ciao T-Online Deutsche Bank DPD E.ON Sixt Yahoo Lycos Quelle: http://www.dynamicwebpages.de/60.php-statistiken.php Ablauf CGI Ablauf Apache 5 Client <form> Request Formular Sendet Aufruf (führt aus) Web CGI = Schnittstellendefinition CGI Script erzeugt abfragen 6 <form> Request Formular Web PHP Modul Sendet Aufruf (führt aus) PHP Script erzeugt abfragen

Gedanken zu PHP Programmierstil 7 interpretiert Nicht typisiert Keine Namenräume Unicode ab Version 6 XML Open Source PHP SOAP Extensions OO Interfaces Abstrakte Klassen private,... Kon-/Destruktor Iterator Exif PDF Design Pattern 8 OO prozedural Ihre erste Programmiersprache war.. Prozedural oder Objektorientiert? Gehen Sie an Aufgaben eher.. Prozedural oder Objektorientiert? Sie denken/verwenden Entwurfsmuster.. Ja Nein Partnerarbeit PHP einbinden, Kommentare, Sprachbesonderheiten 9 Was sind typische Aufgaben für PHP (die mit /CSS/SSI nicht lösbar sind)? 10 echo 'Long Tags - empfohlen' /* für lange Kommentare */ // Einzeiler Stringverkettung erfolgt mit einem Punkt (.) und nicht mit + oder & Zugriff auf Klassenmethoden und -Member mit -> und nicht mit einem Punkt (Bsp: $file->getfilename()); Zugriff auf statische Methoden erfolgt mit :: Neben einem normalen Vergleich == gibt es auch einen typisierten Vergleich (===). pass by reference (Änderung gegenüber PHP 4) Konfiguration Variablen/Konstanten/include 11 PHP.ini (aktuelle Ini ist unter xampp\apache\bin) display_errors = On error_log = "C:\error.log" PHP Einstellung überprüfen mit phpinfo(); Apache (optional, falls Endung php unerwünscht) AddType application/x-httpd-php.htm.html 12 Variablen $name untypisiert, Deklaration nicht zwingend Typ der Variablen augrund letzter Zuweisung Konstanten: define("name",wert) Konstanten werden ohne $ über Namen angesprochen Datentypen: Boolean, Integer, Double, String, Array, Object DatentypenTyp-Casting möglich: $ganz=(int) "12.45"; funktioniert nicht mit Objekten! include "vars.php";include_once require "prepend.php";require_once

Arrays Kontrollstrukturen 13 array( 0 => array( "url" => "/", "title" => "Home" ),... $array = array("lastname", "email", "phone"); $comma_separated = implode(",", $array); echo $comma_separated; // lastname,email,phone 14 if - elseif - else for foreach while do - while switch break - continue try - catch - (kein finally) Klassen Iteratoren 15 interface protected / private / public / const extends (Vererbung) abstrakte Klassen Object cloning $bar = clone $foo; interface Fahren { public function schnell(); public function langsam(); class MeinAuto implements Fahren{ const ANZAHL_RAEDER = 4; function construct($baujahr, $marke, $km) {... function destruct() {...... class Bus extends MeinAuto { protected static $schlafplaetze = 4;... abstract class x { abstract public function y();... 16 class MyCollection implements IteratorAggregate { private $items = array(); private $count = 0; public function getiterator() { return new MyIterator($this->items); public function add($value) { $this->items[$this->count++] = $value; $coll = new MyCollection(); $coll->add('wert 1'); $coll->add('wert 2'); $coll->add('wert 3'); foreach ($coll as $key => $val) { echo "key/value: [$key -> $val]\n\n"; Quiz - Vorbereitung in Partnerarbeit Quiz 1/8 17 18 Wie können Kommentare innerhalb des PHP-Codes geschrieben werden? 1) // Kommentar 2) <!-- Kommentar --> 3) # Kommentar 4) /* Kommentar */ 5) {[ Kommentar ]

Quiz 2/8 Quiz 3/8 19 Was liefert $x = "1"; $y = 1; if ($x == $y) 1) wahr 2) falsch 20 Was wird ausgegeben? $gaensefuesse = " 'einfache' und \"mehrfache\"; Gänsefüßchen."; 1) Es wird ein Fehler ausgegeben, weil diese Zeile nicht korrekt ist. 2) einfache und mehrfache Gänsefüßchen. 3) 'einfache' und \"mehrfache\"; Gänsefüßchen. 4) 'einfache' und "mehrfache"; Gänsefüßchen. 5) Es wird gar nichts ausgegeben. Quiz 4/8 Quiz 5/8 21 Was wird ausgegeben? $a=5; echo ++$a; print $a; 1) 45 2) 55 3) 56 4) 66 5) 67 22 Wie muss der foreach-befehl aussehen, um ein assoziatives Array zu durchlaufen? 1) foreach ($array as $key => $value) { print "$key -> $value<br>"; 2) foreach (array_keys($array) as $key) { print $key." -> ".$array[$key]."<br>"; 3) foreach ($array = $key => $value) { print "$key -> $value<br>"; Quiz 6/8 Quiz 7/8 23 Wie geben Sie die Anzahl der Werte des Arrays $gemuese aus? 1) print count($gemuese); 2) echo sizeof($gemuese); 3) $gemuese -> count(); 4) $gemuese.count(); 5) $gemuese::count(); 24 Welche OO-Möglichkeiten unterstützt PHP5x? 1) Mehrfachvererbung (class x extends y,z) 2) abstrakte Klassen 3) keine 4) einfache Vererbung 5) Interfaces

Quiz 8/8 Formulare 25 Was liefert folgender Code class Test { $a = new Test(); $b = $a; if ($a === $b) { print "identisch"; else { print "ungleich"; a) identisch b) ungleich c) Fehlermeldung 26 <form action="example04.php" method="post" > Alter: <input name="age" size="2"> <input type="submit" name="submit" value="go"> </form> Bis Version 5.2.0 Ab 5.2: Filter 27 Sie sind echo $_POST[ age ]; Jahre alt. Was halten Sie von: AUTSCH!! include($_get['filename']); mysql_query("insert INTO table (field_one, field_two) VALUES ({$_POST['var1'], {$_POST['var2'])"; 28 if (!filter_has_var(input_post, 'submit')) { echo na na na"; $age = filter_input(input_post, 'age', FILTER_VALIDATE_INT); if (is_null($age)) { echo Bitte verraten Sie uns Ihr Alter.<br />"; elseif ($age === FALSE) { echo Bitte geben Sie Ihr Alter in Jahren (ganze Zahl) an.<br />"; else { echo Sie sind $age Jahre alt.<br/>"; Filter Filter 29 <form action="example07.php" method="post" > Name: <input name="name" size="50"><br /> Email: <input name="email" size="50"><br /> Homepage: <input name="homepage" size="50"><br /> Age: <input name="age" size="4"><br /> Income: <input name="income" size="50"><br /> Your two favourites languages: <select name="favourites[]" size="6" multiple> <option value= java">java</option>.. <option value="php">php</option> </select><br /> <input type="submit" name="submit" value="go"> </form> 30 $defs = array( desinfizieren 'name'=>array('filter'=>filter_sanitize_string, 'flags' => FILTER_FLAG_ENCODE_HIGH), 'email'=>filter_validate_email, 'homepage'=>array('filter'=>filter_validate_url, 'flags' => FILTER_FLAG_SCHEME_REQUIRED), 'age'=>array( 'filter' => FILTER_VALIDATE_INT, 'options'=> array('min_range'=>7, 'max_range'=>77)), 'income'=> FILTER_VALIDATE_FLOAT, 'favourites'=> array( 'filter' => FILTER_SANITIZE_STRING, 'flags' => FILTER_REQUIRE_ARRAY),); $input = filter_input_array(input_post, $defs); Mehr als 1! if ($input['age'] === FALSE) {exit( Nicht zwischen 7 and 77.");

CMS - Definition CMS - Anforderungen 31 "Softwaresystem für das Administrieren von Webinhalten mit Unterstützung des Erstellungsprozesses basierend auf der Trennung von Inhalten und Struktur". Demo Typo Verstehen Sie CMSSimple und codieren Sie es besser ;-) 32 Layout-Management Content Management Strukturmanagement Benutzer- und Rollenverwaltung Personalisierung Suchmechanismen In der Datenbank Systemübergreifend Internetrecherche Volltextsuche Unscharfe Suche (Fuzzy Search) Speicherung von Suchergebnissen Speicherung von Suchanfragen Prozessunterstützung / Workflow Modellierung von Arbeitsabläufen Simulation von Arbeitsabläufen Mehrsprachigkeit Statistik User Tracking / Profilgenerierun Redaktionsprozess Freigabemechanismen / QA Sperren Kategorisierung von Inhalten Metadaten / Taxonomien Flexibel erweiterbar CMS Rollen Zusammenfassung und Ausblick 33 34 PHP ist eine ausgereifte Sprache kann OO kann prozedural Filter sind fein will ich lernen CMS Nächste Woche: Navigation allgemein und mit PHP - Minitest