Thread Umbau eines Skript mit der CGI-Bibliothek
(13 answers)
Opened by Michael47 at 2016-01-24 13:44
Du wirst dich ja schon mit HTML befasst haben im Rahmen deiner Ausbildung.
HTML-Elemente können auch mittels der Bibliothek CGI erzeuget werden, siehe: CGI::HTML::Functions Bitte auch die Doku ansehen beim üben! Probieren wir es mal. Ein Hinweis wie das Modul CGI arbeitet. Start- und End-Elemente von HTML werden dargestellt durch start_ELEMENTNAME und end_ELEMENTNAME. Komplette HTML-Blöcke/Elemente ohne das start_ oder end_. Der Anfang des HTML-Gerüsts wird vereinfacht ohne das Modul oft so ausgegeben Mit Modul lässt sich auch so bewerkstelligen Code (perl): (dl
)
print $cgi->start_html; Das Ende eines HTML-Blocks kann ähnlich durch Code (perl): (dl
)
print $cgi->end_html; Ein P-Element mit Text kann so erzeugt werden Code (perl): (dl
)
print $cgi->p("Das ist ein Text"); wird zu Code: (dl
)
<p>Das ist ein Text</p> Das ist auch gleichbedeutend mit Code (perl): (dl
)
print $cgi->start_p,"Das ist ein Text", $cgi->end_p; Formatierungen innerhalb von HTML-Elementen wie I, B, EM etc. gehen auch. Code (perl): (dl
)
print "Das HTML-Element I ist ", $cgi->i("Kursiv"), " und B ist ", $cgi->b("Fett"); Zur Erzeugung von verschachtelten HTML-Elementen lassen sich auch diese Funktionen so schachteln: Code (perl): (dl
)
1 2 3 4 5 print $cgi->div( $cgi->p("Ein Absatz mit ",$cgi->i("kursivem"), " Text"), # Absatz 1 mit diversem Text $cgi->br(), # ein Zeilenumbruch $cgi->p("2. Absatz") # Absatz 2 mit diversem Text ); erzeugt dann Code: (dl
)
<div><p>Ein Absatz mit <i>kursivem</i> Text</p> <br /> <p>2. Absatz</p></div> Wenn Elemente noch Attribute haben, müssen diese vor dem Element-Inhalt in geschweiften Klammern stehen, damit das Modul die einfügt. Attributnamen und Attributwerte werden zur besseren Erkennung der Zusammengehörigkeit mit => getrennt. Ein HTML-Element P mit einem Attribut ID mit dem Wert erstezeile kann also so werzeugt werden: Code (perl): (dl
)
$cgi->p({ id=>"erstezeile }, "Text Text"); Mehrere Attribute wenden Liste durch Komma getrennt. Code (perl): (dl
)
$cgi->p({ id=>"erstezeile, name=>"ez", style=>"font-size:200%" }, "Text Text"); ergibt dann: Code (perl): (dl
)
<p id="erstezeile" name="ez" style="font-size:200%">Text Text</p> Nun zu Formularen wie in https://metacpan.org/pod/distribution/CGI/lib/CGI/... gezeigt. Also fangen wir mal an (und schrieben es mehrzeilig zur besseren Kommentierung). Ein Formular beginnt also mit start_form, braucht aber noch ein paar Parameter um komplett zu sein. Code (perl): (dl
)
1 2 3 4 5 print start_form( -method=>"POST", # Übersendung der Daten mit HTTP-Methode POST -action=>"#" # sendet an das gerade aufgerufene Perl-Programm selbst ); # dazwischen weitere Ausgaben Code (perl): (dl
)
print end_form; Etwas unstrukturiert beschrieben, aber ich bin auch nicht deine Dozentin und kann nich so eben mal ein Perl-CGI-HTML-Lernskript aus dem Pullover schütteln. ;) Musst du bei Problemen hier weiter fragen. Dann probier mal. Viel Erfolg. Last edited: 2016-01-25 10:17:56 +0100 (CET) |