in reply to custom CGI die
tjios is a suggestion to circumvent all those errorprone hassles ... *grin*
if using apache or a server that has a similar mechanism modify .htaccess in your WEBSERVER_ROOTDIR or in the subdir where those settings shall apply as follows
ErrorDocument 400 /cgi-bin/error500.cgi ErrorDocument 401 /cgi-bin/error500.cgi ErrorDocument 402 /cgi-bin/error500.cgi ErrorDocument 403 /cgi-bin/error500.cgi ErrorDocument 404 /cgi-bin/error500.cgi ErrorDocument 500 /cgi-bin/error500.cgi
put the script in its place and modify it as needed
#!/usr/bin/perl -wT use strict; $|++; BEGIN { unshift @INC, '/home/little/lib'; unshift @INC, '/home/little/extlib'; } use CGI qw(-compile :all); $CGI::DISABLE_UPLOADS = 1; $CGI::POST_MAX = 0; my $url = 'http://little.perlmonk.org/'; #print redirect(-uri => "$url", -expires=>"now") if ($ENV{'REDIRECT_RE +DIRECT_STATUS'} eq "200"); use CGI::SSI(autotie => 'STDOUT'); #use CGI::Pretty; use XML::Simple; my $messages = ""; $messages = XMLin('/home/little/my/prefs/sysmesg.xml'); autoEscape(undef); print header(-status=>$ENV{'REDIRECT_STATUS'},-charset=>'iso-8859-1', -expir +es=>"now"), #'<!--#include virtual="/includes/logic/docinfo.shtml" -->', start_html( -title=>$messages->{error}->{$ENV{'REDIRECT_STATUS'}}->{title}, -head=>meta({ -http_equiv=>'Content-Type', -content => 'text/html; + charset=iso-8859-1'}), -base=>'true', -xbase=>$url, -lang=>'de-DE', -style=>{-src=>'/styles/rb_app.css'}, # -script=>[ # {-language=>'JavaScript', # -src=>'/scripts/rb_menu.js'} # ] ), #'<!--#include virtual="/includes/header/header.shtml" -->', div({-id=>"main"}, h1($ENV{'REDIRECT_STATUS'}." - ".$messages->{error}->{$ENV{'REDIRE +CT_STATUS'}}->{title}), p($messages->{error}->{$ENV{'REDIRECT_STATUS'}}->{description}), ), #'<pre><!--#printenv --></pre>', '<!--#include virtual="/includes/footer.shtml" -->', #end_html() ; 1;
It's possibly not the best one of its kind but suffices at least my needs. *smile*
and here is the according xml file
<?xml version="1.0" ?> <messages> <error name="400"> <title><![CDATA[Ungültige Anfrage]]></title> <description><![CDATA[ Das angeforderte Dokument existiert nicht oder nicht m +ehr auf diesem Server oder wurde an eine andere Stelle verschoben. ]]></description> </error> <error name="401"> <title><![CDATA[Autorsierung erforderlich]]></title> <description><![CDATA[ Das angeforderte Dokument ist gegen unerlaubten Zugrif +f geschützt. Für den Zugriff ist ein gültiger Benutzer +name (Login) und ein Passwort erforderlich. ]]></description> </error> <error name="402"> <title><![CDATA[Zugriff kostenpflichtig]]></title> <description><![CDATA[ Wenn Sie diese Seite sehen, dürfen Sie uns eine f +reiwillige Spende übersenden. :-) ]]></description> </error> <error name="403"> <title><![CDATA[Zugriff verweigert]]></title> <description><![CDATA[ Das angeforderte Dokument ist nicht öffentlich zu +gänglich. ]]></description> </error> <error name="404"> <title><![CDATA[Dokument nicht gefunden]]></title> <description><![CDATA[ Das angeforderte Dokument existiert nicht oder nicht m +ehr auf diesem Server oder wurde an eine andere Stelle verschoben. ]]></description> </error> <error name="420"> <title><![CDATA[Zeitweise nicht verfügbar]]></tit +le> <description><![CDATA[ Das angeforderte Dokument existiert auf diesem Server +ist jedoch in Bearbeitung und steht daher zur Zeit leider nicht zur V +erfügung. Bitte versuchen Sie es später erneut. Vielen Dank + für Ihr Verständnis. ]]></description> </error> <error name="500"> <title><![CDATA[Interner Server-Fehler]]></title> <description><![CDATA[ Bei der Bearbeitung der Anfrage hat eine Anwendung ein +en Fehler verursacht. ]]></description> </error> <error name="other"> <title><![CDATA[Fehler]]></title> <description><![CDATA[ Bei der Bearbeitung der Anfrage ist ein Fehler aufgetr +eten. ]]></description> </error> </messages>
Have a nice day
All decision is left to your taste
Update
Or see CGI::Test::Page::Error for a module.
In Section
Seekers of Perl Wisdom