Vampire Geschrieben 20. Februar 2005 Teilen Geschrieben 20. Februar 2005 Hallo, ich bin gerade dabei, eine kleine Seite mit PHP und MySQL zu bauen. Jetzt würde ich gerne so eine Art Debugger mit einbauen, weil die SQLs nicht immer auf anhieb wollen und das liefern was sie sollen. In meinem Kopf würde das so aus sehen: Die Funktion für die SQL-Satements schreibt in ein zweites Browserfenster immer weiter die abgesetzten Statements und ob die erfolgreich waren oder eben nicht. Ich möchte aber nicht jedesmal ein neues Fenster auf machen, sondern nur ein mal ganz am Anfang. Ich habe aber keine Ahnung, wie man sowas macht, ich kann nur ins aktuelle Fenster reinschreiben, das ist aber nicht so übersichtlich wenn zwischen Tabellen und allem möglichen die ganzen Statussachen stehen. Das ganze soll auch nur temporär für die Entwicklung sein, spätere Besucher würden davon nichts sehen. Für Tipps wäre ich sehr dankbar. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FMG Geschrieben 20. Februar 2005 Teilen Geschrieben 20. Februar 2005 Du öffnest einmal ein neues Fenster (z. B. via onclick="window.open('fehler.php','Fehlerfenster','...');". Denn nun kannst du mit target beim Link aufs Fenster zugreifen, im Beispiel von mir mit target="Fehlerfenster". Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 20. Februar 2005 Teilen Geschrieben 20. Februar 2005 da du dies wahrscheinlich nur für die Entwicklung brauchst, würde ich deine Debug ausgaben alle in ein tmp_file schreiben lassen und am ende des ladens der seite ein popup öffnen welches dann den inhalt dieser datei dann ausliest und darstellt. siehe dazu http://de2.php.net/manual/de/function.tempnam.php Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Vampire Geschrieben 20. Februar 2005 Autor Teilen Geschrieben 20. Februar 2005 da du dies wahrscheinlich nur für die Entwicklung brauchst, würde ich deine Debug ausgaben alle in ein tmp_file schreiben lassen und am ende des ladens der seite ein popup öffnen welches dann den inhalt dieser datei dann ausliest und darstellt. siehe dazu http://de2.php.net/manual/de/function.tempnam.php Muss das aber auch im INet mal nutzen können. Da darf ich nicht aufs FS zugreifen, bzw. nur lesend Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 20. Februar 2005 Teilen Geschrieben 20. Februar 2005 Muss das aber auch im INet mal nutzen können. Da darf ich nicht aufs FS zugreifen, bzw. nur lesend naja dann schreib deine debug meldungen doch in die DB Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Vampire Geschrieben 20. Februar 2005 Autor Teilen Geschrieben 20. Februar 2005 naja dann schreib deine debug meldungen doch in die DB hmmmm. Da muss man ja erst mal drauf kommen... Werd ich mal antesten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zaphod1984 Geschrieben 21. Februar 2005 Teilen Geschrieben 21. Februar 2005 Noch eine spaßige Sache: Mach einen Stream der permanent in in dem 2ten Fenster geöffnet wird. Dann bei jeder Abfrage die Abfrage und in die DB schreiben, dann kannst du zuschauen wie die Ausgaben purzeln. Alternativ auf das 2te Fenster einen Reload von 1Sekunde oder so, dann kommen die halt im Sekundentakt. Ums Zwischenspeichern kommst du aber wohl nicht rum. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Vampire Geschrieben 21. Februar 2005 Autor Teilen Geschrieben 21. Februar 2005 Noch eine spaßige Sache: Mach einen Stream der permanent in in dem 2ten Fenster geöffnet wird. Dann bei jeder Abfrage die Abfrage und in die DB schreiben, dann kannst du zuschauen wie die Ausgaben purzeln. Alternativ auf das 2te Fenster einen Reload von 1Sekunde oder so, dann kommen die halt im Sekundentakt. Ums Zwischenspeichern kommst du aber wohl nicht rum. das hört sich irgendwie genau nach dem an, wie ich mir das mal vorgestellt habe. Wie macht man den so einen Stream??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FinalFantasy Geschrieben 22. Februar 2005 Teilen Geschrieben 22. Februar 2005 Oder die Ausgaben via JavaScript var MeinFenster; function NeuFenster() { MeinFenster = window.open("datei.htm", "Zweitfenster", "width=300,height=200,scrollbars"); } function DebugLog(message) { MeinFenster.writeln(message); } [/PHP] Habs nicht getestet, aber sollte so funktionieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zaphod1984 Geschrieben 23. Februar 2005 Teilen Geschrieben 23. Februar 2005 Wie der Stream im Detail (Syntax) gemacht wird weiß ich nicht auswendig, schau mal bei php.net Das mit dem JavaScript finde ich auch recht klever, allerdings muss eben der Debug-String in der Seite an sich mitgeliefert und anschließend in das 2te Fenster geschrieben werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 23. Februar 2005 Teilen Geschrieben 23. Februar 2005 Oder die Ausgaben via JavaScript var MeinFenster; function NeuFenster() { MeinFenster = window.open("datei.htm", "Zweitfenster", "width=300,height=200,scrollbars"); } function DebugLog(message) { MeinFenster.writeln(message); } [/PHP] Habs nicht getestet, aber sollte so funktionieren. Das funktioniert so, aber nur, wenn Javascript eine Variable Message hat. Da aber Javascript erst auf dem Client läuft und PHP auf dem Server (also Javascript erst nachdem PHP längst fertig ist) geht es so einfach nich Was du in PHP machen könntest wäre aber (zusammen mit dem Beispiel oben dann): [PHP] function StartJSDebug($aMessage) { echo "\n<script type=\"text/javascript\">\n<!--"; echo "\n var dbgMessage;"; echo "\n dbgMessage = $aMessage"; echo "\n dbgWindow = window.open(\"datei.htm\", \"Debug-Meldungen\", ". "\"width=300,height=200,scrollbars\");"; echo "\ndbgWindow.writeln(dbgMessage);"; echo "\n//-->\n</script>"; } ... $debugString =""; $sqlString = "SELECT something FROM somewhere"; $debugString.="<br />".$sqlString; if (mysql_query($sqlString)) $debugString.= " - OK"; else $debugString.= " - ERROR"; // Das bei jedem SQL machen ... // und am Ende vor </body> StartJSDebug(); ?> </body> </html> Auch nicht getestet, aber sollte wohl gehen. EDIT: Das \n in der Ausgabe bewirkt einen Zeilenumbruch im HTML-Code. Für den Javascript Teil ist das nötig. In einer Zeile geschrieben funzt das sonst nich. Beim Rest ist es für ne bessere lesbarkeit. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FinalFantasy Geschrieben 24. Februar 2005 Teilen Geschrieben 24. Februar 2005 So war das ja auch gedacht. Sollte ja nur ein Denkanstoss sein, und nich gleich die Fertige Lösung :-) Nur dass ich halt die JavaScript-Funktionen, einmal reingeschrieben hätte, und dann eben nur noch mit PHP die Funktionen aufgerufen hätte. Es reicht ja dann, wenn ich für jedes Query im php echo "DebugLog('$query');"; aufrufe... der Aufruf sollte natürlich innerhalb eines <script> Tags erfolgen, beispielsweise am Ende der Hauptseite. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Vampire Geschrieben 24. Februar 2005 Autor Teilen Geschrieben 24. Februar 2005 oha, viel zu testen am WE. Werde mich dann mal melden, welche version ich wie verwendet habe... aber schon mal danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.