Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
de:create:debugging [26.06.2017 13:18] – [Fehlersuche im PHP-Code] admin | de:create:debugging [28.07.2022 22:02] (aktuell) – admin |
---|
* ... ob in Variablen das gespeichert ist, was man erwartet hätte (inhaltliche Fehler). | * ... ob in Variablen das gespeichert ist, was man erwartet hätte (inhaltliche Fehler). |
| |
Formale Fehler sind am einfachsten zu finden: Wenn ein Strichpunkt am Ende eines Befehls fehlt oder eine Klammer (Syntaxfehler), dann wird der Programmcode gar nicht erst ausgeführt. SoSci Survey zeigt dann eine Fehlermeldung, bei JavaScript muss man erst einmal die Fehlerkonsole öffnen. | Formale Fehler sind am einfachsten zu finden: Wenn ein Strichpunkt am Ende eines Befehls fehlt oder eine Klammer (Syntaxfehler), dann wird der Programmcode gar nicht erst ausgeführt. SoSci Survey zeigt dann eine Fehlermeldung, bei JavaScript muss man erst einmal die [[:de:general:browser-tools|Fehlerkonsole]] öffnen. |
| |
Inhaltliche Fehler sind schwieriger zu finden. Denn hier arbeitet der Code, führt aber nicht zum erwünschten Ergebnis. Dann hilft die Anzeige, was im Hintergrund passiert (s. [[#beispiel|Beispiel]]). | Inhaltliche Fehler sind schwieriger zu finden. Denn hier arbeitet der Code, führt aber nicht zum erwünschten Ergebnis. Dann hilft die Anzeige, was im Hintergrund passiert (s. [[#beispiel|Beispiel]]). |
Hier helfen nun die Informationen, welche der Debugging-Modus liefert ([[#debug-information|Debug-Information]]). Diese zeigen, dass der Befehl ''[[:de:create:functions:text]]'' gar nicht ausgeführt wird, das ''goToPage()'' aber schon. Am Filter kann es also nicht liegen, dieser funktioniert. | Hier helfen nun die Informationen, welche der Debugging-Modus liefert ([[#debug-information|Debug-Information]]). Diese zeigen, dass der Befehl ''[[:de:create:functions:text]]'' gar nicht ausgeführt wird, das ''goToPage()'' aber schon. Am Filter kann es also nicht liegen, dieser funktioniert. |
| |
Ein Blick in die Anleitung des Befehls ''[[:de:create:functions:gotopage]]'' verrät daraufhin, dass dieser direkt zur angegeben Seite springt und dann nichts mehr von der aktuellen Seite ausgeführt wird, in diesem Beispiel also auch nicht das ''text()''. Kennt man die Ursache, ist die Lösung einfach: Das ''text()'' muss vior das ''goTopage()''. | Ein Blick in die Anleitung des Befehls ''[[:de:create:functions:gotopage]]'' verrät daraufhin, dass dieser direkt zur angegeben Seite springt und dann nichts mehr von der aktuellen Seite ausgeführt wird, in diesem Beispiel also auch nicht das ''text()''. Kennt man die Ursache, ist die Lösung einfach: Das ''text()'' muss vor das ''goTopage()''. |
| |
<code php> | <code php> |
Während PHP-Code von SoSci Survey auf dem Befragungsserver ausgeführt wird, läuft [[de:create:javascript|JavaScript]] im Browser beim Teilnehmer. Entsprechend ist der Browser auch dafür verantwortlich, Fehler und Informationen anzuzeigen. | Während PHP-Code von SoSci Survey auf dem Befragungsserver ausgeführt wird, läuft [[de:create:javascript|JavaScript]] im Browser beim Teilnehmer. Entsprechend ist der Browser auch dafür verantwortlich, Fehler und Informationen anzuzeigen. |
| |
Dafür wird die Fehlerkonsole des Browsers benötigt. Diese findet man -- je nach Browser -- an unterschiedlicher Stelle ([[http://webmasters.stackexchange.com/a/77337/30902|Shortcuts (engl.)]], [[https://codex.wordpress.org/Using_Your_Browser_to_Diagnose_JavaScript_Errors#Step_3:_Diagnosis|Wordpress (engl.)]], [[http://www.stramaxon.com/2013/10/developer-tools-in-browser.html|How to Open Developer Tools (engl.)]]). | Dafür wird die Fehlerkonsole des Browsers benötigt: [[:de:general:browser-tools]] |
| |
Verwenden Sie den Befehl ''console.log()'', um zusätzliche Informationen in der Fehlerkonsole anzuzeigen. So würde der folgende JavaScript-Code z.B. nach einem Element mit der HTML-ID "AB01_01" suchen -- und in der Fehlerkonsole anzeigen, was er gefunden hat. | Verwenden Sie den Befehl ''console.log()'', um zusätzliche Informationen in der Fehlerkonsole anzuzeigen. So würde der folgende JavaScript-Code z.B. nach einem Element mit der HTML-ID "AB01_01" suchen -- und in der Fehlerkonsole anzeigen, was er gefunden hat. |