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

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

Java Server Pages (JSP)

Übung zur Vorlesung Multimedia im Netz

Multimedia im Netz Wintersemester 2011/12

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

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

Mul$media im Netz Wintersemester 2012/13. Übung 01

Grundlagen der Informatik 2

Web-basierte Anwendungssysteme PHP-Einführung

PHP Schulung Beginner. Newthinking Store GmbH Manuel Blechschmidt

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

Kapitel 5 Serverseitige Technologien

Programmieren von Webinformationssystemen

33 Computer & Literatur Verlag GmbH

Klaus Schmidt PHP 4. Computer & Literatur Verlag GmbH

Erstellt bei Teris Cooper Freie Nutzung des PDF Dokuments.

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

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung

Grundlagen der Informatik 2

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

Web-basierte Anwendungssysteme PHP Teil 2

Programmieren von Webinformationssystemen

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

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

Herzlich Willkommen. Über mich Termine Literatur Über PHP

PHP. M.Sc. Nadine Preuß Geographische Analyse- und Darstellungsmethoden WS 15/

Klausur Grundlagen der Programmierung

Angewandte Mathematik und Programmierung

Web-Techniken Einführung in JavaScript

Datenbanksysteme SS 2007

Mul$media im Netz Wintersemester 2014/15. Übung 01 (Haup8ach)

Internetanbindung von Datenbanken

Inhaltsverzeichnis. 1. Vortrag. 1. Vortrag Beispiele Quellen Seite 1 / 14

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Java Spickzettel von Panjutorials.de

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

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

Mul$media im Netz Wintersemester 2014/15. Übung 01 (Nebenfach)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Einführung in PHP und MySQL

Einführung in die Scriptsprache PHP

Am Anfang war die "normale" Webseite

Datenbanksysteme 2009

FileMaker und PHP Workshop

pue13 January 28, 2017

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen

Theorie zu Übung 8 Implementierung in Java

JavaScript und PHP-Merkhilfe

Java - Webapplikationen

Internet-Datenbanken

Erste Java-Programme (Scopes und Rekursion)

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

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

MySQL, phpmyadmin & SQL. Kurzübersicht

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Kommunikationsnetze. 7. Das World Wide Web 7.4 Client- vs. Server-basierte Techniken für dynamische Webseiten

Einführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung für NF MI. Übung 04

PHP. Einführungskurs

4. Servlets Ein kleiner Einstieg

Scriptsprachen für dynamische Webauftritte

Grundlagen. Wie sind PHP-Dateien aufgebaut?

System.out.println("TEXT");

Inhalt. Vorbemerkungen... 1

Programmierkurs für das modularisierte Lehramt. September 2011, 8. Vorlesung. Stuttgart, den 22. September Dr. Heiko Schulz.

Java zur Realisierung von Internetanwendungen

Überblick über Internet-Technologien

Folien php/mysql Kurs der Informatikdienste

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

Programmieren I + II Regeln der Code-Formatierung

Web Technologien LAMP Stack

Oracle & Java HOW TO

Internet-Datenbanken. Grundlagen des WWW. Web-Anbindung von Datenbanken XML HTML HTTP. Servlets JSP JDBC

Webtechnologien. Teil 7: PHP Klassen und Objekte

Literatur. Webtechnologien WS 2017/18 - Teil 7/PHP II

Entwicklung einer Webseite zur Verwaltung von Prüfungsterminen

Objektorientierung: Klassen und Objekte

Programming 101. Carl Herrmann IPMB & DKFZ

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

II.4.2 Abstrakte Klassen und Interfaces - 1 -

Arrays. Einleitung. Deklarieren einer Array Variablen

Wie schreibe ich ein Blog in eine Datenbank (Sqlite)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Erste Java-Programme (Arrays und Schleifen)

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

Vorkurs Informatik WiSe 15/16

PHP 4. E i n e K u r z e i n f ü h r u n g. Vortragender: Kevin Bransdor Datum: Folie 1

Praktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets -

Informatik II Prüfungsvorbereitungskurs

Algorithmen und Datenstrukturen

Embedded Webserver in Forth

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Listing 1: Cowboy. Listing 2: Woody

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs

Objektorientierung. Marc Satkowski 20. November C# Kurs

Transkript:

Dynamische Webseiten mit PHP Oder: LAMP - The open way

Verbreitung Neben ASP verbreitetste Web-Scripting-Umgebung LAMP (Linux, Apache, mysql, PHP): freie Alternative zu M$

Überblick Dynamische Webseiten Entwicklung von PHP PHP an Beispielen Anbindung an mysql Projekt Literatur: Beighly, PHP&MYSQL von Kopf bis Fuß, O'Reilly, 2009 Lerdorf, Tatroe, Programming PHP, O Reilly, 2013

PHP Personal Homepage Tools, Rasmus Lerdorf Erste Version 1994 CGI Tools keine Scriptsprache PHP/FI 1996 Scriptsprache, Anbindung an Datenbanken PHP Version 3 1998 Open Source, Suraski, Gutmans PHP Version 4 2000 Redesign, Zend PHP Version 5 2004

dynamische Webseiten Programm erzeugt HTML HTML enthält Programm! public class myservlet! extends HttpServlet {! protected void doget(...) {! response.setcontenttype(! "text/html");! java.io.printwriter out =! response.getwriter();! out.println("<html> );!...! out.println( Hallo");! out.println("</html> );! <HTML>!...! <?php! echo Hallo";! </HTML>! verschiedene Implementierungen: PHP (C-ähnlich) JSP (JAVA) ASP (Visual Basic (und andere) usw.!

Einbetten von Code <HTML>!...! <?php!!!!// XML-Stil! echo Hallo";! <?!!!!/* SGML (PI) Stil */! echo Hallo";! <%!!!!# ASP Stil! echo Hallo";! %>! <script language= php" echo Hallo";! </script>! </HTML>!!// korrektes HTML!

Syntax <?php! $i = 0;!!// Variablen werden nicht deklariert! echo $i;!!// Name beginnt mit $! echo $I;!!// undefiniert (Schreibweise), aber! Echo $i;!!// funktioniert.! if ($I == null)!// undef. Variablen haben Wert null! if (isset($i))!// oder so! $i= Hallo";!// Datentyp implizit (Zuweisung)! $i= Hallo ;!// String durch oder terminiert! $i=0.3e-4;!!// Integer, Fließkomma, String,! $i=true;!!// Boolean! $namen[0]= max ;!// Array! $namen[1]= hugo ; // Größe nach Bedarf! $namen[]= gerd ;!// hinten anhängen! $namen=array( max, hugo, gerd );! // Operatoren wie in JAVA,. verknuepft Strings! $text = Hello. world ;!

Kontrollstrukturen <?php! if (1 == 1)!!!// Syntax wie in JAVA! //Schleifen: for, while, do... while, foreach! $namen=array( max, hugo, gerd );! for($i=0;$i<count($namen);$i++)! echo $namen[$i];! while ($i < 10) {! echo $i;! $i++;! // Durchlaufen von Arrays! foreach($namen as $name)! echo $name;!

Funktionen <?php! function tuwas($i) {! echo $i;! $i++;! $wert = 10;! tuwas($wert);! echo $wert!!!// 10, call by value! function tuwas(&$i) {...! tuwas($wert);! echo $wert;!!// 11, call by reference! function x($y=1) {!!// default Werte für Parameter! //Werte zurückgeben mit return $...!

Variablenfunktionen Wie andere Scriptsprachen auch ist PHP ziemlich flexibel, ein Beispiel: <?php! function minus($i) {! return $i-1;! function plus($i) {! return $i+1;! $op = plus ;! echo $op(3);!

Ein Beispiel <HTML>! <body>! <?! for($i=0;$i<10;$i++)!!echo "Hello world<br>";! </body>! </HTML>!

HTML-Formulare <HTML>! <body>! <form action="dohelloform.php" method="post">! Wie oft? <input type="text" name="wieoft">! <input type="submit">! </form>! </body>! </HTML>! DoHelloForm.php <HTML>! <body>! <?! for($i=0;$i<$wieoft;$i++) // $WieOft enthält Eingabe!!echo "Hello world<br>";! </body>! </HTML>!

All in one <HTML>! <body>! <?! if (isset($wieoft)) {! for($i=0;$i<$wieoft;$i++)! echo "Hello world<br>";! else {! <form action="compacthelloform.php" method="post">! Wie oft? <input type="text" name="wieoft">! <input type="submit">! </form>! <?! </body>! </HTML>!

besser <HTML>! <body>! <form action="realhelloform.php" method="post">! Wie oft? <input type="text" name="wieoft"! <? if (isset($wieoft)) echo ' value="'.$wieoft.'"'?>>! <input type="submit">! </form>! <?! if (isset($wieoft))! {! for($i=0;$i<$wieoft;$i++)!!echo "Hello world<br>";! </body>! </HTML>!

Zugriff auf mysql <?! // Verbindung mit mysql_connect aufbauen! $connection = mysql_connect("localhost","till","haenisch");! // Datenbank auswählen! mysql_select_db("haenisch",$connection);! // Abfrage ausführen! $result = mysql_query("select nick,url,email! from BENUTZER",$connection);! // Resultset durchgehen! while ($row = mysql_fetch_row($result))! {! // $row ist ein Array mit den Inhalten der Attribute! echo $row[0];! echo "<br>";! // Verbindung wieder schließen! mysql_close($connection);!

alternativ...! $result = mysql_query("select nick,url,email! from BENUTZER",$connection);! // Resultset durchgehen! while ($row = mysql_fetch_array($result))! {! // $row ist ein Array mit den Inhalten der Attribute! echo $row["nick"];! echo "<br>";! }...! // Insert geht übrigens genauso! mysql_query( INSERT INTO data(text) values('hallo');! sieht schon ziemlich ähnlich wie ASP aus, oder?

mysqli <?! // das ganze mit der neueren mysqli-schnittstelle! $db = mysqli_connect("localhost","till","haenisch","haenisch");! // Abfrage ausführen! $result = mysqli_query($db,"select nick,url,email from BENUTZER );! // Resultset durchgehen! while ($row = mysqli_fetch_array($result))! {! // $row ist ein Array mit den Inhalten der Attribute! echo $row["nick"];! echo "<br>";! // Verbindung wieder schließen! mysqli_close($db);!

mysqli-oo <?! // PHP kann auch Objekte...! $db = new mysqli("localhost","till","haenisch","haenisch");! // Abfrage ausführen! $result = $db->query("select nick,url,email from BENUTZER );! // Resultset durchgehen! while ($row = $result->fetch_assoc())! {! // $row ist ein Array mit den Inhalten der Attribute! echo $row["nick"];! echo "<br>";! // Verbindung wieder schließen! db->close($db);!

Cookies <?! if (!isset($count)) // unser Cookie! {!! $count=0;! else $count++;! // Cookies müssen gesetzt werden, bevor html ausgegeben wird! setcookie("count",$count);! <html>! <body>! Hallo zum <?=$count?> ten Mal.! </body>! </html>! Dazu braucht man also Cookies... (eins pro Variable --> umständlich, Typ!= String??)

Sessions <?! session_start();! if (!session_is_registered("count"))! {!! session_register("count");!! $count=0;! else $count++;! <html>! <body>! Hallo zum <?=$count?> ten Mal.! </body>! </html>! Ein Cookie pro Session (alternativ URL rewriting) Beenden mit session_destroy(), z.b. beim logout