1. Lieber Benutzer,

    Du musst bei uns registriert sein, um an den Diskussionen teilzunehmen. Melde dich jetzt an - kostenfrei und unverbindlich. Und stelle Deine eigenen Fragen oder gib uns hilfreiche Antworten

[PHP] Debugging/Fehlersuche in PHP & Was bedeuten die Fehler?

Dieses Thema im Forum "Tutorials" wurde erstellt von Artemis, 14 November 2006.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Artemis

    Artemis Neues Mitglied

    Registriert seit:
    7 Oktober 2005
    Beiträge:
    1.235
    Punkte für Erfolge:
    0
    Debugging/Fehlersuche in PHP

    Da ich es schon des öfteren gesehen habe, dass fast keiner seine Sachen vorher debuggt, habe ich ein kleines Tutorial geschrieben.

    Achtung: Alle beschriebenen Wege, Fehler zu finden sollten nur in der Entwicklungsphase benutzt werden.


    1. Wirklich alle Fehler gemeldet bekommen

    Es gibt in PHP verschiedene Fehlerstufen. Meistens ist PHP so eingestellt, dass es E_NOTICE-Fehler nicht meldet. Darunter fällt zum Beispiel eine vorher nicht deklarierte Variable, die dann auf einmal verwendet wird. Beispiel:
    PHP:
    1. <?php
    2. $meinHund = 'Otto';
    3. echo $mienHund;
    4. ?>
    Hier ist die Variable beim zweiten Mal falsch geschrieben. In einem großen Skript würde man sich ohne E_NOTICE-Fehler jetzt dumm und dämlich suchen, da man nicht weiß, warum da nichts ausgegeben wird.
    Wenn wir dem Code jetzt ein error_reporting(E_ALL) voranstellen, erhalten wir eine Fehlermeldung.
    PHP:
    1. <?php
    2.  
    3. $meinHund = 'Otto';
    4. echo $mienHund;
    5. ?>
    Dann können wir direkt in Zeile 5 nachgucken, und den Fehler berichtigen.

    To be continued.

    (Ich pinn das Thema mal an - boehseronkel)
    Zuletzt von einem Moderator bearbeitet: 15 November 2006
    Werbung: Jetzt registrieren, damit diese Werbung verschwindet
  2. Artemis

    Artemis Neues Mitglied

    Registriert seit:
    7 Oktober 2005
    Beiträge:
    1.235
    Punkte für Erfolge:
    0
    Was bedeuten die Fehler?

    2. Was bedeutet dieser bestimmte Fehler?

    Eine Fehlermeldung von PHP ist immer folgendermaßen aufgebaut:
    • Fehlertyp: Dies entspricht der Schwere des Fehlers: Bei einem Fatal Error (schwerer Fehler) kann das Script nicht ausgeführt werden, ein Notice (Information) meldet Dinge, die den Ablauf des Script nicht beeinträchtigen, wie etwa Variablen, die nicht deklariert wurden.
    • Pfad zur Datei: Dies entspricht dem absoluten Pfad zu der Datei, in der der Fehler aufgetreten ist. Wichtig, wenn man andere Dateien einbindet.
    • Zeile: Dies entspricht der Zeile, in der der Fehler gefunden wurde. Dann kann man direkt sehen, was falsch ist.

    Die Meldungen

    Dies ist eine Liste von Fehlern, deren Übersetzungen, warum sie auftreten und wie man sie beseitigen kann. Die Liste hat keinen Anspruch auf Vollständigkeit. Wenn euch ein Fehler einfällt, der fehlt, wäre eine PN an mich sehr hilfreich.

    Call to undefined function f()
    • Aufruf der undefinierten (nicht vorhandenen) Funktion f()
    • Dieser Fehler tritt oft auf, weil man einfach einen Funktionsnamen falsch schreibt (mysql_connecr). Es kann aber auch sein, dass man eine Funktion aufrufen möchte, die wirklich nicht existiert (PHP5-Funktion bei PHP4, Vergessen Datei einzubinden, die diese Funktion enthält, Komponente ist nicht in der PHP-Konfiguration enthalten).
    • Oft sieht man direkt, dass es an einer falsch geschriebenen Funktion liegt - das muss man dann nur ändern. Bei PHP5-Funktionen unter PHP4 ist es relativ leicht, herauszufinden, ob die Funktion für die eigene PHP-Version verfügbar ist. Zuerst guckt man per [phpnet]phpinfo[/phpnet] welche Version man selber hat und ruft dann http://php.net/funtionsname auf um dort zu sehen, ab welcher Version die Funktion vorhanden ist. So kann man auch überprüfen ob eine Funktion bestimmten namens überhaupt existiert oder man sich vertan hat.
      Wenn die Funktion eine PHP-Eigene ist, der Name wirklich richtig geschrieben ist und für deine PHP-Version vorhanden ist, solltest du deine PHP-Konfiguration überprüfen (lokal) bzw. dich mit deinem Hoster in Verbindung setzten (Webserver).
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen