PHP Zeilennummer bei Fehlern in Chrome

rejoice

Lt. Junior Grade
Registriert
Jan. 2008
Beiträge
291
Hallo Leute,

gibt es evtl eine Möglichkeit Chrome (v21) beizubringen mir zu sagen wo er einen PHP-Fehler gefunden hat?

Prinzipiell steht bei mir nur:

Serverfehler
Beim Abrufen von http://***.de/***.php ist auf der Website ein Fehler aufgetreten. Möglicherweise wird sie gerade gewartet oder ist falsch konfiguriert.
Vorschläge:
Laden Sie diese Webseite später erneut.
HTTP-Fehler 500 (Internal Server Error): Beim Versuch des Servers, die Anforderung zu verarbeiten, ist eine unerwartete Bedingung aufgetreten.

Error Level ist auf: error_reporting(E_ALL);

Im Firefox 14.0.1 bekomme ich gar nur eine weiße Seite....
 
Zuletzt bearbeitet:
Nö, weil Chrome mit PHP nichts am Hut hat, der Browser bekommt nur fertigen Quelltext, musst wohl die Logfiles deiner Webseite auswerten.
 
Wenn der Server Fehlermeldungen irgendwelcher Art an den Client schickt, kannst du die übertragenen Daten in der Chrome-Entwicklerkonsole ansehen. Um diese zu aktivieren, musst du in Chrome F12 drücken und in der Konsole in das Netzwerk-Tab wechseln. Wenn du daraufhin die Seite neu lädst, siehst du alle Anfragen und Antworten und generell alles was so übers Netzwerk geht. Eventuell findest du da ja die Ursache für die auftretenden Fehler.

Gruß
JetStre4m
 
hmm danke für die antworten aber ich war der meinung das der Browser sowas ausgeben kann wie:

Parse error on line 1

oder liegt das an HTML5 ?
 
Hallo,

da liegt was in Deinem Grundverständnis im argen.

Kein Browser der Welt kümmert sich um die Abarbeitung von PHP. Demnach kann auch kein Browser der Welt Dir sagen, an welcher Stelle das PHP Script Fehler produziert.

PHP wird ausschließlich auf dem Webserver abgearbeitet und liefert dann eben dem Browser als Ergebnis ein HTML Dokument aus.

Wenn Deine .php Datei ein Misch aus PHP und HTML ist, dann könntest Du den PHP Kram mal weg lassen und schauen, wo Fehler in dem HTML Kram enstehen.

Grüße,

Blubbs
 
Ob das in deinem Browserfenster steht oder nicht kommt auf die Einstellungen in der php.ini auf dem Server an.
 
Das klappt aber nur bei Syntax-Fehlern und auch da nicht immer. Wenn du Logikfehler hast oder z.B. Verbindungsfehler ohne Ausgabe über den Erfolg oder Misserfolg kann dir der Interpreter auch nicht mehr mitteilen. Da du das Error-Reporting Level schon auf error_reporting(E_ALL); hast nehme ich an das irgendwo Logikfehler vorkommen oder eine unendliche Weiterleitung/fehlerhafte Verbindung.
 
hmm das erklärt das... mein webspaceanbieter hat vor kurzen von php 5.0 geupdatet auf 5.3 und sicher hat er dabei die php.ini einstellungen geändert...

konkret ging es darum das ich ein semikolon vergessen habe und es wäre schön gewesen wenn der browser mir eine zeilennummer gezeigt hätte statt die allgemeine fehlermeldung.

kann ich die php.ini irgendwie selber setzen?
ini_set('display_errors', '1'); scheint es auch nicht zu machen
 
Zuletzt bearbeitet:
Hallo,

das liegt nicht am Browser. Ob Chrome, IE oder FF. Die zeigen eben nur das an, was der PHP Parser ausliefert.

Auch die PHP Fehlermeldungen sind vom PHP Parser ausgelieferte HTML Dokumente. Eingetlich kann man bei jedem Hoster auch eigene Dinge in die php.ini einfügen. Da solltest Du mal die Hilfe Deines Hosters kontaktieren.

Alternativ wäre noch eine gute Möglichkeit, PHP Scripts lokal zu testen, der XAMPP. Ein Webserver, den Du auf Deinem Rechner installierst. Oder besser kopierst. Er braucht keine Installation. Und bringt alles mit, was Du bräuchtest, um Deine Scripts lokal bei Dir zu testen.

Grüße,

Blubbs
 
joar das mit dem browser war nur meine erste vermutung da es sonst immer ging und plötzlich nicht mich und gerade FF und Chrome Updaten ja recht schnell... dank grünel fiel mir wieder ein das ja die php version geändert wurde.

ich werde den webspaceanbieter mal anhauen das er die php.ini ändert :-)

lokal testen geht aus logistischen gründen leider nicht aber danke für den tipp
 
Warum geht lokal testen nicht?

VM aufsetzen mit Debian & Apache, einrichten und man kann genüsslich testen :)

Ist, meine ich, der beste Weg.
Das fertige Produkt dann hochladen.
 
weil mehrere Personen gleichzeitig an dem Projekt arbeiten und auch ich oft an unterschiedlichen Orten mit unterschiedlichen Geräten arbeite ;-)

Es ist auch kein großer umstand dass die Fehler nicht angezeigt werden da ich nicht so oft Fehler mache und ich auch weiß was ich gerade Programmiert habe.
Mich hat es nur gewundert dass von jetzt auf nachher die Fehler nicht mehr angezeigt werden. ;-)
 
An sich ist es richtig, dass keine Fehler angezeigt werden.

Warum:
Dadurch kann ein Angreifer deine Schwachstelle (fehlerhafter Code) nicht direkt sehen. Er bekommt nur "Fehler".

Und einfach vom Server ein Backup machen und auf deinem PC schnell aufsetzten sollte immer gehen, grad weil Backups essentiell sind. Dort kannste dann auch die php.ini auf error_reporting=E_ALL setzten und dir alles ausführlich ausgeben lassen.
 
der webhoster hat nun die php.ini angepasst und nun bekomme ich wieder die Parse error angezeigt :-)

@Hancock: ich habe keinen server sondern nur webspace, dazu ist das projekt in entwicklung. später wenn es den finalen stand erreicht hat werden die errors wieder ausgestellt.
 
hey, ich hatte mal das selbe problem. trotz E_ALL hat der webserver mir immer nur nen error 500 gesendet oder vermeldet das der webserver die anfrage nicht verarbeiten konnte.
die lösung: einen eigenen error handler erzeugen mit set_error_handler!

der muss dann nur per echo zeilennummer etc. ausgeben, bei mir sieht der so aus:
(ist teil einer klasse, kannst also das public static löschen)
Code:
    public static function errorHandler($errno, $errstr, $errfile = "", $errline = "", $errcontext = null) {
        if(!Tools::$error_reporting)
            return; 
        
        echo ' <hr> ' .
             ' <b>Error:</b>' . $errstr . ' in file <i>' . $errfile . '</i> on line <i>' . $errline . ' </i>' .
             ' <hr> ';
    }

so konnte ich dann endlich die fehler sehen......

wenn dir nen server besorgst könntest natürlich nen php debugger installieren der das ganze enorm vereinfacht!

p.s.
das hier nur für leute deren hoster die php.ini nicht ändern will
 
Zuletzt bearbeitet:
Zurück
Oben