Zum Inhalt springen

PHP: Ausgabe in 2. Browserfenster


Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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???

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...