PHP Fehlermeldungen








Die Fehlersuche allgemein

 Startseite > Allgemein > Die Fehlersuche allgemein

Hier haben wir einige Informationen für das programmieren und der gleichzeitigen Ausgabe von auftretenen Fehlermeldungen in PHP.


Als erstes müsst Ihr dafür sorgen das php euch die Fehler anzeigt.

Entweder in eurer Testumgebung die php.ini anpassen:
error_reporting = E_ALL
und
output_buffering = 0 (ist bei Providern meist schon auf 0 gestellt)

Die php.ini Datei speichern und php neustarten.

Oder Ihr fügt in den Scripten folgendes oben ein:

error_reporting(E_ALL);

Damit werden alle Warnungen und Fehler ausgegeben.
Nun solltet Ihr noch eure Scripte prüfen, ob vor irgendwelchen Funktion ein
@ (AT) steht, dieses müsste dann noch entfernt werden, da das @ dazu benutzt
wird Fehlermeldungen zu unterdrücken.

Beispiel:
Code:
  1.  $handle = @fopen ("c:\data\info.txt", "r");
  2. //Durch das @ soll die Fehlermeldung unterdrückt werden
  3. //Was bei der Fehlersuche nicht gerade von Vorteil ist.
  4.  




Die Fehlersuche

Die Meldung:
Parse error: parse error, unexpected '}' in E:\php-fehler\test_code.php on line 12

Die Meldung sagt:
- was falsch ist, -> Syntax Fehler
- in welcher Datei der Fehler aufgetreten ist, -> test_code.php
- wo sich die Datei im System befindet, -> Ordner "php-fehler"
(wichtig wenn Dateien includet werden)
- und in welcher Zeile php den Fehler bemerkt hat, -> Zeile 12

Der Code:
Code:
  1. <?php
  2. if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
  3. ?>
  4. <h3>strstr muss true zurückgegeben haben</h3>
  5. <center><b>Sie benutzen Internet Explorer</b></center>
  6. <?php
  7. } else
  8. ?>
  9. <h3>strstr muss false zurückgegeben haben</h3>
  10. <center><b>Sie benutzen nicht Internet Explorer</b></center>
  11. <?php
  12. }
  13. ?>
  14.  


Wenn man jetzt den Code analysiert wird man feststellen das in Zeile 12 nur eine schliessene geschweifte Klammer steht.

Der Fehler selbst liegt damit irgendwo oberhalb der Zeile 12, in diesem Fall in der Zeile 7, dort fehlt die öffene geschweifte Klammer.
PHP hat es nicht in Zeile 7 gemerkt da die Konstrukte if elseif und else auch ohne geschweifte Klammern funktionieren. Wie in anderen Programmiersprachen auch.

Zum Thema geschweifte Klammern sollte noch erwähnt werden, wenn folgende Fehlermeldung auftritt:

Parse error: parse error, unexpected $end in E:\test_code.php on line 13

Dann fehlt meist eine schliessende geschweifte Klammer, die Zeilenangabe hilft dabei leider nicht, da es sich meist um das Ende des PHP-Bereichs handelt.






 Kommentare


 Kommentar schreiben

 Ihr Name:
 
 Ihre Emailadresse (wird nicht angzeigt)
 
 Ihr Kommentar (maximal 500 Zeichen)
 

 Wenn Ihnen dieses Bild nicht angezeigt wird, ist wahrscheinlich die Bildanzeige im Browser deaktiviert.
   Sicherheitscode eingeben

 


andere Themen:
24.02.2005 Fehlersuche Werte
23.02.2005 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL
22.02.2005 Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or
21.02.2005 Warning: Division by zero


Zurück


<?php echo 'Programmieren - Programme - Scripte - Informationen - PHP: Hypertext Preprocessor - Webprogrammierung'; ?>


© PHP-Fehlermeldungen
Computer und Technik