Thread Anzeige einer require() Datei nur einmal
(6 answers)
Opened by mkessler at 2007-11-14 17:51
Hallo,
ich habe folgendes Problem: Ich baue mir z.Z. ein spartanisches Gästebuchscipt mit Perl um mir ein paar Grundkenntnisse anzueignen (das Gästebuch ist nicht für die Öffentlichkeit bestimmt, daher auch ohne CSS usw. usf.) . Nun prüfe ich, welche Funktion im GET Parameter 'do' eingesetzt wurde, je nachdem zeigt er mir die entsprechenden Inhalte an. Nun habe ich das mit dem Wert "add" gemacht, der mir die add.pl einbinden soll (require). Seltsamerweise zeigt Perl mir die Seite nur einmal an - wenn ich aktualisiere, komme ich auf eine leere Seite. Um mir das nochmal anzusehen, muss ich Apache neustarten. Übrigens: Der Content-Type wird, wenn es denn mal angezeigt wird, völlig missachtet - ich bekomme eine Textausgabe. index.pl Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #!/usr/bin/perl use CGI; chdir "C:/Users/Martin/Desktop/Server/htdocs/perlbook"; $cgi = new CGI; use CGI::Carp qw(fatalsToBrowser); require "do.pl"; # Ausgabe des HTTP Headers print "Content-type: text/html\n\n"; print qq( <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>Gästebuch auf Textseitenbasis mit PERL</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> </head> <body> ); # Waehle Content if ($cgi->url_param('do') eq "") { print qq( <h1>Gästebuch - Einträge lesen</h1> ); } else { if ($cgi->url_param('do') eq "add") { require "add.pl" or die("fuck"); } } add.pl Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 print qq( <h1>Gästebuch - Einträge verfassen</h1> <p>Hier können Sie einen Eintrag in meinem Gästebuch hinterlassen. Bitte füllen Sie das untenstehende Formular aus.</p> <form method="post"> Name: <input type="text" name="name" size="25" value=""> eMail: <input type="text" name="name" size="25" value=""> Homepage: <input type="text" name="name" size="25" value="http://"> <input type="submit" name="add" value="OK"> </form> ); if ($cgi->url_param()) { print "<p><strong>Es wurden nicht alle Felder ausgefüllt!</strong></p>"; } System: Windows Vista mit XAMPP 1.6.2 und Mod_Perl 2.0.3 (Perl 5.008008). |