Re: [XHTML] Ajax-Chat in Seite einbinden
Zitat:
Könntet ihr sonst mal den Quelltext von "meinen" Chat überfliegen? |
Re: [XHTML] Ajax-Chat in Seite einbinden
Richtig, das geht über MySQL. In deinem Quellcode verstehe ich nicht ganz, wo du das hinspeicherst. Für mich sieht es aus, als wolltest du das nur ausgeben und den alten Inhalt in einer Variablen festhalten.
Fass ich hier richtig liegen sollte, dann kann ich dir gleich sagen, dass das nicht funktionieren kann. JavaScript läuft clientseitig ab, also im Browser. Du könntest so maximal mit dir selbst chatten, denn dein Browser liest über JS den Inhalt aus, speichert ihn in einer Variablen und gibt diesen und den neuen Inhalt wieder aus. Falls andere Leute etwas schreiben sollten, bekommt dein Skript davon nichts mit. Das würde auch ohne AJAX gehen, dazu würde reines JavaScript reichen. Also speichern musst du das irgendwo, wenn mehrere Leute chatten wollen. Daher beansprucht ein Chat auch relativ stark den Server. Grüße, Matze |
Re: [XHTML] Ajax-Chat in Seite einbinden
Also ich verstehe auch noch nicht ganz, wie das funktioniert, aber es funktioniert auf jeden Fall ^^
(siehe den Test, den ich oben schon gepostet habe) Alles schon mit nem Kumpel getestet. Wir haben beide die Nachrichten vom anderen bekommen. Hier sonst mal der komplette Code
Code:
<?echo '<?xml version="1.0" encoding="ISO-8859-1"?>' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <?php require("Sajax.php"); function colorify_ip($ip) { $parts = explode(".", $ip); $color = sprintf("%02s", dechex($parts[1])) . sprintf("%02s", dechex($parts[2])) . sprintf("%02s", dechex($parts[3])); return $color; } function add_line($msg) { $f = fopen("/tmp/wall.html", "a"); $dt = date("Y-m-d h:i:s"); $msg = strip_tags(stripslashes($msg)); $remote = $_SERVER["REMOTE_ADDR"]; // generate unique-ish color for IP $color = colorify_ip($remote); fwrite($f, "<span style=\"color:#$color\">$dt</span> $msg \n"); fclose($f); } function refresh() { $lines = file("/tmp/wall.html"); // return the last 25 lines return join("\n", array_slice($lines, -25)); } $sajax_request_type = "GET"; sajax_init(); sajax_export("add_line", "refresh"); sajax_handle_client_request(); ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> <head> <link href="style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> //<![CDATA[ <? sajax_show_javascript(); ?> var check_n = 0; var old_data = "--"; function refresh_cb(new_data) { if (new_data != old_data) { document.getElementById("wall").innerHTML = new_data; setTimeout("refresh()", 1000); old_data = new_data; } else { setTimeout("refresh()", 2500); } document.getElementById("status").innerHTML = "Checked #" + check_n++; } function refresh() { document.getElementById("status").innerHTML = "Checking.."; x_refresh(refresh_cb); } function add_cb() { // we don't care.. } function add() { var line; var handle; handle = document.getElementById("handle").value; line = document.getElementById("line").value; if (line == "") return; sajax_request_type = "POST"; x_add_line("[" + handle + "] " + line, add_cb); document.getElementById("line").value = ""; } //]]> </script> </head> <body onload="refresh();"> <div id="container"> <div id="kopf"></div> <div id="navigation"><div id="rollovermenu"><?php include 'navi.ink' ?></div></div> <div id="links"><?php include 'valid.ink' ?></div> <div id="inhalt"> <h1>Chat</h1> <form action="#" onsubmit="add();return false;"> <input type="text" name="handle" id="handle" value="(Name)" onfocus="this.select()" style="width:130px;" /> <input type="text" name="line" id="line" value="(Nachricht)" onfocus="this.select()" style="width:300px;" /> <input type="button" name="check" value="Senden" onclick="add(); return false;" /> <div id="wall"></div> <div id="status">[i]Loading..[/i]</div> </form> </div> </div> </body> </html> |
Re: [XHTML] Ajax-Chat in Seite einbinden
Ah, du speicherst es über PHP in einer HTML-Datei. Das ist bei einem Chat zwar nicht sonderlich sinnvoll, aber wenn's euch ausreicht ok.
Also wenn die Dateien alle über die gleiche Domain erreichbar sind, Schreibrechte für die HTML-Datei da sind und die externe sowie in die Seite eingebundenen Dateien identisch sind, dann weiß ich pauschal auch nicht, wieso es online nicht geht. Grüße, Matze |
Re: [XHTML] Ajax-Chat in Seite einbinden
ich habs jetzt ... es liegt irgendwie an dem DOCTYPE abschnitt. Wenn ich das:
Code:
komplett rausnehme, funtioniert es. Hat jemand ne Idee, wodran das liegen könnte?
<?echo '<?xml version="1.0" encoding="ISO-8859-1"?>' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
Re: [XHTML] Ajax-Chat in Seite einbinden
Das "echo" kannst du dir auch schenken und es direkt hinschreiben. Der Umweg über PHP ergibt keinen Sinn.
Vielleicht geht es nicht, weil du die Anwendung nicht als XML auslieferst. Ich würde die erste Zeile, also das "echo" jedoch komplett weglassen. Irgendwelche IE-Versionen haben bei mir damit gesponnen, ohne ging es dann. Die Hauptsache ist doch, dass es in allen gängigen Browsern funktioniert. Die DP ist beispielsweise alles andere als W3C-konform, aber wen juckt's? Sie sieht überall gut aus und ist in allen Browsern bedienbar, mehr ist nicht nötig. Grüße, Matze |
Re: [XHTML] Ajax-Chat in Seite einbinden
Zitat:
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Muss nicht sein. Deaktiviere CSS und du siehst ganz grob, was ein Screenreader sieht.
Aber klar, wenn etwas validiert ist, ist es sicherer, zumal die Seite ohne die XML-Angabe ganz oben auch validiert sein müsste. Meine Seiten sind es zumindest in der Regel und ich nutze diese Angabe nicht. Ob es W3C-konform ist, ist natürlich wieder die andere Frage. Die haben ja so viele Regeln, die der Validator nicht prüfen kann (<table> nicht fürs Layout etc.). Aber gut, das ist ein anderes Thema. ;) |
Re: [XHTML] Ajax-Chat in Seite einbinden
Wenn ich das <?echo ' ... ' ?> rausnehme geht es ja gerade nicht in den Browsern. Es reicht auch nicht nur das
Code:
oder nur das
<?echo '<?xml version="1.0" encoding="ISO-8859-1"?>' ?>
Code:
rauszunehmen. es funktioniert nur, wenn ich beides rausnehme.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
Re: [XHTML] Ajax-Chat in Seite einbinden
Den Umweg über das echo muss ich auf meienr Seite auch gehen, was daran liegt dass der PHP-Parser das <?xml als Starttag wertet.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz