PHP Fehlermeldungen








Fehlersuche Programmablauf

 Startseite > Allgemein > Fehlersuche Programmablauf

Erfahren sie mehr, wie sie besser auftretene Fehler eingrenzen und finden können.


Manchmal kommt es vor das ein Programm nicht das gewünschte Ergebnis liefert, bzw. überhaupt keine Ausgabe macht. Meist wird dann auch kein Fehler
angezeigt, was die Suche nach der Ursache oft bei grossen Projekten noch erschwert.

- Bauen Sie dazu Testausgaben (echo 'if Nr. 1';) in den Programmablauf ein und schauen Sie nach wo der Ablauf hängen bleibt.
- Geben Sie bei Kontrollstrukturen (if, switch, etc.) vorher die Werte aus und kontrollieren Sie diese.
- Wenn Sie sehr viele Schleifen, Funktionen und Kontrollstrukturen mit geschweiften Klammern haben, Notieren Sie sich welche wo endet. Ein Beispiel folgt weiter unten dazu.


Beipiele
Code:
  1.  
  2. /*Schwer zu lesen*/
  3. if($wert == 'abc'){
  4. //mache dieses
  5. if($abc > 0){
  6. $rechne = $abc + 5;
  7. }elseif($abc > 10){
  8. $rechne = $abc - 5;
  9. }else{
  10. $rechne = $abc;
  11. }
  12. }elseif($variable == 'def'){
  13. //mache jenes
  14. if($p != 'xyz'){
  15. //irgendeine SQL-Abfrage
  16. $sql = mysql_query("Der Query");
  17. echo mysql_error();
  18. while($row = mysql_fetch_object($sql)){
  19. if($row->abc == $p){
  20. echo 'dies';
  21. }else{
  22. echo 'das';
  23. }
  24. }
  25. }
  26. }else{
  27. //mache sonstiges
  28. }
  29.  
  30.  
  31. /*      mit Einrückungen         */
  32. if($wert == 'abc'){
  33. //mache dieses
  34.         if($abc > 0){
  35.                 $rechne = $abc + 5;
  36.         }elseif($abc > 10){
  37.                 $rechne = $abc - 5;
  38.         }else{
  39.                 $rechne = $abc;
  40.         }
  41.  
  42. }elseif($variable == 'def'){
  43. //mache jenes
  44.         if($p != 'xyz'){
  45.                 //irgendeine SQL-Abfrage
  46.                 $sql = mysql_query("Der Query");
  47.                 echo mysql_error();
  48.                 while($row = mysql_fetch_object($sql)){
  49.                         if($row->abc == $p){
  50.                                 echo 'dies';
  51.                         }else{
  52.                                 echo 'das';
  53.                         }
  54.                 }
  55.         }
  56.  
  57. }else{
  58. //mache sonstiges
  59.  
  60. }
  61.  
  62.  
  63. /* Mit Einrückungen, Klammer-Notizen und Testausgaben */
  64. echo $wert;
  65. if($wert == 'abc'){
  66. echo 'abc';
  67. //mache dieses
  68.                 echo $abc;
  69.         if($abc > 0){
  70.         echo 'if rechne';
  71.        
  72.                 $rechne = $abc + 5;
  73.                
  74.         }elseif($abc > 10){
  75.         echo 'elseif rechne';
  76.        
  77.                 $rechne = $abc - 5;
  78.                
  79.         }else{
  80.         echo 'else rechne';
  81.        
  82.                 $rechne = $abc;
  83.                
  84.         }//Ende else rechne
  85.  
  86. }elseif($variable == 'def'){
  87. echo 'def';
  88. //mache jenes
  89.  
  90.         if($p != 'xyz'){
  91.         echo 'if xyz nicht p';
  92.        
  93.                 //irgendeine SQL-Abfrage
  94.                 $sql = mysql_query("Der Query");
  95.                 echo mysql_error();
  96.                 while($row = mysql_fetch_object($sql)){
  97.                
  98.                         if($row->abc == $p){
  99.                         echo 'if row';
  100.                                 echo 'dies';
  101.                                
  102.                         }else{
  103.                         echo 'else row';
  104.                                 echo 'das';
  105.                                
  106.                         }//Ende else row
  107.                 }//Ende while xyz
  108.         }//ende if xyz
  109.  
  110. }else{
  111. //mache sonstiges
  112. echo 'sonstiges';
  113.  
  114. }//ende else
  115.  
  116.  



 Kommentare

06.04.2008: gerard108

warum kommt da nicht mal der Tipp, xdebug oder dbg zu verwenden? das mit dem echo ist ja Kinderkram. ADMIN: PHP Extensions stehen nicht jedem PHP Anwender zur Verfügung. Desweiteren könnte man dann auch auf dieverse Editoren verweisen die ein Debug Funktion haben. Dazu ist es vielleicht besser ein neues Thema aufzumachen.


 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:
19.04.2005 Notice: Constant TABLE_BANNER already defined in
24.02.2005 Parse error: parse error, unexpected T_LNUMBER
23.02.2005 Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource
21.02.2005 Fatal error: Call to undefined function:


Zurück


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


© PHP-Fehlermeldungen
All Stars