Zum Inhalt springen

[Perl/CGI] connect...or die... - Verhalten von DIE?!


Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich habe mal folgende Frage zum Verhalten von "die" innerhalb eines Perl-Skripts und würde mich freuen, wenn mir da jemand helfen könnte.

Folgenden Aufruf verwende ich in einem Skript, um Verbindung zu einer Datenbank herzustellen. Das Skript wird über per CGI in einem Webbrowser aufgerufen ("http://localhost/cgi-bin/dbconnect.pl"):

my $dbh = DBI->connect("DBI:$SQL_Driver:$db", $SQL_User, $SQL_Passw) 

or die "Verbindung konnte nicht hergestellt werden: $DBI::errstr\n";

Schlägt nun mal der DB-Aufruf fehl, z.b. falscher Passwort / falscher Benutzer o.ä., schreibt mir der zweite Teil des Aufrufs ("or die") den Text "Verbindung konnte nicht hergestellt werden: " plus Error-String aus "DBI::errstr" in mein Apache-Error-Logfile. Im Browser-Fenster erscheint dann überhaupt keine Ausgabe. "die" schreibt so wie ich weiß nach STDERR und da es über den Webserver aufgerufen wird ist es ja irgendwo logisch und nachvollziehbar, daß es sich um die Webserver-Error-Datei handelt. Meine Frage ist nun: Wäre es möglich die Ausgabe von "die" derart umzubiegen, daß in eine von mir vorgegebene DAtei geschrieben wird?? Folgendes hab ich schon mal probiert, aber damit kam dann nirgendwo mehr ein Hinweis auf einen Fehler an:
close STDERR;

open STDERR,"C:/apache/tmp/errortext.log" or print "Datei nicht vorhanden";
Noch eine Zusatzfrage: Wäre es okay, statt "die" ein "print" zu verwenden, damit im Browser eine Fehlermeldung erscheint, zum Beispiel so:
my $dbh = DBI->connect("DBI:$SQL_Driver:$db", $SQL_User, $SQL_Passw) 

or print "Verbindung konnte nicht hergestellt werden: $DBI::errstr\n";

Oder gäbe es da "galantere" Wege?

Vielen Dank schon mal im Voraus, wenn sich ein "Perl-ianer" meiner annehmen würde! ;)

Viele Grüße und Euch allen noch ein schönes Weihnachtsfest und schon mal einen guten Rutsch ins neue Jahr!!! :)

Flo

  • 2 Wochen später...
Geschrieben

Hallo,

ein frohes neues Jahr wünsch ich euch allen!

jetzt zu deinem Problem.

In PHP würde ich das Problem so lösen,... ich denke das kann man auch mit PERL so oder so ähnlich machen

function sqlError($errorNO)

{

$test="hahaha"." ".$errorNO;

echo $test;

// irgendwas in die Datei schreiben

}

$suche="select * from test";

$erg=mysql_query($suche)or die(sqlError('irgendeineNachricht'));

So viel Spaß beim ausprobieren

Mfg

Jhonny ;)

Geschrieben

Ui, vielen Dank! :)

Das liest sich beides interessant, insbesondere das Carp-Modul, da in der Beschreibung direkt was von "Redirect Error Messages" steht.

Das werde ich dann mal probieren. :)

Grüsse

Flori

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...