Hallo zusammen,
ich habe ein Perl Script erstellt, welches aufgerufen wird, wenn eine Seite nicht gefunden wurde. Alles schön und gut, das Script läuft und sendet auch brav seine eMail, DOCH der Link, von welchem das Script aufgerufen wird , wird nicht angezeigt (Ich nehme an, das liegt an .htaccess) aber wie bekomm ich es hin, dass dieses Script die fehlerhafte Seite anzeigt, oder den Link, oder was sonst auch immer mir sagt welche Seite nicht gefunden wurde.
Vielen Dank schon mal für die Mühe
mFg
Torwächter
Idee:
Schreib einfach mal das gesamte %ENV-Hash raus, entweder zum Browser oder in die Mail. Dann kannst Du nachsehen, in welcher Variable dein Link steht.
Ansatz für Mail:
print MAIL "Environment Dump:\n";
foreach my $key (sort keys %ENV) {
print MAIL "$key => $ENV{$key}\n";
}
Ansatz für HTML (ohne CGI-Modul):
print "<H3>Environment Dump</H3>\n<P><PRE>\n";
foreach my $key (sort keys %ENV) {
print MAIL "$key => $ENV{$key}\n";
# ^-- hier sollte man eigentlich escapen ...
}
print "</PRE></P>\n";
Ansatz à la Perl - use the Modules, Dude:
use CGI qw(:all);
use Data::Dumper;
...
für HTML
print
h3('Environment Dump'),
p(pre($CGI::Q->escapeHTML(Dumper(%ENV))));
für Mail
print MAIL "Environment Dump:\n",Dumper(%ENV),"\n";
Datenfluß:
Du schreibst ein Formular raus. Zu diesem Zeitpunkt kennst Du die fehlerhafte URL. Dann läßt Du den User das Formular ausfüllen, schleppst die fehlerhafte URL aber nicht mit, so daß beim nächsten Aufruf des CGIs durch den Surfer (beim Auswerten des Formulars) diese Information verloren ist. Pack die URL als Hidden-Feld ins Formular.
Ich denke, daß Du ohne das Formular auskommen könntest, denn Du könntest einfach fehlerhafte URL und Referrer loggen, das reicht i.d.R. aus, um kaputte Links zu finden.
Nörgel 1:
Wie schon geschrieben: Nimm das Standard-CGI-Modul, damit baust Du garantiert (naja, fast ;-)) keine unbeabsichtigten Hintertüren in den Script ein. Das Modul ist 1000fach im Einsatz und besser getestet als alles, was Du selbst schreiben kannst.
Nörgel 2:
Dein Englisch ist -- sorry! -- grausam. Laß es sein oder frag jemanden, der sich damit auskennt.
Tux2000