CGI – einfach PHP CGI Möglichkeiten

Werbung
KJG Webmaster/
Webmistress
Januar 2001
CGI – einfach PHP
Dynamik bis zur
DB-Interaktion
Marc Schanne
1
CGI
Möglichkeiten
Das Common Gateway Interface (CGI) ermöglicht
den Entwurf von interaktiven, benutzergesteuerten
Web-Applikationen.
Der WWW-Server ruft auf Serverseite ein CGI-Script
auf und liefert die Ausgabe (HTML) zurück an den
Browser.
Parameterübergabe mit HTML-Formularen.
Ein CGI-Script ist ein normales Programm.
©
Mit CGI ist es möglich Web-Inhalte dynamisch (z.B.
2000-2001,
aus Datenbanken, etc.) zusammenzustellen und
FZI on the fly zu erzeugen.
HTML-Seiten
Forschungsz
entrum
Informatik,
Karlsruhe
Kapitel 3
Kurzform
Marc Schanne
2
KJG Webmaster/
Webmistress
Januar 2001
Client/Server-Interaktion
Marc Schanne
3
CGI
Aufruf
Der Aufruf eines CGI-Scripts unterscheidet die beiden
grundlegenden HTTP-Übertragungsmöglichkeiten:
GET
Parameterübergabe in einem String direkt hinter der URL,
die das CGI-Script referenziert (mit ? angehängt). Dieser
String wird in einer Umgebungsvariable (QUERY_STRING)
abgelegt. Beispiel:
<A HREF= /cgi-bin/program.pl?user=test&
attr=true >CGI Programm</A>
©
POST
2000-2001,
Formulardaten werden in der Standardeingabe an das CGIScript FZI
übertragen. Beispiel:
Forschungsz
<FORM ACTION= /cgi-bin/program.pl METHOD= post >
entrum
Informatik,
Karlsruhe
Kapitel 3
Kurzform
Marc Schanne
4
KJG Webmaster/
Webmistress
Januar 2001
PHP
Überblick
PHP - Hypertext Preprozessor
Serverseitige Software zur Erstellung von
dynamischen Web-Seiten
PHP-Befehle werden in HTML-Seite eingebettet
Einsatz:
Bearbeitung von Formularen
Zusammenarbeit mit Datenbank-Systemen
(insbesondere MySQL)
Marc Schanne
5
PHP
Einführung
PHP-Programme werden auf dem Web-Server
ausgeführt: Zugriff auf
Datenbanken
Textdateien
Leicht erlernbar
Einsetzbar mit fast allen Web-Servern
Kostenlos
©
Verweise auf weiterführende Literatur gibt es in
2000-2001,
diesem Kursabschnitt nicht. Das auf der CD
FZI
beigefügte PHP Handbuch (im PDF-Format) deckt
Forschungsz
alle Bereiche ab und ist als Referenz geeignet.
entrum
Informatik,
Karlsruhe
Kapitel 3
Kurzform
Marc Schanne
6
KJG Webmaster/
Webmistress
Januar 2001
PHP
Einführung
<html>
<body>
<?php echo "Hej Du!"; ?>
<? echo "oder ohne XML auch so"; ?>
</body>
</html>
Mit einem beliebigen Editor erstellbar
Datei-Endung: .php, .php3
Marc Schanne
7
Alternative
Syntaxformen
Statt der geschweiften Klammern kann auch bei if,
switch und for die Schreibweise mit Doppelpunkt
und endif, endswitch, endfor gewählt werden.
Beide Syntaxformen sind beliebig austauschbar.
Die gesprächigere 2. Variante empfiehlt sich
insbesondere wenn die PHP-Kontrollstruktur sich
über mehrere Blöcke erstreckt.
©
2000-2001,
FZI
Forschungsz
entrum
Informatik,
Karlsruhe
Kapitel 3
Kurzform
Marc Schanne
8
KJG Webmaster/
Webmistress
Januar 2001
PHP
Funktionen
Zahlreiche vordefinierte Funktionen
Eigene Funktionen
Vorteile:
Modularisierung von Programmen
Mehrfachverwendung
Definition einer Funktion:
function Name () {
Anweisungen
}
Definition von Funktionen im HEAD-Bereich
Tag: <?php
?>
Anders als Variablen sind Funktionsnamen nicht casesensitiv!
Marc Schanne
9
Globale und lokale Variablen
Variablen werden nach ihrem Gültigkeitsbereich
unterschieden. Es gibt
lokale Variablen und
globale Variablen.
©
2000-2001,
FZI
Forschungsz
entrum
Informatik,
Karlsruhe
Kapitel 3
Kurzform
Marc Schanne
10
KJG Webmaster/
Webmistress
Januar 2001
Globale Variablen
Globale Variablen
außerhalb der Funktionen definiert
nur außerhalb der Funktionen sichtbar
verwendbar innerhalb von Funktionen durch das
Schlüsselwort global oder durch Parameterübergabe.
Variablen, die ihren Ursprung außerhalb des
Programmes haben (z.B. Formularfelder) sind immer
global.
Marc Schanne
11
Lokale Variablen
Lokale Variablen:
werden innerhalb einer Funktion definiert.
sind nur in dieser Funktion sichtbar.
Ein Parameter, der als Kopie an eine Funktion
übergeben wird, ist dort lokal.
©
2000-2001,
FZI
Forschungsz
entrum
Informatik,
Karlsruhe
Kapitel 3
Kurzform
Marc Schanne
12
KJG Webmaster/
Webmistress
Januar 2001
PHP und
HTML-Formulare
PHP ermöglicht eine einfache Bearbeitung von
HTML-Formularen
Bei der Formular-Definition kann dem Attribut action
eine PHP-Datei zugewiesen werden.
Beim submit wird die Ausführung der angegebenen
PHP-Seite angestoßen.
Marc Schanne
13
HTML-Formular und PHP
Aus dem HTML-Formular wird die PHP-Datei
angestoßen. Die Namen der Input-Felder werden als
Variablen-Bezeichner verwendet.
<html><body>
Zwei Zahlen eingeben und abschicken.<BR>
<form action="test.php" method="post">
Wert 1: <input name="w1"><p>
Wert 2: <input name="w2"><p>
<input type="submit"><input type="reset">
</form></body></html>
©
2000-2001,
<html><body><?php
$erg = $w1 + $w2;
FZI
echo "Die Summe von
?></body></html>
Forschungsz
entrum
Informatik,
Karlsruhe
$w1 und $w2 ist $erg";
Marc Schanne
Kapitel 3
Kurzform
14
KJG Webmaster/
Webmistress
Januar 2001
Funktionen und Formulare
Aus einem Formular stammende Variablen sind
global.
Werden die Variablen innerhalb einer Funktion
verwendet, müssen diese als global deklariert
werden.
Marc Schanne
15
PHP Dateizugriff
Mit PHP können leicht Dateizugriffe auf Textdateien
durchgeführt werden.
PHP kennt Funktionen zum
Öffnen,
Lesen,
Schreiben und
Schließen von Textdateien.
©
2000-2001,
FZI
Forschungsz
entrum
Informatik,
Karlsruhe
Kapitel 3
Kurzform
Marc Schanne
16
KJG Webmaster/
Webmistress
Januar 2001
PHP Datenbankzugriff
PHP muss mit entsprechender DB-Option installiert
sein
Jede DB hat ihre eigene Option mit eigener
Schnittstelle (siehe DB-Doku.)
Für MySQL ist der DB-Treiber in den PHP-Interpreter
integriert.
DB-Anbindung ist mehrstufiger Prozess
DB-Verbindung aufbauen
Datenbank auswählen
SQL-Befehl ausführen
Ergebnisreihen abrufen (bei SELECT)
DB-Verbindung abbauen
Marc Schanne
17
Verbindungsaufbau
Zunächst muss aus der PHP-Datei heraus eine
Verbindung zum DB-Server hergestellt werden:
$conn = mysql_connect( "host:port",
"username",
"passwd");
Der Rückgabewert $connection wird zum weiteren
Ansprechen der Verbindung benötigt. Im Fehlerfall
false.
©
Die Auswahl der eigentlichen Datenbank mit:
2000-2001,
$db = mysql_select_db("database", $conn);
FZIeinem vorbereiteten SQL-Befehl ($sql):
Zugriff mit
Forschungsz
$res = mysql_db_query($db, $sql);
entrum
Informatik,
Karlsruhe
Kapitel 3
Kurzform
Marc Schanne
18
Herunterladen