Homepage Inspire-world | Forum
CGI/Perl Workshops HTML Header und Footer einsetzen

 Inhaltsverzeichnis/Workshops Übersichtsseite/HTML Header und Footer einsetzen
Hier will ich einmal mit einem einfachen Beispiel zeigen wie man externe HTML Dateien als Header und Footer einsetzt. Mit Header und Footer Dateien ist es möglich das Design eines Scriptes leichter an die eigene Homepage anzupassen. Hierbei muss man ja dann nicht im Code selbst die Werte anpassen.

1. Hier ersteinmal ein komplettes Beispiel

#!/usr/bin/perl

read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $input);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}

# Formularname
$name = $FORM{'name'};

print "Content-type: text/html\n\n";
# Hier wird das eigentliche Programm ausgeführt 
# Ist das Textfeld leer wird der erste Bereich angezeigt
if ($name eq ""){
&header; # Aufruf der Subroutine Header

print qq~
<font face="Verdana, Arial" size="2">Wie heissen Sie?</font>
<form aktion="weiter.pl" method=post>
<input type=text name="name" size="30"><br>
<input type=submit value="Weiter"><br>

</form>
~;

&footer; # Aufruf der Subroutine Footer

} else {
# So verdreht man Tatsachen *gg*
# Mit reverse dreht man den String um
$verkehrt = reverse $name;

&header; # Aufruf der Subroutine Header

print qq~
So so, Sie heissen also <b><font face="" color="#800000">$verkehrt</font></b>?!?<br>
Merkwürdig...hatten Sie nicht <b>$name</b> eingegeben?
~;

&footer; # Aufruf der Subroutine Footer
}

#############################################
# Seitenheader Subroutine
sub header {
# Seitenheader
open (HEADER, "header.html");
flock HEADER, 2;
@header = <HEADER>;
close HEADER;
# Printet die header.html Datei
print "@header\n";
}
#############################################
# Seitenfooter Subroutine
sub footer {
# Seitenfooter
open (FOOTER, "footer.html");
flock FOOTER, 2;
@footer = <FOOTER>;
close FOOTER;
# Printet die footer.html Datei
print "@footer\n";
}
#############################################
Demo: ansehen

1.1. Erläuterungen dazu

Das Header und Footer Prinzip basiert auf einer Datei die in zwei (oder auch mehrere) Teile getrennt wird und das Script dann wie einen Behälter umschließt. Das wichtigste dabei ist das beim Anlegen von Header und Footer Dateien eine gültige HTML Syntax eingehalten wird, ansonsten kann es schnell zu Darstellungsfehlern kommen.

Grundsätzlich kan man eigentlich fast jedes Script mit diesen Subroutinen ausstatten. Die Datei wird dann geöffnet und gelesen, Das Array @header wird dann per print Befehl als ganzes ausgegeben.
#############################################
# Seitenheader Subroutine
sub header {
# Seitenheader
open (HEADER, "header.html");
flock HEADER, 2;
@header = <HEADER>;
close HEADER;
# Printet die header.html Datei
print "@header\n";
}
#############################################
Mehrere solche Dateien kann man dazu benutzen um z.B. ein Menü erst dann anzuzeigen wenn sich ein User erfolgreich eingeloggt hat. Dies kann z.B. eine einzelne Tabellenreihe sein die dann erst im zweiten Abschnitt mit aufgerufen wird.

Die Einbindung bzw. der Aufruf der Header und Footer Dateien erfolgt dann einfach mit dem Subroutinenaufruf &header; oder &footer;

Hinweis: Perl Code wird in solchen Dateien nicht ausgeführt!



 Zum Inhaltsverzeichnis/Workshops Übersichtsseite/HTML Header und Footer einsetzen
Autor: Helmut Walter Homepage Inspire-world Fragen, Anregungen und Hinweise bitte in das Forum

Valid HTML 4.0! Valid CSS!