HTML Formulare / CGI / JavaScript / Perl

Transcription

HTML Formulare / CGI / JavaScript / Perl
Übungen Informatik I
HTML Formulare / CGI /
JavaScript / Perl
http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/Tutorial
http://de.selfhtml.org
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
1
HTML
Inhalt
•
•
•
HTML Formulare
JavaScript
CGI / Perl
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
2
HTML
Formulare
•
Formulare (engl.: forms)
–
–
–
–
•
können mit JavaScript bearbeitet werden
Formulardaten können an ein CGI- Programm übergeben werden
werden mit dem <FORM>- Tag eingeleitet
bestehen aus mehreren Kontrollelementen (grafische Objekte auf der
Webseite, die mit der Maus oder Tastatur verändert werden können)
Es folgt ein Screenshot eines einfachen Formulars:
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
3
HTML
Formulare - Beispiel
Und das ist der Quelltext zum Formular auf der Folie davor:
…
<FORM ACTION="mailto:test@fh-karlsruhe.de" METHOD="post"
ENCTYPE="text/plain">
<TEXTAREA NAME="adresse" COLS="60" ROWS="4">E-MAIL:
1. gahe000@fh-karlsruhe.de
2. scst0051@fh-karlsruhe.de
</TEXTAREA>
<p> Ihre Meinung bitte! </p>
<br> <INPUT NAME="userInfo" TYPE=“text“ SIZE="40" MAXLENGTH="20">
<p> <INPUT TYPE="submit" VALUE="Anfrage senden">
&nbsp;&nbsp;
<INPUT TYPE="reset“ VALUE="Zur&uuml;cksetzen">
<P> Bitte teilen Sie uns Ihre Meinung mit und senden sie
mit der Sendetaste ab. </P>
</FORM>
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
4
HTML
Formulare – Beispiel: Erklärung
<FORM ACTION="mailto:test@fh-karlsruhe.de" METHOD="post" ENCTYPE="text/plain">
Ein Formular wird also mit dem <FORM>- Tag eingeleitet, dieses enthält folgende
Attribute:
- ACTION: gibt den Empfänger der Formulardaten an (es handelt sich hierbei entweder um
ein Programm, das auf dem Server läuft, oder um einen Mail- Client (=“mailto:…“)
- METHOD: gibt die Übertragungsmethode an (get oder post Î nächste Folie)
- ENCTYPE: legt die Form der Codierung fest (wichtig bei action=“mailto:…“)
<TEXTAREA NAME="adresse" COLS="60" ROWS="4">
Mit dem <TEXTAREA>- Tag wird ein mehrzeiliges Eingabefeld erzeugt, es enthält folgendes
Attribut:
NAME: legt eine eindeutige Bezeichnung fest
<INPUT NAME="userInfo" TYPE=“text“ SIZE="40" MAXLENGTH="20">
<INPUT TYPE="submit" VALUE="Anfrage senden">
Mit dem <INPUT>- Tag wird ein einzeiliges Eingabefeld erzeugt, dazu gibt es folgende
Attribute:
TYPE: es legt die Art des Kontrollelements fest
ƒ
“submit“: Schaltfläche, die den Sendevorgang auslöst
ƒ
“reset“: Schaltfläche, die das Formular wieder in den Ursprungszustand setzt
VALUE: legt die Beschriftung der Buttons fest
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
5
HTML
Formulare – Übertragungsmethoden
•
Wie schon erklärt, wird mit dem Attribut METHOD im <FORM>Tag die Übertragungsmethode festgelegt, d. h. wie die
Kommunikation mit dem Empfängerprogramm erfolgt
•
Es gibt zwei Möglichkeiten:
–
–
Æ
GET: Bedeutet für CGI- Programme, dass sie die Daten in einer
Umgebungsvariable über das System des Servers geliefert bekommen
POST: Bedeutet für CGI- Programme, dass eine Tastatureingabe
simuliert wird, d. h. sie erhalten die Daten so, wie wenn sie jemand vor
Ort eintippt. Für E-Mails werden Formulare mit der POST- Methode
vollständig angelegt und abgeschickt
Für E-Mails also immer POST für das Attribut METHOD anzugeben!
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
6
HTML
Formulare – Formularelemente
•
Ein Formular kann mehrere Elemente haben, diese werden je nach
Informationstyp ausgesucht, z. B. muß der User einen Text
eintippen, oder einfach nur bejahen, bzw. verneinen
•
In HTML stehen spezielle Kontrollelemente zur Verfügung:
•
–
–
–
INPUT- Typen
Beschriftungen
Notizfelder
Beispiel:
<FORM ACTION="mailto:test@fh-karlsruhe.de" METHOD="post"
ENCTYPE="text/plain">
<TEXTAREA NAME=„name“> Notizfeld </TEXTAREA>
<LABEL FOR=„inpname“> Beschriftung </LABEL>
<INPUT ID=„inpname“ VALUE=„senden“ TYPE=„submit“>
<!-- das ist ein Button -->
</FORM>
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
7
HTML
Formulare – INPUT- Typen
Sie werden mit dem <INPUT>- Tag erzeugt
Das Attribut TYPE legt fest, welches Element erzeugt wird:
PASSWORD:
<INPUT TYPE="password“ NAME="kennwort“ SIZE=“8“ MAXLENGTH="12">
für die Eingabe nicht erkennbarer Daten (z. B. Passworteingabe: ******)
CHECKBOX:
<INPUT TYPE="checkbox" NAME="zutat" VALUE="salami">Salami<br>
<INPUT TYPE="checkbox" NAME="zutat" VALUE=“Pilze“ checked>Pilze<br>
Æ kleines quadr. Kästchen, das per Mausklick angekr. werden kann
RADIO:
<INPUT TYPE="radio" NAME="Zahlen" VALUE="Visa"> Visa<br>
Æ kleiner runder Kreis, der per Mausklick ausgefüllt werden kann
TEXT: Eingabe num. und alphanum. Daten. Æ rechteckiges Eingabefeld
SUBMIT: Æ Schaltfläche zum Absenden der Formulardaten
RESET: Æ Schaltfläche, die das Formular in seinen Ursprungszustand
zurücksetzt
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
8
HTML
Formulare – Auswahllisten
•
•
Mit dem <SELECT>- Tag werden Auswahllisten definiert, es gibt folgende
Attribute zu diesem Tag:
–
NAME: Beschriftung
–
SIZE: Anzahl sichtbarer Zeilen
–
MULTIPLE: steuert ob eine Mehrfachauswahl möglich ist
Mit dem <OPTION>- Tag werden innerhalb der <SELECT>- Tags Optionen
aufgelistet, hier gibt es folgende Attribute:
–
SELECTED: zeigt eine Vorauswahl an
–
VALUE: wenn statt des angezeigten Wertes eine andere Information
übertragen werden soll
<SELECT NAME=“Auto“ SIZE=“2“ MULTIPLE>
<OPTION SELECTED> Opel </OPTION>
<OPTION> Ford </OPTION>
<OPTION> VW </OPTION>
</SELECT>
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
9
HTML
Formulare – weitere Formularelemente
Klickbuttons herkömmlich:
<input type="button" name="Verweis" value="Informatik-Tutorial"
onClick="self.location.href=
'http://www.fbi-lkt.fh-karlsruhe.de/lab/info01'">
Klickbuttons modern:
<button name="Klickmich" type="button" value ="Informatik-Tutorial"
onClick="self.location.href=
'http://www.fbi-lkt.fh-karlsruhe.de/lab/info01'">
<p> <b>Info1 Portalseite</b></p>
</button>
Felder für Datei uploads
<input name="Datei" type="file" size="50" maxlength="100000"
accept="text/*">
Formulare mit CSS formatieren -> selfhtml
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
10
HTML
Inhalt
•
•
•
HTML Formulare
JavaScript
CGI / Perl
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
11
JavaScript
Einführung
JavaScript
-
-
wurde 1995 von der Firma Netscape eingeführt und lizenziert
ist kein direkter Bestandteil von HTML, sondern eine
eigene Programmiersprache.
-
wurde zu dem Zweck geschaffen, Web-Seiten zu optimieren.
-
wird client-seitig, zur Laufzeit vom Web-Browser interpretiert.
-
-
JavaScript-Programme werden wahlweise direkt in der HTML-Datei
oder in separaten Dateien notiert.
ECMA-Script: Standardisierte Variante der ECMA (Genf)
Für Web-Seiten, bei denen Information im Vordergrund steht, und die auch
von Suchmaschinen-Robots und Benutzerrandgruppen wie
Sehbehinderten erfasst werden sollen, müssen Sie darauf achten,
JavaScript nur so einzusetzen, dass die Web-Seiten auch ohne
eingeschaltetes JavaScript ordentlich angezeigt werden, und dass die
Navigation zwischen den Seiten auch ohne JavaScript funktioniert.
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
12
JavaScript
JavaScript-Bereiche in HTML definieren
<html>
<head> <title>Beispiel zum Funktionsaufruf aus einem Tag</title>
</head>
<script type="text/javascript">
<!-alert("Hallo Welt!");
//-->
</script>
<body>
</body>
</html>
//: JavaScript-Kommentar: um Fehlermeldungen in scriptfähigen
Browsern zu unterdrücken
JavaScript-Bereich kann auch im body stehen, üblich ist wie oben
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
13
JavaScript
Kommentare
Einzeiliger Kommentar
Mehrzeiliger Kommentar
beginnt mit
beginnt mit
endet mit
//
/*
*/
Wichtig um Informationen für Entwickler abzulegen
•
welche Aufgabe hat die Funktion oder
•
Bedingung unter der die Funktion arbeitet
Beachte:
Keine sensitive Informationen (Passwörter), da im Quelltext
für jeden sichtbar
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
14
JavaScript
Funktionsaufruf über HTML-Tag
<html>
<head> <title>Beispiel zum Funktionsaufruf aus einem Tag</title>
</head>
<script type="text/javascript">
<!-function Meldedich(text) {
alert(text);
}
//-->
</script>
<body>
<h3>
<a href="javascript:Meldedich('Hallo');">Klicken Sie bitte hier!</a>
</h3>
<a href="javascript:history.back()"> Eine Seite zur&uuml;ck </a>
</body>
</html>
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
15
JavaScript
Event-Handler
¾ stellen das Bindeglied zwischen HTML und JavaScript dar
¾ reagieren auf bestimmte Tastatur- und Mausereignisse
¾ werden als Attribute in HTML-Tags geschrieben
¾ beziehen sich auf das entsprechende HTML-Element.
¾ sind HTML 4.0 Standard
¾ beginnen immer mit on , zum Beispiel
¾ Notation: EventHandler=“JavaScript-Anweisung“
Bsp.: onClick=“Meldedich(‘Hallo‘)“
<html>
<body>
<form>
<input type=button value="Klick mich"
onClick="alert('er hat es getan!')">
</form>
<a href="funktionen.html"
onmouseover="history.back();"> zur&uuml;ck</a>
</body>
</html>
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
16
JavaScript
Vordefinierte Objekte
Dass JavaScript eine Erweiterung von HTML ist, liegt vor allem an
den vordefinierten Objekten. Über diese vordefinierten Objekte
können Sie beispielsweise einzelne Elemente eines HTML-Formulars
abfragen oder ändern.
Die JavaScript-Objekte sind in einer Hierarchie geordnet:
window(Browserfenster)
document (Dokument im Browserfenster)
forms, ... (Formular,… im Dokument )
elements
(Formularelemente, z.B. Auswahllisten, Buttons …)
parent
window
frames[]
document
forms[]
location
images[]
elements[]
links[]
anchors[]
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
17
JavaScript
Vordefinierte Objekte
<html>
<head> … </head>
<body>
<script type="text/javascript„>
var counter = 0;
function doIt() {
counter++;
document.forms[0].elements[0].value=
"Klick " + counter + "!";
}
</script>
<form>
<input type=button value="Klick!" onClick="doIt()">
</form>
</body>
</html>
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
18
JavaScript
Vordefinierte Objekte
Elemente können auch mit ihren Namen direkt angesprochen werden.
elements
(Formularelemente, z.B. Auswahllisten, Buttons …)
<input type="text" name="email">
Document.forms[0].email.value
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
19
JavaScript
JavaScript in separater Datei
JavaScript-Datei quadrat.js:
function Quadrat() {
var Ergebnis = document.Formular.Eingabe.value *
document.Formular.Eingabe.value;
alert("Das Quadrat von " +
document.Formular.Eingabe.value + " = " + Ergebnis);
}
HTML-Datei
<html>
<head> <title>Beispiel zum Funktionsaufruf aus einem Tag</title>
<script src="quadrat.js" type="text/javascript">
</script>
</head>
<body>
<form name="Formular" action="">
<input type="text" name="Eingabe" size="3">
<input type="button" value="Quadrat errechnen" onClick="Quadrat()">
</form>
</body>
</html>
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
20
JavaScript
if / submit (für Aufgabe 2)
<html>
<head>
<script type="text/javascript">
function checkWort() {
if ( document.forms[0].q.value == "" ) {
alert("Geben Sie einen Suchbegriff ein");
return false;
}
}
</script>
</head>
<body>
<h1>Geben Sie einen Suchbegriff ein</h1>
<form action="http://www.google.de/search" onSubmit="return checkWort() ">
Nummer: <input type="text" name="q"> <p>
<input type=submit value="Suchen">
</form>
</body>
</html>
http://www.home.fh-karlsruhe.de/~pach0003/uebungen/03_html_cgi/test.html
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
21
JavaScript
Event-Handler - Beispiele
onLoad (beim Laden einer Datei)
Tritt ein, wenn eine HTML-Datei geladen wird.
<body onLoad="NaviFenster()">
<h1>Seite mit "Fernbedienung"</h1>
</body>
onReset (beim Zurücksetzen des Formulars)
<script type="text/javascript">
function ResetCheck() {
var chk = window.confirm("Wollen Sie alle Eingaben
loeschen?");
return(chk);
}
</script>
<form name="Test" onReset="return ResetCheck()" action="">
onSubmit: (selfhtml)
<form action="onsubmit.htm" onSubmit="return CheckInput();">
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
22
HTML
Inhalt
•
•
•
HTML Formulare
JavaScript
CGI
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
23
CGI (Common Gateway Interface)
Einführung
•
Das CGI (= Common Gateway Interface) eines WWW- Servers
ermöglicht es beliebige vorbereitete externe Programme
auszuführen
CGI spezifiziert die erforderlichen Schnittstellen für die Eingabe,
bzw. Weiterleitung von Informationen vom WWW- Client zum
Programm und für die Rückgabe von Informationen an den WWWClient
Die perfekte Sprache für die CGI- Programmierung sind Perl und
PHP
CGI wurde im wesentlichen von folgenden Personen entwickelt:
•
•
•
–
–
–
–
Tony Sanders
Ari Luotonen
George Phillips
John Franks
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
24
CGI (Common Gateway Interface)
Einführung – Anwendungen
•
Die Hauptanwendung ist die direkte Generierung von HTML- Seiten
aus Informationen, die nicht als HTML- Seiten vorliegen
•
Zum Beispiel:
–
CGI- Programme sind manchmal eine
Schnittstelle zu einer bereits existierenden Datenbank:
•
Sie konvertieren die Eingabe in etwas, das die Datenbank versteht
und
•
sie konvertieren die Ausgabe in etwas, das ein Web- Browser
versteht (z. B. HTML)
–
CGI- Programme ermöglichen die Interaktion mit Benutzern eines
WWW- Servers, z. B. um ein Bestellformular umzusetzen
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
25
CGI (Common Gateway Interface)
Einführung – Umgebung eines CGI- Programms
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
26
CGI (Common Gateway Interface)
Einführung – Systemumgebung
•
Hier benutzen wir Perl als Programmiersprache für CGI, da PHP
nicht installiert ist
•
Zum Programmieren braucht man:
–
–
Einen Editor (z. B. Textpad)
Ein Verzeichnis für die CGI- Dateien, das dem WWW- Server bekannt
sein muß (hier an der FH: im .public_html- Verzeichnis):
Æ z. Bsp.: .public_html/cgi/
–
Einen Perl- Interpreter und den Pfad dazu, wo dieses Programm auf
dem Server installiert ist (mit dem Befehl: which perl)
Æ /usr/local/bin/perl
–
Perl- Programmbibliotheken (enden auf .pm): Wichtig ist das PerlModul cgi.pm, das eine Reihe von Funktionen, die das Programmieren
von CGI- Skripten erleichtern, beinhaltet
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
27
CGI (Common Gateway Interface)
Einführung – Das Modul „cgi.pm“
–
cgi.pm:
- ab Version 5.004 in Standard-Perl-Distribution
- ist von Lincoln Stein;
- ist plattformunabhängig (läuft auf UNIX, Linux, VMS,
Windows, Macintosh ...)
- ist im RZ installiert
–
Informationen (vollständige Dokumentation) und Hilfe über das Modul
findet man im Manual: man CGI (oder perldoc CGI)
Pfadvariable: MANPATH
Die Syntax der CGI-Programme werden unter UNIX lokal getestet, und
erst dann (fehlerfrei) über den Browser aufgerufen.
Damit CGI-Programme in dem aktuellen Verzeichnis gefunden werden,
muss die PFAD-Variable richtig gesetzt sein:
–
Pfad testen:
Pfad setzen:
echo $PATH
export PATH=$PATH:.
Pfadvariable zu perldoc: export PATH=$PATH:/opt/perl5/bin
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
28
CGI (Perl)
Programmierung
•
Wir werden die Programmierung an dem einfachen Beispiel eines
Formulars erklären:
–
–
–
–
Das Formular selber wird im HTML- Dokument mit den <FORM>- Tag
definiert
Jedes Textfeld dieses Formulars hat einen Namen (NAME) und einen Wert
(VALUE)
Wie schon besprochen, kann ein Formular per Email versendet werden
(ACTION=„mailto:…“)
oder an eine CGI- Anwendung übertragen werden
(ACTION =„http://www.home.fh-karlsruhe.de/~papa0011/cgi/test.cgi“)
Æ Das CGI- Programm wird also im ACTION- Attribut in einem URL
angegeben
Schickt der User jetzt das Formular ab, greift der Browser auf den URL des
CGI- Programms zu, nachdem er einen Abfragestring (query string) an
den URL angehängt hat
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
29
CGI (Perl)
Programmierung – Der query string
•
Der query string ist eine Zeichenkette, die dem CGI- Programm in der
Umgebungsvariable QUERY_STRING zur Verfügung gestellt wird
Die Angabe des query string kann
•
–
–
•
von Hand erfolgen
vom WWW- Client generiert werden
Der query string besteht aus mehreren Paaren der Form
NAME=VALUE und wird dem Pfad zum CGI- Programm angehängt
Beispiel eines Formulars:
http://www.home.fh-karlsruhe.de/~gahe0001/cgi/Meinungsumfrage.cgi ?
Doz=Paulchen+Panther & Typ=Inhalt & Note=Schlecht &
Doz=Daniel+Duesentrieb &Typ=Inhalt & Note=Gut & User=Daniel &
Email=duda0013 %40 fh-karlsruhe.de
Æ Der query string wird mit ? eingeleitet
Æ Name-/Werte- Paare werden mit & getrennt
Æ Zeichen werden kodiert (@ Î %40)
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
30
CGI (Perl)
Programmierung – Übertragung
•
Unser URL wird nun vom Web- Server www.fh-karlsruhe.de
empfangen
•
Dieser ruft das CGI- Programm Meinungsumfrage.cgi auf und
übergibt die Namen/Werte- Paare als Argumente, welche vom
cgi.pm automatisch ausgepackt werden, oder-falls das Modul nicht
installiert ist - entsprechend aufgesplittet werden muß.
•
... Nun wird das CGI- Programm ausgeführt
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
31
CGI (Perl)
Programmierung
Query-String mit CGI-Modul
Das Modul cgi.pm zum Parsen (Analysieren) der CGI- Anfrage wird am Anfang des
CGI- Programms mit folgender Anweisung eingebunden:
use CGI;
Mit dem Modul stehen dem cgi-Programm die Namen/Werte-Paare aus dem Formular
wie folgt zur Verfügung:
...
use strict;
# Deklaration und Quoting erzwingen
use CGI qw(:all);
my( $q, $dozent, $username, $note, $typ, $emailadr);
$q = CGI->new(); # aktuelle Anfrage
$dozent
$username
$note
$typ
$emailadr
$emailadr
…
= $q -> param(„Doz");
= $q -> param(„User");
= $q -> param(„Email");
= $q -> param(„Typ");
= $q -> param("Email");
=~ s/%([a-fA-F0-9][a-fA-F0-9])/\@/g;
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
32
CGI (Perl)
Programmierung – Das Modul cgi.pm einbinden
•
use CGI;
Mit der use- Anweisung wird ein Code aus einer anderen
Datei zur Compile- Zeit nachgeladen
•
Die Anweisung kann mit optionalen Argumenten versehen
werden, die angeben, auf welche Funktionen und Variablen
zugegriffen wird (vgl. in UNIX können Befehle auch mit
Argumenten versehen werden, z.B. ls -la), z. B. wird der
Zugriff auf die Funktion param() so angegeben: use CGI
qw(param);
•
Die qw- Notation wird verwendet, um die Importliste später
erleichtern zu können
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
33
CGI (Perl)
Programmierung
•
Query-String ohne CGI-Modul
falls cgi.pm nicht installiert ist, muss der query-String wie folgt
aufgesplittet werden:
...
?Doz=Paulchen+Panther&Typ=Inhalt&Note=Schlecht&Doz=Daniel+Duesentrieb&Typ=
Inhalt&Note=Gut&User=Daniel&Email=duda0013%40fh-karlsruhe.de
$i=0;
foreach $Feld (@Formularfelder) {
($name, $value) = split(/=/, $Feld);-> Doz=... Email=…
$value =~ tr/+/ /;
-> (Transliteration) ersetzt + durch ““
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
-> %40 -> @
$value =~ s/<!--(.|\n)*-->//g;
-> löscht alle Zeichen < ... \n
im ganzen String (g)
$Formularname[$i] = $name;
$Formularvalue[$i] = $value;
$i++;
}
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
34
CGI (Perl)
Import- Tags
Import- Tags sind Labels (Bezeichnungen) für eine
Gruppe zu importierender Funktionen:
use CGI qw(:cgi);
param()
use CGI qw(:form);
Methoden zur Argument- Verarbeitung wie
Methoden, die Formulare generieren
use CGI qw(:standard); Standardfunktionen (html2, form, cgi)
-
header(): Zeichenkette mit der Zeile Content-type + Leerzeile
start_html(zeichenkette): Zeichenkette als HTML- Title
h1(zeichenkette): Zeichenkette als HTML- Überschrift 1. Ordnung
p(zeichenkette): Zeichenkette als neuer HTML- Absatz
use CGI qw(:shortcuts); Methoden, die HTML- Programme vereinfachen
use CGI qw(:all); alle verfügbaren Methoden
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
35
CGI (Perl)
Programmierung – Vollständiges CGI- Skript in Perl
ohne cgi-Modul:
#!/usr/local/bin/perl –w
my $Title =“ein skript“;
print “content-type:text/html \n\n“;
print “<html><head><title>Hallo Welt</title></head><body>\n“;
print “<h1>$Title</h1>\n“;
print “<p>Das ist ein einfaches Skript</p>“;
print “</body></html>“;
mit cgi-Modul:
#!/usr/local/bin/perl -w
use CGI qw(:standard);
print header,
start_html(-title=>$TITLE, -bgcolor=>'white'),
h1($TITLE);
print $q -> p, „Das ist ein einfaches Skript</p>“;
print $q -> end_html;
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
36
CGI (Perl)
Programmierung – Ein einfaches Programm
•
Ein einfaches CGI- Programm um eine dynamische WebSeite zu generieren - „Here-Dokument“:
# !usr/local/bin/perl
# Hallo- Das einfachste aller CGI- Programme
print <<ENDE_des_mehrzeiligen_Textes;
Content-type: text/html
<HTML>
…
ENDE_des_mehrzeiligen_Textes
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
37
CGI (Perl)
Programmierung – Ein einfaches Programm- Erklärung
•
•
•
•
•
•
•
•
•
•
Mit # wird in Perl ein Kommentar eingeleitet
In der ersten Zeile wird der Pfad zum Perl- Interpreter angegeben
print ist eine Anweisung, die etwas auf dem Bildschirm ausgibt
Jede Anweisung muß mit ; enden
Mit << wird eine Anfangsmarke gesetzt
Die Endmarke (ENDE_des_mehrzeiligen_Textes) leitet ein HEREDokument ein. Sie ermöglicht es, eine mehrzeilige Zeichenkette
auszugeben. Æ erspart also, vor jede Zeile ein print zu schreiben
Die Zeile Content-type: text/html gibt an (Direkt erste Zeile
nach << !), was für eine Art von Ausgabe generiert wird (hier also
ein HTML- Dokument)
Danach muß eine Leerzeile folgen
Dann folgt der HTML- Code, der an den Browser des Users
geschickt, dort formatiert und angezeigt wird
Mit der Zeile ENDE_des_mehrzeiligen_Textes wird die Ausgabe
abgeschlossen
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
38
CGI (Perl)
Programmierung – Ein einfaches Programm- Beispiel
#!/usr/local/bin/perl
use CGI qw(:standard);
$cgi = new CGI;
$parameter = $cgi->param('parameter');
$inhaltVariable = "Hallo";
print <<ENDE_des_mehrzeiligen_Textes;
Content-type: text/html
<HTML>
<HEAD></HEAD>
<BODY>
<H1>${inhaltVariable}</h1>
${parameter}
</BODY>
</HTML>
ENDE_des_mehrzeiligen_Textes
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
39
CGI (Perl)
Programmierung – Beispiele
•
CGI- Programme können mit jedem HTML- Dokument
zusammenarbeiten, also nicht nur mit Formularen
Beispiel:
•
–
–
–
Im HTML Dokument steht folgender Link:
<A HREF=„http://www.irgendwo.org/cgibin/fortune.cgi“>Gl&uuml;ckskekse verschicken</A>
Das CGI- Programm fortune.cgi enthält nur den Aufruf des fortuneProgramms (Programm, das auf UNIX- Systemen Glückskekse
verschickt)
Î es werden keine Argumente über den URL an das CGI- Programm
gegeben
Mit dem Link:
<A HREF=„http://www.irgendwo.org/cgi-bin/fortune.cgi?date“>
würde das Programm fortune.cgi mit dem Argument date ausgeführt
werden
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
40
JavaScript
Linkliste
¾
http://www.heise.de/ct/browsercheck/js.shtml
¾
http://java.rrzn.uni-hannover.de/javascript/index.html
¾
¾
¾
¾
„Voodoo JavaScript Tutorial“ und andere Einführungen:
http://rummelplatz.uni-mannheim.de/~skoch/js/script.htm (deutsch)
http://web.urz.uniheidelberg.de/Ausbildung/Unterlagen/JavaScript/einleit.html
http://www.stars.com/Authoring/JavaScript/Tutorial/ (englisch)
Selfhtml:
http://www.teamone.de/selfhtml/
Netscapes neueste JavaScript-Referenz:
http://developer.netscape.com/tech/javascript/index.html
Webbuilding:
http://www.cnet.com (englisch)
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
41
HTML
Linkliste
•
•
•
•
•
•
Gute Informationen gibt es auf dem Online- Tutorium:
http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/Tutorial/index.htm
Ein sehr gutes Online- Tutorium von Stefan Münz mit sehr vielen
Informationen und Beispielen findet man hier:
http://selfhtml.teamone.de/
Ein guter HTML- Editor von Ulli Meybohm ist hier zu finden:
http://www.meybohm.de
Eine HTML- Einführung von Hubert Partl:
http://www.boku.ac.at/htmleinf/
Die „Goldenen Regeln für schlechtes HTML“:
http://www.karzauninkat.com/Goldhtml/
Ein sehr gutes Buch für den Einstieg ist:
„HTML- Von der Baustelle bis JavaScript“ von Helmut Erlenkötter
erschienen im Juni 2000 im Rowohlt Taschenbuch Verlag (ISBN: 3
499 60085 4)
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
42
CGI (Perl)
Linkliste
•
•
•
•
•
•
CGI- Einführungskurs mit Perl:
http://userpage.fu-berlin.de/~ahahn/www/cgikurs/index.html
Informationen zum Perl- Modul cgi.pm
http://www.rrz.uni-hamburg.de/RRZ/W.Wiedl/Skripte/CGIPerl/MODUL/CGIMODUL.HTM
http://www.cpan.org
Informationen auch zu PHP:
http://www.php-und-javascript.com
Perl und CGI:
http://www.wiik.de/papers/perl/node1.html
Übersicht über verschiedenste Online- Tutorials
http://www.online-tutorial.de
Übersicht über verschiedenste Online- Tutorials
http://www.online-tutorial.de
Helga Gabler, Stefanie Schwall, Christian Pape
Übungen Informatik 1
43