ein Kapitel zurück                                           ein Kapitel weiter

CGI.pm
Das CGI.pm Modul gehört zu einem der Hauptgründe weswegen die meisten CGI-Skripts in Perl geschrieben wurden. Damit wird die CGI-Programmierung fast zum Kinderspiel. Dieses Modul ist mittlerweile Bestandteil von Perl und muss nicht mehr extra heruntergeladen werden. CGI.pm wird hauptsächlich verwendet um die Daten zu decodieren, wie sie bereits gesehen haben. Auch haben sie die Möglichkeit HTML-Tags zu erzeugen. Ich möchte ihnen in diesem Kapitel einen kurzen Überblick zu dem Modul verschaffen. Mehr Informationen finden sie außerdem unter perldoc CGI.

CGI.pm verwenden
Um CGI zu verwenden müssen sie logischerweise das Modul angeben....

use CGI;  

Wollen sie ein neues Objekt erzeugen, gehen sie folgendermaßen vor...

$xyz=new CGI;  

Wollen sie jetzt zum Beispiel aus einer POST oder GET Methode den Parameter 'Text' ermitteln gehen sie so vor....

$name=$xyz->param('Text');  

Wollen sie nicht wie in diesem Beispiel immer mit Objekten und den Verweisen darauf arbeiten können sie auch den Standardmodus verwenden....

use CGI qw(:standard);  

Dann sieht das Erfragen eines Parameters wie folgt aus....

$name=param('Text');  

Die Methode param() läßt sich noch in vielen anderen Möglichkeiten einsetzen. Wir werden dies noch öfters in der Praxis sehen.

HTML - Formen
Wollen wir uns nun die Formen ansehen die wir in den nächsten Kapiteln verwenden werden. Wir sehen uns dies in der reinen HTML-Darstellung und alternativ die Vereinfachung mit Hilfe des CGI.pm Moduls.


Textfelder:

So siehts aus:



So wird es gemacht in HTML :

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

So wird es gemacht mit dem CGI.pm Modul :

print $q->textfield(-name=>'Name', -default=>'dein name',
                    -size=>32    , -maxlength=>32);  


Textbereiche:

So siehts aus:



So wirds gemacht in HTML :

<textarea name="Adresse" rows=6 cols=32>Textinhalt  

So wird es gemacht mit dem CGI.pm Modul :

print $q->textarea(-name=>'Adresse', -default=>'Textinhalt',
                   -rows=>6, cols=>32);  


Anonyme-Textfelder für Passwörter :

So siehts aus:



So wird es gemacht in HTML:

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

So wird es gemacht mit dem CGI.pm Modul :

print $q->password_field( -name=>'Passwort', -default=>'abcdefg',
                          -size=>16, -maxlength=>16);  


Listboxen :

So siehts aus:



So wird es gemacht in HTML :

<select name='alter' size=5>
<option>10-15 Jahre
<option>15-20 Jahre
<option>20-25 Jahre
<option>25-30 Jahre
<option>30-35 Jahre
<option>35-40 Jahre
<option>40-...Jahre
</select>  

So wird es gemacht mit dem CGI.pm Modul :

@alter=('10-15 Jahre','15-20 Jahre','20-25 Jahre','25-30 Jahre',
        '30-35 Jahre','35-40 Jahre','40-...Jahre');
print $q->scrolling_list(-name=>'alter', ->values=>\@alter,
                         -default=>'20-25 Jahre', -size=>5);  


Checkboxen :

So siehts aus :



So wird es gemacht in HTML :

<input type=checkbox name='auswahl' value='yes' checked>  

So wird es gemacht mit dem CGI.pm Modul :

print $q->checkbox( -name=>'auswahl', -value=>'yes', -checked=>'true');  


Radio Buttons : So siehts aus :



So wird es gemacht in HTML :

<input type=radio name='alter' value='10-30 Jahre' checked>
<input type=radio name='alter' value='30-...Jahre'>  

So wird es gemacht mit dem CGI.pm Modul:

print $p->radio_group( -name=>'alter', -values=>['10-30 Jahre','30-...Jahre'],
                       -default=>'10-30 Jahre', -linebreak=>'true');  


Submit und Reset-Schalter :

So siehts aus :



So wird es gemacht in HTML:

<input type=submit name='action' value='Senden'>
<input type=reset  value='Zurücksetzen'>  

So wird es gemacht mit dem CGI.pm Modul:

print $q->submit( -name=>'action', -value=>'Senden');
print $v->reset(-value=>'Zurücksetzen');  


Pop-up-Menüs :

So siehts aus :



So wird es gemacht in HTML:

<select name='Zahl' size=1>
<option>1
<option>2
<option>3
<option>4
</select>  

So wird es gemacht mit dem CGI.pm Modul :

@zahl = qw(1 2 3 4);
print $q->popup_menu( -name=>'Zahl', -values=>\@zahl, -default=>'1');  


Neues Fenster öffnen :

So siehts aus :



So sieht das CGI-Skript aus :

#!C:\perl\bin\perl.exe

use CGI;
$q=new CGI;
print $q->header;

print $q->start_html('New Window');
if(!$q->param){
  print $q->startform(-target=>'http://localhost/');
  print $q->submit('Action', 'Neues Fenster öffnen');
  print $q->endform;
  }
else{
  print "<center><b>Hier ist Ihr neues Fenster!</b></center>\n";
  }
print $q->end_html;


Dies war jetzt ein kurzer Überblick über die HTML-Formen und Ihre Anwendung in CGI. Wir werden diese noch häufig in der Praxis sehen. Noch viel mehr finden sie unter perldoc CGI.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf