PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   unterdrückte Fehlermeldungen (http://www.selfphp.de/forum/showthread.php?t=24031)

uetzelbruetz 28.02.2011 12:18:30

unterdrückte Fehlermeldungen
 
Einen wunderschönen guten Morgen,

ich schreibe gerade wieder an einem umfangreichen cronjob. Dabei taucht immer wieder das gleiche nervige Problem auf:

solange ich den cronjob entwickle gebe ich mir natürlich Fehlermeldungen aus. (Den Job führe ich im Webmin über den cronserver aus) Mein error-reporting steht auf all+strict. Ich müsste also alles bekommen. Das passiert auch ganz normal so wie es soll, wenn der Fehler in der Hauptdatei selbst auftaucht. Baue ich aber einen Fehler in einem includeten Script ein erhalte ich keinerlei Ausgabe. Was zuvor ausgegeben wurde ist da. Ist es ein Syntaxfehler gibt's rein gar nix!

Woran liegt das? Was ist beim Cronjob anders, das trotz error-reporting nichts ausgegeben wird, was in den incs fehlerhaft ist.

vielen Dank für's Mitdenken
Gruß
üb

DokuLeseHemmung 28.02.2011 12:24:32

AW: unterdrückte Fehlermeldungen
 
Umgekehrt!
Syntaxfehler in der Datei mit dem Errorreporting werden nicht angezeigt, weil das Errroreporting erst nach dem Parsen ausgeführt wird.
Fehler in include Dateien werden gezeigt.


Aktiviere doch das error log....

uetzelbruetz 28.02.2011 12:31:19

AW: unterdrückte Fehlermeldungen
 
Danke für die fixe Reaktion, aber dem ist leider nicht so.
Hab grad nochmal zum Test einfach eine Zeichenkette in den Code gepackt. Tue ich das in dem aufgerufenem Script erhalte ich den "Parse error", tue ich das in einem includeten meldet der Server "keine Ausgabe", obwohl der Fehler der selbe ist^^

uetzelbruetz 28.02.2011 12:32:30

AW: unterdrückte Fehlermeldungen
 
achso, errorlog ist auch an, erhält dann aber keinen Eintrag^^

DokuLeseHemmung 28.02.2011 12:35:12

AW: unterdrückte Fehlermeldungen
 
Das kann alles nicht sein!

Du verheimlichst den wesentlichen Punkt. ;-)

uetzelbruetz 28.02.2011 12:38:04

AW: unterdrückte Fehlermeldungen
 
bestimmt, aber genau den such ich ja. Genau diese Kombi ist mir ja das Rätsel.

Gibt es da nichts in der Art "Ich hab da mal gelesen, daß bei cron und Fehlern..." oder so? Eigentlich brauch ich auch nur einen Ansatz, damit ich weiter prüfen kann. Aber ich hab halt keine Idee, woran es überhaupt noch hängen könnte.

DokuLeseHemmung 28.02.2011 12:43:53

AW: unterdrückte Fehlermeldungen
 
Wie gesagt:
Dir ist nicht zu helfen, wen du geheim hältst, welchen Bock du da schießt.

Tipp:
Reduziere den Code auf ein Fehler reproduzierendes Minimum.
Und zeige ihn!

Denn auf "im Nebel stochern" habe ich keinen Bock.

uetzelbruetz 28.02.2011 13:06:26

AW: unterdrückte Fehlermeldungen
 
Was anderes als Nebel hab ich nur leider nicht. gern kriegst du den Code. Ich habe ihn ja schonsoweit reduziert, daß er nichts macht, außer Fehlerausgaben zu provozieren^^

das gibt eine korrekte fehlermeldung
aufgerufenes Script
PHP-Code:

#!/usr/bin/php
<?php
error_reporting 
(E_ALL E_STRICT); 
ini_set ('display_errors''On');
ini_set ('log_errors''On'); ini_set ('error_log','/www/v6errorCRON.log');
set_time_limit(1000);
ignore_user_abort(true);
belibiger Text zum Provozieren eines ParseFehlers
include ('class/test.php');
?>

inkludiertes Script
PHP-Code:

<?php
echo 'hallo';
?>

mei dem Fehler meldet der cronserver, daß keine ausgabe erfolgt ist.
aufgerufenes Script
PHP-Code:

#!/usr/bin/php
<?php
error_reporting 
(E_ALL E_STRICT); 
ini_set ('display_errors''On');
ini_set ('log_errors''On'); ini_set ('error_log','/www/v6errorCRON.log');
set_time_limit(1000);
ignore_user_abort(true);
include (
'class/test.php');
?>

inkludiertes Script
PHP-Code:

<?php
echo 'hallo';
belibiger Text zum Provozieren eines ParseFehlers
?>

bei allen normalen Browseraufrufen, taucht dieses Verhalten ja auch nicht auf, sondern nur bei cronjobs.

DokuLeseHemmung 28.02.2011 13:20:15

AW: unterdrückte Fehlermeldungen
 
hmm...

1. Einen user_abort wirds nie geben! Also gibts da auch nix zu ignorieren.
2. Was hat das Timelimit in einem mini Script zu suchen? ;-)
3. Du solltest dein "errorlog" erstmal ausgiebig auf der Kommandozeile testen, um die Funktion sicher zu stellen.
4. Vermutlich wird die include Datei einfach nicht gefunden, oder die falsche geladen. Wetten?

Zitat:

bei allen normalen Browseraufrufen, taucht dieses Verhalten ja auch nicht auf, sondern nur bei cronjobs.
Dann rufe das Script doch über wget auf....
1. dann kommen deine Meldungen
2. wird dann die bekannte und funktionierende php.ini verwendet
3. entspricht dann CWD und der Include Path deinen Erwartungen

uetzelbruetz 28.02.2011 13:55:09

AW: unterdrückte Fehlermeldungen
 
Zitat:

Zitat von DokuLeseHemmung (Beitrag 140419)
1. Einen user_abort wirds nie geben! Also gibts da auch nix zu ignorieren.
2. Was hat das Timelimit in einem mini Script zu suchen? ;-)

Blieben nur für den Fall drin, daß daran was hing. Wie gesagt, hab mein Script immer weiter reduziert. Die SystemBefehle hatte ich dann für Dich nochmal drin gelassen. Wenn Sie raus sind gibt's ja dennoch einen Standardwert. Hätte sein können, daß von Dir jetzt ein "ach ja, damit passeirt folgendes" kommt...

Zitat:

Zitat von DokuLeseHemmung (Beitrag 140419)
3. Du solltest dein "errorlog" erstmal ausgiebig auf der Kommandozeile testen, um die Funktion sicher zu stellen.

hmm, andere logs werden ganz normal geschrieben.

Zitat:

Zitat von DokuLeseHemmung (Beitrag 140419)
4. Vermutlich wird die include Datei einfach nicht gefunden, oder die falsche geladen. Wetten?

oh doch, die ausgaben geschehen ja, solange kein Fehler da ist. Es funktioniert ja alles. Ist nur doof, wenn ich mich mal vertippe und dann das falsche Pixel im Code ohne Anhaltspunkt suchen muss - so ein "Komma statt Semikolon" zB.

Zitat:

Zitat von DokuLeseHemmung (Beitrag 140419)
Dann rufe das Script doch über wget auf....
1. dann kommen deine Meldungen
2. wird dann die bekannte und funktionierende php.ini verwendet
3. entspricht dann CWD und der Include Path deinen Erwartungen

werde das gleich mal testen. includepath und php.ini werden aber stimmen, weil das ganze ja läuft, solange kein Syntaxfehler da ist...
Mal schauen, was mir über wget gemeldet wird...

auf jeden Fall schonmal ein großes Danke für Deine Schnelligkeit!!


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:02:40 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.