PDF-Skript - Universität Bayreuth

Transcription

PDF-Skript - Universität Bayreuth
Grundlagen der WWW-Nutzung und
WWW-Programmierung
Alfred Wassermann
Inhaltsverzeichnis
10 Vorlesung
10.1 Interaktion durch Formulare . . . . . . .
10.1.1 Einzeilige Textfelder . . . . . . .
10.1.2 Passwort-Felder . . . . . . . . . .
10.1.3 Mehrzeilige Textfelder . . . . . .
10.1.4 Auswahllisten . . . . . . . . . . .
10.1.5 Radiobuttons . . . . . . . . . . .
10.1.6 Checkboxen . . . . . . . . . . . .
10.1.7 Eingaben absenden, zurücksetzen
10.1.8 Versteckte Elemente . . . . . . .
10.1.9 Dateien übertragen . . . . . . . .
10.1.10 Einfache Buttons . . . . . . . . .
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
4
4
4
5
6
6
6
6
7
7
Kapitel 10
Vorlesung
Übungsblatt 09:
10.1
Interaktion durch Formulare
Mit Formularen kann Information vom Betrachter (auch Client genannt) an
den Server übermittelt werden und eine Aktion auf Seite des Servers ausgelöst
werden.
Client
Web-Server
01010101010101010
010010001000100110
00010111110001111
00001111000111001
Formular
Programm
HTML-Datei
Typische Anwendungen sind:
• Fahrplan-Informationen
• Online-Anmeldungen
• Online-Einkaufen
2
• Datenbank-Abfragen
• Gästebuch-Eintragungen
• Registierung bei Software-Download
• Internet-Umfragen ( Polls“)
”
• Steuerung von Programmen
Zwei simple Beispiele zur Verwendung von Formularen sind die 3n + 1-Folge
und die Formelerzeugung Aus technischer Sicht wird vom Client fast in allen
Fällen entweder
• ein Programm auf einem Server gestartet,
• oder eine Email vom Client versandt.
Ein Formular wird durch den <form>-Tag definiert:
<form action="..." method=...>
...
<input type=submit value="start">
</form>
Das Attribut action“ muß einen URL enthalten, der auf ein Programm deutet,
”
das die Angaben des Formulars auswerten kann. Das Attribut method“ kennt
”
zwei mögliche Werte GET und POST. Es bestimmt die Art der Datenübertragung
an das Serverprogramm. Für die meisten Zwecke ist method=POST die richtige
Methode. Arbeitet man mit Frames, so ist auch target= ein mögliches Attribut.
Der Befehl
<input type=submit value="start">
definiert einen Button. Klickt der Benutzer auf diesen Button, werden alle Eingaben an den unter action= spezifizierten URL geschickt. Beispiele für action
sind:
• action="http://btmdx8.mat.uni-bayreuth.de/cgi-bin/test.pl"
• action="mailto:[email protected]"
Kurzübung
Verwendet man mailto, so ist es günstig, als weitere Attribute
<form action=... enctype="text/plain" method=POST>
anzugeben. Durch enctype= werden die Angaben etwas schöner formatiert beim
Empfänger ankommen. Damit der Benutzer mailto“ verwenden kann, muß sein
”
Browser so konfiguriert sein, daß beim Klicken auf den Start-Button (SubmitButton) das email-Programm des Benutzers gestartet wird. Bei der momentanen
Konfiguration der Studenten-Accounts an der Universität Bayreuth ist dies nicht
der Fall.
Ausblick:
Die Art, wie die Daten beim Klicken auf den Submit-Button übertragen werden, ist genau durch das Common Gateway Interface, kurz CGI, spezifiziert.
3
Deshalb heißen die Programme, die meist in einer der zahlreichen InterpreterSprachen geschrieben sind, CGI-Scripts. Prinzipiell können die Daten, die durch
ein Formular an den Server übertragen werden, mit jeder Programmiersprache
ausgewertet werden.
Für Programmierer gibt es praktisch in jeder Programmiersprache Unterprogramme, die das spezielle CGI-Format auswerten können. Da die Programme
meist recht kurz sind, werden sie schnell mal“ in einer Scriptsprache geschrie”
ben. Häufig verwendete Sprachen sind Perl, Python, PHP3. Wie so etwas gemacht wird, wird in einer fortgeschrittenen Veranstaltung der Zusatzqualifikation Multimediakompetenz behandelt werden. Dort werden auch die genauen
Unterschiede zwischen POST und GET betrachtet.
Noch ein Wort zur Sicherheit: Die Daten — auch die Password-Eingaben —
werden im Klartext übertragen, können also relativ leicht abgehört werden.
Wir wollen uns lieber den möglichen Eingabefelder zuwenden. Dies sind typische Elemente, wie sie in jeder Windows-orientierten Betriebssystem-Oberfläche
vorkommen. Wichtig ist, daß jedes Eingabeelement innerhalb eines Formulars
(es können auch mehrere Formulare auf einer HTML-Seite enthalten sein) einen
eindeutigen Namen erhält.
10.1.1
Einzeilige Textfelder
Einzeilige Textfelder werden durch
<input type=text name="..." size=... maxlength=...>
angegeben. Ist kein type-attribut angegeben, wird standardmäßig ein einzeiliges Textfeld angezeigt. size bestimmt die Breite (in Zeichen) des sichtbaren
Eingabebereichs, maxlength bestimt die maximale Anzahl an Zeichen, die der
Benutzer eingeben darf. Will man dem Benutzer Standardtext vorgeben, so gibt
es das Attribut value
<input type=text name="vorname" value="Heinz">
Kurzübung
10.1.2
Passwort-Felder
Fast identisch mit dem Textfeld ist das Passwort-Feld. Es unterscheidet sich
lediglich dadurch, daß die Eingaben, die der Benutzer tippt, als Sternchen auf
dem Bildschirm erscheinen.
<input type=password name="geheimwort">
Kurzübung
10.1.3
Mehrzeilige Textfelder
Für Textfelder, die sich über mehrere Zeilen erstrecken sollen, gibt es den Befehl
<textarea>
<textarea name="..." rows=.. cols=...>
hier steht Standardtext...
</textarea>
4
rows und cols geben die Anzahl der Zeilen und Spalten (in Zeichen) an, über
die sich das Textfeld erstrecken soll.
Für <textarea> gibt es ein Attribut, das den Zeilenumbruch bei der Eingabe
steuert:
• wrap=off fügt keinen automatischen Zeilenumbruch bei der Eingabe ein
(Dies ist die Voreinstellung).
• wrap=virtual fügt automatisch Zeilenumbruch bei der Eingabe ein. Die
Zeilenumbrüche werden aber nicht an den Server übertragen.
• wrap=physical fügt automatisch Zeilenumbruch bei der Eingabe ein und
diese werden auch an den Server übertragen.
Kurzübung
10.1.4
Auswahllisten
Der Benutzer kann ein oder mehrere Elemente aus einer vorgegebenen Liste
auswählen:
<select name="..." size=...>
<option> aaa
<option> bbb
...
<option> zzz
</select name="..." size=...>
Das Attribut size gibt an, wieviel Einträge angezeigt werden sollen. size=1
definiert eine Drop-Down-Liste “(dies ist der Standard, es bedeutet, daß am
”
ursprünglich nur das erste Element der Liste sichtbar ist. Erst beim Klicken
auf das Element wird die gesamte Liste bis zu einer Maximallänge sichtbar).
<option> definiert einen Listeneintrag. Der Abschluß-Tag </option> ist dabei
nicht zwingend erforderlich.
Ist das Attribut multiple angegeben,
<select name="..." multiple>
können mehrere Einträge gleichzeitig ausgewählt werden. Sollen Einträge standardmäßig ausgewählt sein, so gibt man im <option>-Tag das Attribut selected
an.
Kurzübung
An den Server wird dann der Text, der nach <option> steht, übertragen. Im
Beispiel
<option> aaa
wird der Sever den Text aaa erhalten.
Alternativ kann man mit value=... den zu übertragenden Text verändern:
<option value="a"> aaa
Hier bekommt der Server den Text a geliefert.
Kurzübung
5
10.1.5
Radiobuttons
Radiobuttons ermöglichen eine eindeutige Auswahl aus mehrere Alternativen.
Die Anwahl eines Knopfes schaltet alle anderen Radiobuttons mit demselben
Namen aus.
<input type=radio name="schalter" value="1"> rot
<input type=radio name="schalter" value="2"> gr"un
<input type=radio name="schalter" value="3"> blau
Eine Vorauswahl kann mit dem Attribut checked getroffen werden.
Kurzübung
10.1.6
Checkboxen
Das Gegenstück zu Radio-Buttons sind Checkboxen: Es können mehrere Elemente aus einer Gruppe, deren Name übereinstimmt, angewählt werden:
<input
<input
<input
<input
<input
type=checkbox
type=checkbox
type=checkbox
type=checkbox
type=checkbox
name="liste"
name="liste"
name="liste"
name="liste"
name="liste"
value="hose"> Hose
value="rock"> Rock
value="bluse"> Bluse
value="socke"> Socke
value="hemd"> Hemd
Vorauswahlen können mit dem Attribut checked getroffen werden.
Kurzübung
10.1.7
Eingaben absenden, zurücksetzen
Die Eingaben eines Formulars können durch klicken auf den bereits angesprochenen Submit-Button abgeschickt werden:
<input type=submit value="Abschicken">
Das Attribut value bestimmt die Beschriftung des Buttons. Mit
<input type=reset value="Reset">
werden alle Felder des Formulars auf die ursprünglichen Werte zurückgesetzt.
Kurzübung
10.1.8
Versteckte Elemente
Für gewisse Anwendungen, besonders wenn die Kommunikation zwischen Client und Server komplexer wird, ist es erwünscht, gewisse Information für den
Benutzer unsichtbar zu transportieren. Dazu gibt es das versteckte (hidden)
Elemente.
<input type=hidden name="..." value="...">
Ein Beispiel aus SELFHTML:
6
<form name="test" ...>
<input type=hidden name="browser" value="">
...
</form>
<script language="JavaScript">
document.test.browser.value=navigator.userAgent;
</script>
Im versteckten Element browser wird der Name des vom Benutzer verwendeten
Browsers übertragen. Dieser wird mit einem JavaScript-Befehl gesetzt.
Kurzübung
10.1.9
Dateien übertragen
Mit dem Befehl
<form ... enctype="multipart/form-data">
<input type=file maxlength="1000000" name="..." accept="text/*">
</form>
kann eine Datei an das Formular angehängt werden. Die Weiterbehandlung
der Datei auf Server-Seite erfordert jedoch etwas mehr Umstände als andere
Elemente und würde den Rahmen der Veranstaltung sprengen.
10.1.10
Einfache Buttons
Es gibt auch noch die Möglichkeit einfache Buttons zu definieren, die keine Information transportieren. Diese werden normalerweise mit JavaScript angesprochen, d. h. klickt man auf einen dieser Buttons wird ein JavaScript-Programm
ausgeführt, das vom Autor zu bestimmen ist.
Beispiel:
<form ... >
<input type=button value="Zur&uuml;ck" onClick="history.back()">
</form>
JavaScript wird in einer eigenen, späteren Veranstaltung behandelt werden.
Kurzübung
In HTML 4.0 gibt es noch eine Reihe weiterer Attributen und Elementen, die das
Verhalten und Aussehen von Formularen beeinflussen. Meist sind diese jedoch
noch bei keinem Browser realisiert. Daher verweisen wir hier lediglich auf die
Literatur.
7
Literaturverzeichnis
[1] Born, Günter: Referenzhandbuch Dateiformate, Addison-Wesley (1996).
[2] Bruns, B., Gajewski, P.: Multimediales Lernen im Netz, Springer-Verlag
(1999).
[3] Bush, Vannevar: As we may think, in The Atlantic Monthly, July 1945,
siehe http://www.w3.org/History/1945/vbush/
[4] Haaß, Wolf-Dieter: Handbuch der Kommunikationsnetze, Springer-Verlag
(1997).
[5] Hauben,
Michael:
History
of
ARPANET,
http://www.dei.isep.ipp.pt/docs/arpa-Contents.html
siehe
[6] Klau, Peter: Das Internet, Thomson Publishing (1995).
[7] Krol, Ed: Die Welt des Internet, O’Reilly-Verlag (1995).
[8] Levine, John, Young, Margaret: More Internet für Dummies, Thomson Publishing (1996).
[9] Stefan
Münz:
SELFHTML,
http://www.teamone.de/selfhtml
erhältlich
bei
[10] Rost, Martin, Schack, Michael (Hrsg.): Der Internet Praktiker (1995),
Heise-Verlag.
[11] Schulmeister, Rolf: Grundlagen hypermedialer Lernsysteme, AddisonWesley (1996).
8