jan: Script bricht ab - aber keine Fehlermeldung

Hallo,

wenn ich ein php-Script schreibe und einen Syntaxfehler drin hab, bricht das Script an der Stelle dann einfach ab, aber gibt keine Fehlermeldung aus ob wohl ich error_reporting( "E_ALL" ); eingefügt hab. Was natürlich bei der Fehlersuche nicht grad hilfreich ist...^^

Hat jemand ne idee warum keine Fehlermeldungen angezeigt werden (Servereinstellung?) und was ich da machen kann. (Hab kein Zugriff auf Servereinstellungen...)

  1. Hi,

    versuchs mal mit error_reporting(E_ALL); ;)

    greetz

  2. Moin!

    wenn ich ein php-Script schreibe und einen Syntaxfehler drin hab, bricht das Script an der Stelle dann einfach ab, aber gibt keine Fehlermeldung aus ob wohl ich error_reporting( "E_ALL" ); eingefügt hab. Was natürlich bei der Fehlersuche nicht grad hilfreich ist...^^

    Es gibt noch die Einstellung "display_errors", die du mit ini_set ändern kannst.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
  3. Servus,

    error_reporting( "E_ALL" );

    Wie botl1k3 bereits erwähnte erwartet error_reporting keinen String, sondern einen Integer in Form einer Bitmask. Innerhalb von PHP gibt es für die gängigsten Kombination vordefinierte Konstanten. Eine davon ist E_ALL, was 6143 entspricht. Demnach muss es folglich heissen:
    error_reporting(E_ALL);
    oder
    error_reporting(6143);

    Vergewissere dich außerdem, dass display_errors aktiviert ist (innerhalb der Testumgebung, auf Produktivservern bitte abstellen ;).

    Hat jemand ne idee warum keine Fehlermeldungen angezeigt werden (Servereinstellung?) und was ich da machen kann. (Hab kein Zugriff auf Servereinstellungen...)

    In der Doku steht, welche Möglichkeiten man hat, Server-Einstellungen zu ändern.

    Gruss
    Patrick

    --
    sh:( fo:| ch:? rl:( br:> n4:( ie:% mo:) va:} de:> zu:) fl:| ss:| ls:[ js:|
  4. echo $begrüßung;

    wenn ich ein php-Script schreibe und einen Syntaxfehler drin hab, bricht das Script an der Stelle dann einfach ab, aber gibt keine Fehlermeldung aus ob wohl ich error_reporting( "E_ALL" ); eingefügt hab.

    Syntaxfehler werden beim Parsen erkannt. Das passiert bevor das Script ausgeführt wird und eine darin aufzurufende Funktion zum Zuge kommen kann. Wenn das error_reporting (oder display_errors) standardmäßig schweigend eingestellt ist, wirst du Syntaxfehler im Script nie zu sehen bekommen. Man kann das error_reporing je nach Server-Gegebenheiten in der .htaccess (PHP als Modul im Apachen) oder in einer im Verzeichnis liegenden php.ini (bei PHP als CGI) beeinflussen. Frage dazu deinen Provider, welche Möglichkeiten es gibt. Am besten ist natürlich, Syntaxfehler in einer Testumgebung aufzuspüren. Das kann man auch automatisch über ein komplettes Verzeichnis laufen lassen: http://shiflett.org/blog/2007/dec/php-advent-calendar-day-17. Andererseits sollte man nach jeder Änderung eines Scripts selbiges einer Laufkontrolle unterziehen, so dass man Syntax-Fehler sofort sieht.

    echo "$verabschiedung $name";