katrin: Wie uebergebe ich eine Fehlermeldung an meine HTML Oberflaeche

Hallo zusammen!

Mein Problem ist folgendes: ueber eine HTML-Oberflaeche gibt mir eine user einen
Pfad an ($ort). Ich moechte mit meinen Skript in die angegebene Directory gehen und die
Files dort einlesen. Hat sich der user verschrieben, moechte ich ihm auf der
HTML Oberflaeche dies angeben. Ich habe dies zuerst wie folgt versucht:

#!/usr/bin/perl
use File::Copy;

print "Content-type:text/html\n\n";
print "<html><head><title>Maske</title></head>\n";
print "<body>\n";

#usw, die Eingabe vom user wird korrekt eingelesen.

opendir(PDB, "$ort") || die "$ort existiert nicht\n";

usw

print "</body></html>";

Mit "die" erscheint die Fehlerangabe aber nicht auf der HTML-Oberflaeche, sondern
nur auf meiner shell, wenn ich das Programm von dort starte. Damit kann ich dem
user seinen Fehler nicht mitteilen. Dann habe ich es mit

opendir(PDB, "$ort") || {print "$ort existiert nicht\n"; exit(0);};

versucht, aber so geht es auch nicht. Diverse andere Versuche (andere Klammerung,
"die" statt "exit" usw.) schlugen auch fehl und mir fehlt die Programmiererfahrung um
den Fehler in meinen Ansaetzen zu finden. Mein Problem ist nicht, ueberhaupt eine
Ausgabe auf meiner html-Seite zu erzeugen sondern nur, die Fehlermeldung dort darzustellen.
Ich hoffe, ihr koennt mir weiterhelfen.
Ganz lieben Dank
Gruss Katrin

  1. Hallöle,

    Mein Problem ist folgendes: ueber eine HTML-Oberflaeche gibt mir eine user einen
    Pfad an ($ort). Ich moechte mit meinen Skript in die angegebene Directory gehen und die
    Files dort einlesen. Hat sich der user verschrieben, moechte ich ihm auf der
    HTML Oberflaeche dies angeben. Ich habe dies zuerst wie folgt versucht:
    [...]
    opendir(PDB, "$ort") || die "$ort existiert nicht\n";

    Probiere statt opendir mal diese Variante:
    unless ( -d $ort ) {
      print "<p>Das Verzeichnis $ort existiert nicht</p>\n";
    }

    http://selfhtml.teamone.de/cgiperl/funktionen/dateiverwaltung.htm#TabelleDateitestoperatoren

    Viele Grüße
    Torsten

    --
    Dieses Posting kommt ohne Garantie auf Vollständigkeit, Richtigkeit und Funktionalität. Geposteter Quelltext ist, soweit nicht anders angegeben, ungetestet.
    ss:| zu:) ls:] fo:) de:[ va:| ch:? sh:( n4:~ rl:? br:> js:| ie:% fl:( mo:)
  2. Hallo Katrin,

    wenn Du in dein Skript folgendes Modul einbindest:
    use CGI::Carp qw( fatalsToBrowser );
    bekommst Du alle Fehlermeldungen auf dem Browser dargestellt.

    Probier es einfach mal aus!

    Gruß
    Helmut Weber

    --
    -------------------------------------------
    Mode ist eine Variable, Stil eine Konstante
  3. Hi katrin,

    die "$ort existiert nicht\n";

    "$!" würde eine genauere Information liefern als Dein (konstanter) Text.

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
     => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
    Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
    1. Vielen Dank euch allen,

      Gruss Katrin

  4. Moin Katrin,

    opendir(PDB, "$ort") || die "$ort existiert nicht\n";

    Du musst als Alternative nicht die nehmen, du kannst auch einen anderen Befehl, wie etwa print, oder eine eigene Subroutine als Alternative angeben.

    Grüße Andres Freund