Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 << zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch für Linux, Unix und Windows
– 2., aktualisierte und erweiterte Auflage 2006
Buch: C von A bis Z

C von A bis Z
1.116 S., mit CD, Referenzkarte, 39,90 Euro
Galileo Computing
ISBN 3-89842-643-2
gp Kapitel 26 CGI mit C
  gp 26.1 Was ist CGI?
  gp 26.2 Vorteile von CGIs in C
  gp 26.3 Andere Techniken der Webprogrammierung
  gp 26.4 Das dreistufige Webanwendungsdesign
    gp 26.4.1 Darstellungsschicht
    gp 26.4.2 Verarbeitungsschicht
    gp 26.4.3 Speicherschicht
  gp 26.5 Clientseitige Programmierung
    gp 26.5.1 JavaScript
    gp 26.5.2 Java-Applets
  gp 26.6 Serverseitige Programmierung
  gp 26.7 Der Webserver
    gp 26.7.1 Das Client/Server-Modell des Internets
    gp 26.7.2 Serverimplementierung
    gp 26.7.3 Hosting-Services
    gp 26.7.4 Schlüsselfertige Lösung
    gp 26.7.5 Weitere Möglichkeiten
    gp 26.7.6 Apache
  gp 26.8 Das HTTP-Protokoll
    gp 26.8.1 Web-Protokolle
    gp 26.8.2 Wozu Protokolle?
    gp 26.8.3 Was ist ein Protokoll?
    gp 26.8.4 Normen für die Netzwerktechnik
    gp 26.8.5 Das OSI-Schichtenmodell
    gp 26.8.6 Die Elemente einer URL
    gp 26.8.7 Client-Anfrage – HTTP Request (Browser-Request)
    gp 26.8.8 Serverantwort (Server-Response)
    gp 26.8.9 Zusammenfassung
  gp 26.9 Das Common Gateway Interface (CGI)
    gp 26.9.1 Filehandles
    gp 26.9.2 CGI-Umgebungsvariablen
    gp 26.9.3 CGI-Ausgabe
  gp 26.10 HTML-Formulare
    gp 26.10.1 Die Tags und ihre Bedeutung
  gp 26.11 CGI-Eingabe
    gp 26.11.1 Die Anfrage des Clients an den Server
    gp 26.11.2 Eingabe parsen
  gp 26.12 Ein Gästebuch
    gp 26.12.1 Das HTML-Formular (guestbook.html)
    gp 26.12.2 Das CGI-Programm (auswert.cgi)
    gp 26.12.3 Das HTML-Gästebuch (gaeste.html)
    gp 26.12.4 Das Beispiel ausführen
  gp 26.13 Ausblick


Galileo Computing - Zum Seitenanfang

26.10 HTML-Formulare  downtop

Mit den Umgebungsvariablen allein könnten Sie schon ein ganzes Arsenal von CGI-Anwendungen schreiben. Aber irgendwann werden Sie auch Daten eines HTML-Formulars auswerten wollen. Und darum geht es in diesem Abschnitt, nämlich um das Erstellen eines solchen Formulars. Natürlich handelt es sich dabei nur um einen groben Überblick. Sollten Sie mehr Wissen zu den HTML-Tags von Webformularen oder HTML im Allgemeinen benötigen, finden Sie im Anhang einige Links und Bücherempfehlungen.


Galileo Computing - Zum Seitenanfang

26.10.1 Die Tags und ihre Bedeutung  toptop

Jetzt lernen Sie einige HTML-Tags kennen, mit denen Sie so genannte Webformulare erstellen können.


Hinweis   Der Inhalt von HTML-Dateien befindet sich eingeschlossen in so genannten Tags. Ein Tag besteht zum einen aus dem HTML-Befehl selbst und zum anderen aus einer Kennzeichnung, ob es sich dabei um einen einführenden oder einen abschließenden HTML-Befehl handelt.

Der Bereich zwischen dem einführenden und dem abschließenden Tag wird als Gültigskeitsbereich bezeichnet. Als Beispiel hier die Tags, die Ihren Webbrowser anweisen, das angeforderte Dokument als HTML-Seite zu interpretieren und darzustellen:

<html> Das sehen Sie im Browser </html>


<form>-Tag

Diesen Tag werden Sie bei jedem Formular verwenden. Alle anderen Formular-Tags stehen zwischen den Tags <form> und </form>:

<form>
...
Formularinhalt
...
</form>

Folgende zwei Attribute des <form>-Tags sind von besonderem Interesse:

gp  method – Wie der Name schon sagt, legen Sie damit fest, mit welcher Request-Methode Sie die CGI-Anwendung aufrufen. Meistens dürften dies die Methoden GET oder POST sein. Wird keine Methode angegeben, wird die GET-Methode verwendet.
gp  action – Damit geben Sie die URL der CGI-Anwendung an, mit der Sie beabsichtigen, die Formulareingaben zu bearbeiten.

Somit könnte der <form>-Tag folgendermaßen aussehen:

<form action="./cgi-bin/auswert.cgi" method="POST">
...
Formularinhalt
...
</form>

<input>-Tag

Mit dem <input>-Tag können Sie eine Menge Formularobjekte erzeugen. Unterschieden werden diese durch das type-Attribut. Besonders wichtig für CGI-Anwendungen ist außerdem das Attribut name. Damit können Sie beim Auswerten eines Formulars auf den übergebenen Wert zugreifen. Jetzt zu den einzelnen Typen des <input>-Tags.

<input type="text">

So sieht es aus:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.14   Einzeiliges Eingabefeld

So wird es gemacht:

<input type=text name="name" size=32
       maxlength=32 value="dein name">

Tabelle 26.11   <input> – Tag (Text)

Bedeutung der Attribute
size Gibt die Breite des Textfeldes an.
maxlength Anzahl der Zeichen, die eingegeben werden können.
value Wert, der standardmäßig im Text erscheint. Wird dieses Attribut nicht verwendet, bleibt das Textfeld leer.

<input type="password">

So sieht es aus:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.15   Einzeiliges Passwortfeld

So wird es gemacht:

<input type=password value="abcdefg" size=16, maxlength=16>


Tabelle 26.12   <input> – Tag (Passwort)

Bedeutung der Attribute
Als Attribute werden dabei dieselben wie schon beim Textfeld (type=text) verwendet. Dieses Eingabefeld dient allerdings nur als Bildschirmschutz, denn bei der GET-Methode wird das Passwort unverschlüsselt im Query-String angezeigt.

<input type="radio">

So sieht es aus:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.16   Radiobuttons

So wird es gemacht:

<input type="radio" name="essen" value="Pizza" checked> Pizza<br>
<input type="radio" name="essen" value="Pommes"> Pommes<br>
<input type="radio" name="essen" value="Salat"> Salat<br>

Tabelle 26.13   <input> -Tag (Radiobuttons)

Bedeutung der Attribute
value Dieser Wert wird, falls aktiviert, beim Request an die CGI-Anwendung mitgeschickt.
checked Dieses Attribut können Sie nur an einen Radiobutton in der Gruppe übergeben. In diesem Beispiel ist das die Gruppe essen.

<input type="checkbox">

So sieht es aus:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.17   Checkboxen

So wird es gemacht:

<input type="checkbox" name="zusatz" value="10000">
Nachnahme (+6 Euro)<br>
<input type="checkbox" name="zusatz" value="20000">
Express &nbsp;&nbsp;(+2 Euro)<br>
<input type="checkbox" name="zusatz" value="30000">
Versichert(+2 Euro)<br>

Tabelle 26.14   <input> – Tag (Checkboxen)

Bedeutung der Attribute
Die Checkboxen können ebenso verwendet werden wie schon die Radiobuttons, allerdings mit dem Unterschied, dass mit Checkboxen eine Mehrfachauswahl möglich ist. Natürlich kann man hier das Attribut checked ebenfalls mehrmals verwenden.

<input type="submit"> und <input type="reset">

So sieht es aus:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.18   Schaltflächen (Buttons)

So wird es gemacht:

<input type="Submit" name="sub" value="Abschicken">
<input value="Zurücksetzen" type="reset">

Tabelle 26.15   <input> – Tag (Schaltflächen)

Bedeutung der Attribute
Mit dem Button vom Typ Submit wird das Formular abgeschickt. Es wird also eine Anfrage an die URL gemacht, welche Sie im <form>-Tag beim action-Attribut angegeben haben. Das Attribut name macht beim Submit-Button eigentlich nur dann Sinn, wenn Sie mehrere Submit-Buttons für ein Formular verwenden. Mit dem Button vom Typ reset werden alle bisher veränderten Werte im Formular wieder auf ihren Ursprungszustand gesetzt. Die Beschriftung der beiden Buttons legen Sie mit dem Attribut value fest.

<texarea>-Tag

So sieht es aus:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.19   Mehrzeiliges Textfeld

So wird es gemacht:

<textarea name="textform" cols="32" rows="6">Textinhalt
</textarea>

Tabelle 26.16   <textarea> – Tag

Bedeutung der Attribute
Damit haben Sie einen Textbereich mit einer Breite von 32 Zeichen und sechs Spalten erstellt. Den Text, den Sie zwischen den Tags <textarea>text</textarea> schreiben, finden Sie in dem Textbereich wieder. Außer den für sich selbst sprechenden Attributen cols und rows können Sie noch das Attribut wrap verwenden. Damit können Sie angeben, ob und wie der Text am Zeilenende gebrochen werden soll. Als Parameter können Sie dazu verwenden : virtual, physical und none.

<select>-Tag

Mit dem <select>-Tag können zwei unterschiedliche Arten von Listen erzeugt werden. Welche Art, das bestimmen Sie mit dem Attribut size. Geben Sie für dieses Attribut den Wert 1 an, erstellen Sie ein Aufklappmenü. Geben Sie diesem Attribut beispielsweise den Wert 5, so haben Sie eine Scroll-Liste, mit fünf sichtbaren Elementen. Als Beispiel:

size=1

So sieht es aus:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.20   Listen (Aufklappmenü)

So wird es gemacht:

Seite bewerten:
<select name="Bewertung" size="1">
<option>Note 1</option>
<option>Note 2</option>
<option>Note 3</option>
<option>Note 4</option>
<option>Note 5</option>
<option>Note 6</option>
</select>

Tabelle 26.17   <select> – Tag

Bedeutung der Attribute
Mithilfe des <option>-Tags können Sie die möglichen Werte im Klartext schreiben, da der Tag <select> kein value-Attribut besitzt. Setzen Sie beim <option>-Tag zusätzlich noch das Attribut selected, können Sie dieses Element in der Liste als ausgewählt anzeigen lassen.

Die zweite Möglichkeit:

size= (>1)

So sieht es aus:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.21   Listen (Scrollbox)

So wird es gemacht:

Seite bewerten:
<select name="Bewertung" size="4">
<option>Note 1</option>
<option>Note 2</option>
<option>Note 3</option>
<option selected>Note 4</option>
<option>Note 5</option>
<option>Note 6</option>
</select>

Tabelle 26.18   <select> – Tag

Bedeutung der Attribute
Zusätzlich können Sie mit dem Attribut multiple beim <select>-Tag dafür sorgen, dass mehrere Optionen ausgewählt werden können. Dies funktioniert natürlich nur mit Scroll-Listen. Außerdem müssen Sie im Falle einer Mehrfachauswahl die STRG-Taste gedrückt halten.

Zu diesen Tags gibt es natürlich noch eine Menge weiterer Attribute und Optionen. Diese hier alle zu erwähnen, würde den Rahmen sprengen. Sollten Sie mehr darüber lernen wollen, habe ich Ihnen im Anhang Links und empfehlenswerte Literatur zusammengestellt. Oder noch besser, Sie sehen sich einfach den Quelltext diverser Webseiten an, deren Formulare Ihnen besonders gut gefallen. Aber auch hier gilt: nur inspirieren lassen und nicht klauen.

 << zurück
  
  Zum Katalog
Zum Katalog: C von A bis Z
C von A bis Z
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-Programmierung


Zum Katalog: C/C++






 C/C++


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Reguläre Ausdrücke






 Reguläre Ausdrücke


Zum Katalog: Linux






 Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de