Hannibal: Fehler anzeigen

Hallo zusammen

Ich habe eine Website auf einem Server mit sehr strengen PHP-Regeln. Wenn es einen zu grossen Fehler gibt(für die Regeln genug gross), wird die Seite nicht mehr angezeigt.
Jetzt habe ich die Datei mal auf einen weniger strengen Server geladen, um zu sehen was der Fehler sein könnte. Doch dort, zeigt es keine Fehler an. Dies Seite wird schön angezeigt.

Jetzt meine Frage(Ich habe schon rumgeschaut und keine Antwort gefunde)
Gibt es PHP selber auch so eine ausgabe, wie bei MySQL-Datenbank das mysql_error?
Gibt es einen PHP-validator, wie es auch einen HTML-validator gibt?

Gruss aus Winterthur
Hannibal

  1. Huhu Hannibal

    ggf. meinst Du dieses

    ini_set('display_errors',true);
    ini_set ('error_reporting', E_ALL);

    hilfreich ist es auch folgende Konstruktion

    if (isset($_GET['debug'])) {
        ini_set('display_errors',true);
        ini_set ('error_reporting', E_ALL);
    }

    dann kannst Du durch "Manipulation" an der URL einfach umschalten.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Huhu Hannibal

      Hoi lulu

      Erst mal Danke für deine Antwort.

      ggf. meinst Du dieses

      ini_set('display_errors',true);
      ini_set ('error_reporting', E_ALL);

      hilfreich ist es auch folgende Konstruktion

      if (isset($_GET['debug'])) {
          ini_set('display_errors',true);
          ini_set ('error_reporting', E_ALL);
      }

      dann kannst Du durch "Manipulation" an der URL einfach umschalten.

      Aber damit kann man ja die Serverkonfigurationen umstellen. Oder?
      Falls ja, gibt es keine andere möglichkeit, der Server gehört nicht mir.

      Viele Grüße

      lulu

      Gruss Hannibal

      1. Huhu Hannibal

        Aber damit kann man ja die Serverkonfigurationen umstellen. Oder?

        Nein, Änderungen durch ini_set gelten nur zur Laufzeit für eben dieses Skript.

        Schau Dir dazu das Manual an

        http://de3.php.net/manual/en/function.ini-set.php

        Du kannst also an der eigentlichen Serverkonfiguration nichts ändern oder kaputt machen.

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday
        1. Huhu Hannibal

          Hallo lulu

          Aber damit kann man ja die Serverkonfigurationen umstellen. Oder?

          Nein, Änderungen durch ini_set gelten nur zur Laufzeit für eben dieses Skript.

          Ah gut.

          Schau Dir dazu das Manual an

          http://de3.php.net/manual/en/function.ini-set.php

          Habe ich bereits angeschaut. Doch wohl nicht gut genug gelesen.(oder ich kann nicht gut genug Englisch)

          Du kannst also an der eigentlichen Serverkonfiguration nichts ändern oder kaputt machen.

          Beruhigend zu wissen. ;-)
          Ich hätte wahrscheinlich eh kein zugriff. Ich habe nur gedacht, du meintest, der Server gehöre mir.

          Dann kann ich jetzt weiterarbeiten.
          Noch einen schönen Tag und grüsse aus Winterthur(CH).

          Viele Grüße

          lulu

          Gruss Hannibal

          1. Hallo Michi,

            http://www.php.net/manual/en/function.ini-set.php
            Habe ich bereits angeschaut. Doch wohl nicht gut genug gelesen.(oder ich kann nicht gut genug Englisch)

            Ersetze in der URL /en/ durch /de/, um die deutsche Version
            des Manuals zu sehen:
            http://www.php.net/manual/de/function.ini-set.php
            OK, hier hast Du im Moment noch Pech - es gibt noch
            keine Uebersetzung...

            Die englische Version ist aber oft aktueller und hat mehr
            Beispiele, deshalb bevorzuge auch ich die englische Version.

            ---

            Im Skript selbst kannst Du diejenigen Konfigurationen aendern,
            die in der rechten Spalte der oben genannten Seite den Wert
            PHP_INI_USER oder PHP_INI_ALL haben.

            PHP_INI_USER    Option kann in Benutzer-Skripten gesetzt werden
            PHP_INI_PERDIR  Option kann in der php.ini, .htaccess oder
                            httpd.conf gesetzt werden
            PHP_INI_SYSTEM  Option kann in der php.ini oder httpd.conf gesetzt werden
            PHP_INI_ALL     Option kann überall gesetzt werden

            Gruesse,

            Thomas

            --
            Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
            Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
            Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
            1. Hallo Michi,

              Hallo auch

              http://www.php.net/manual/en/function.ini-set.php
              Habe ich bereits angeschaut. Doch wohl nicht gut genug gelesen.(oder ich kann nicht gut genug Englisch)

              Ersetze in der URL /en/ durch /de/, um die deutsche Version
              des Manuals zu sehen:
              http://www.php.net/manual/de/function.ini-set.php
              OK, hier hast Du im Moment noch Pech - es gibt noch
              keine Uebersetzung...

              Deutscher wirds nicht mit diesem Link... :D
              ...das kann ich dir bestätigen.

              Die englische Version ist aber oft aktueller und hat mehr
              Beispiele, deshalb bevorzuge auch ich die englische Version.

              Ich bevorzuge lieber die Deutsch, weil ich nicht so gut Englisch kann.
              Aber ich sollte schon mal die Englische Version anschauen, damit ich noch etwas lerne.

              Im Skript selbst kannst Du diejenigen Konfigurationen aendern,
              die in der rechten Spalte der oben genannten Seite den Wert
              PHP_INI_USER oder PHP_INI_ALL haben.

              PHP_INI_USER    Option kann in Benutzer-Skripten gesetzt werden
              PHP_INI_PERDIR  Option kann in der php.ini, .htaccess oder
                              httpd.conf gesetzt werden
              PHP_INI_SYSTEM  Option kann in der php.ini oder httpd.conf gesetzt werden
              PHP_INI_ALL     Option kann überall gesetzt werden

              Jetzt ist alles klar.
              Danke

              Gruesse,

              Thomas

              Grüsse aus Winterthur(CH)
              Hannibal

              1. Hallo nochmals

                Eure Ideen funktionieren Prima, doch nicht dort wo sie sollten. Sie laufen auf dem einen Server, aber auf dem, dem sie sollten nicht.
                Die Seite bleibt wie bisher einfach weiss.

                Gruss Hannibal

                1. Hallo,

                  Die Seite bleibt wie bisher einfach weiss.

                  Ohne Quellcode, eine genauere Problembeschreibung
                  und die ueblichen relevanten Angaben (PHP-Versionen,
                  uebergebene Parameter, evtl. Fehlermeldungen u.s.w.)
                  bleibt mir nur die Glaskugel.

                  Und die sagt mir, dass Dein Problem evtl. an
                  register_globals=off
                  liegen koennte.
                  dclp-FAQ: "Warum funktionieren meine Formulare nicht?"
                  http://www.dclp-faq.de/q/q-formular-register-globals.html

                  Gruesse,

                  Thomas

                  1. Hallo,

                    Hallo too. :D

                    Die Seite bleibt wie bisher einfach weiss.

                    Ohne Quellcode, eine genauere Problembeschreibung
                    und die ueblichen relevanten Angaben (PHP-Versionen,
                    uebergebene Parameter, evtl. Fehlermeldungen u.s.w.)
                    bleibt mir nur die Glaskugel.

                    Also, wenn ich die Seite aufmache, kommt nur eine weisse Seite. Die Ansicht auf der man die Infos ausfüllen kann.
                    Also auch keine Fehlermeldungen.
                    Den Quelltext kann man allerdings ansehen.

                    Wenn du dir das wirklich antun willst, ist hier der Quelltext:
                    http://www.rieter-creativesolutions.ch/neu/formmail2.txt
                    die Seite ist dann einfach .php

                    Und die sagt mir, dass Dein Problem evtl. an
                    register_globals=off
                    liegen koennte.
                    dclp-FAQ: "Warum funktionieren meine Formulare nicht?"
                    http://www.dclp-faq.de/q/q-formular-register-globals.html

                    Die Seite war vorher schonmal weiss, dann habe ich sie auf einen anderen Server geladen und dort hat es mir statt der weissen Seite die Fehlermeldung angezeigt. Doch diese blieben diesmal aus. Auf dem anderen Server funktionnniert alles bestens.

                    Gruesse,

                    Thomas

                    Grüsse aus Winterthur(CH)
                    Hannibal

                    1. Hallo,

                      Wenn du dir das wirklich antun willst, ist hier der Quelltext:
                      http://www.rieter-creativesolutions.ch/neu/formmail2.txt

                      Ein konzentrierter Auszug mit den wesentlichen Zeilen
                      waere mir wesentlich lieber... ;-)
                      Und eine genauere Problembeschreibung.
                      Ohne die kann ich nur drei allgemeine Tips geben:

                      Um zu sehen, ob ini_set() erfolgreich war, kannst Du
                      Dir ja den Wert der Konfigurationsvariablen anzeigen
                      lassen mit ini_get().

                      Um zu sehen, in welchem Ast einer IF/ELSE Verzweigung
                      Du gelandet bist, kannst Du z.B. testweise auch
                      etwas ausgeben:

                      if ($bedingung1)
                        {
                         echo "<!-- Bedingung 1 erfuellt -->\n";
                         /* weitere Befehle */
                        }
                      else
                        {
                         echo "<!-- Bedingung 1 NICHT erfuellt -->\n";
                         /* weitere Befehle */
                        }

                      Um zu sehen, welchen Wert eine Variable zu einem
                      gewissen Zeitpunkt hat, solltest Du sie zu genau
                      diesem Zeitpunkt auch ausgeben lassen, z.B.
                      echo "<p>Variable xy hat vor der IF/ELSE Verzweigung den Wert ($xy)</p>\n";
                      (Wenn Du Klammern schreibst, siehst Du noch besser,
                      wenn sie leer ist. Du kannst sie auch weglassen.)

                      Gruesse,

                      Thomas

                      --
                      Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
                      Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
                      Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
                      1. Hallo
                        Heute habe ich mir die <meta>-Tags nochmals angesehen und erweitert.
                        Und was sehe ich ein eröffnen eines JavaScriptes.
                        Leider bin ich jetzt an einem PC ohne FTP und kann es nicht ausprobieren, aber ich denke, dass ist das Problem.
                        Aber wenn die Dummheit Musik machen würde, hätte ich ein ganzes Orchester.

                        Grüsse aus Winterthur(CH)
                        Hannibal