Gustl: Rückgabe Browsermeldung protokollieren und (SQL)Datentypen

Hi all.

Ist wahrscheinlich wieder mega-einfach aber ich seh es nicht.

  1. Wie kann ich die Felermeldungen die der Browser normalerweise bei Scriptabbruch ausgibt in einer Datei protokollieren?

use strict;

.....

print DATEI"$ENV{irgendwas}"; ... oder so ...

Ich hab da ein empfindliches Script, das von fremder Stelle aus gefüttert wird. Beim insert von Werten in meine SQLDB fängt es an komische Sachen zu machen, mal gehts, mal nicht. Und ich sehe keine Fehlermeldungen (da wirst reif für die Klapsmühle). SSL und Übergabe BlowFish-verschlüsselt.

  1. Ich vermute einfach mal nach der Entschlüsselung bekomme ich Werte zurück, die meine SQL bei insert zum Absturz bringen. Spinnen tuts nur bei den Nummern (INT, ohne komma und alles), soweit ich bisher festgestellt habe.

Wie kann ich feststellen welcher Datentyp bei mir ankommt? Normalerweise ist das doch wurscht wenn ich VARCHAR-Felder verwende kann ich doch jeden Typ in die SQL reinschreiben, oder? Aber egal ob ich INT oder VARCHAR verwende, der Fehler bleibt der gleiche.

Vielen Dank

--
Theorie: Alles ist möglich - Praxis: Nix funzt - Ich bin eben ein Mann der Praxis

--
G. DAVID
    1. Wie kann ich die Felermeldungen die der Browser normalerweise bei Scriptabbruch ausgibt in einer Datei protokollieren?

    use CGI::Carp

    Deine 2. Frage verstehe ich nicht, du kannst diir doch an jeder Stelle im Skript deine Daten anzeigen lassen, es besteht keine Notwendigkeit zu spekulieren.

    Struppi.

    1. Hi Struppi,

      use CGI::Carp

      OKI, also so: BEGIN { use CGI::Carp qw(carpout); open(LOG, ">>cgilog.log"); carpout(LOG); }

      Deine 2. Frage verstehe ich nicht, du kannst diir doch an jeder Stelle im Skript deine Daten anzeigen lassen, es besteht keine Notwendigkeit zu spekulieren.

      Wohin anzeigen lassen und wie? Ich schrieb mir die Daten in eine Datei, dort sehe ich ich was rüberkommt. Aber nicht den Datentyp. Wie gesagt von der Ausgabe seh ich ja nix, weil das Script von fremder Stelle aus aufgerufen wird. Deshalb wollte ich die Fehlermeldung auch in eine Datei schreiben, weil mir /fatalsToBrowser/ ja nix hilft.

      Was ist eingentlich BareWord? Kommt nach o.g Code, wenn ich use strict; verwende. BareWord LOG not allowed strict subs ... auf strict mag ich nicht gerne verzichten.

      --
      Theorie: Alles ist möglich - Praxis: Nix funzt - Ich bin eben ein Mann der Praxis

      --
      G. DAVID
      1. Was ist eingentlich BareWord? Kommt nach o.g Code, wenn ich use strict; verwende. BareWord LOG not allowed strict subs ... auf strict mag ich nicht gerne verzichten.

        LOG ist ein Bareword. Du musst, wenn du einen filehandle an eine Funktion übergeben willst, den Stern benutzen: carpout(*LOG);
        (Leider fallen mir grad nicht die Fachtermini ein) steht aber auch sio in der Doku.

        Struppi.

        1. Hallo Struppi!

          carpout(*LOG);
          (Leider fallen mir grad nicht die Fachtermini ein) steht aber auch sio in der Doku.

          glob?

          Viele Grüße aus Frankfurt/Main,
          Patrick

          --
          _ - jenseits vom delirium - _

             Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
          J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
          1. Hallo auch Dir Patrick,

            oki, carpout(\*LOG); . Jetzt läufts auch strict.

            Ich trau mers gar ned zu sagen an was der SQL-Fehler lag. Hatte überhaupt nichts mit den Datentypen zu tun. Kleinlaut: Ich hatte einen Unique-Index im Feld meiner Kundennummer gesetzt, weil in dieser Tabelle ein Kunde nur 1x vorkommen darf. Und vor lauter bauen und testen - hatte ich das über die Tage vergessen. Also ging´s ein mal wenn ich die Testtabelle leerte und dann nimmer, weil ich immer wieder den gleichen Kunden zum testen verwendete. Und ohne Fehlermeldung ... oje, oje, kann ein Mensch doof sein.

            Das FehlerLOG brauchte ich aber sowieso, also wurde mir geholfen.

            Danke nochmal und so long

            --
            Theorie: Alles ist möglich - Praxis: Nix funzt - Ich bin eben ein Mann der Praxis

            --
            G. DAVID