![]() |
[XHTML] Ajax-Chat in Seite einbinden
Hallo Community,
ich erstelle grade eine Test-Homepage mit einem Ajax-Chat. Dieser benötigt SAjax. Den Chat habe ich zweimal hochgeladen. Einmal ![]() ![]() Liegt es daran, das er nicht XHTML valide ist? Gibt es ne Möglichkeit den Chat valide zu bekommen? Gruß Saul EDIT: 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"> 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"> Weiß jemand, was ich umschreiben müsste, damit die Tags drinbleiben können? |
Re: [XHTML] Ajax-Chat in Seite einbinden
Zitat:
![]() Viele Grüße |
Re: [XHTML] Ajax-Chat in Seite einbinden
Zitat:
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Was sagt den der Validator?
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Wenn ich das richtig sehe, streikt da auf deiner Seite der JavaScript-Part. Kann mir nicht vorstellen, dass es an der Validität scheitert!
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Aber woran kann das liegen? Javascript kann man doch eigentlich mit XHTML verknüpfen. Das muss doch gehen :wall: Ich dreh hier schon voll ab :bouncing4:
Oh man ^^ Vielleicht muss ich es so einbinden
Code:
Was sagt mir das CDATA?
<script type="text/javascript">;
<![CDATA[ //content of your Javascript goes here ]]> </script> |
Re: [XHTML] Ajax-Chat in Seite einbinden
Es sorgt dafür, das der Text innerhalb dieses Bereiches von dem allgemeinen Parser nicht interpretiert wird
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Code:
Diese leere Anweisung kannst du weglassen (das Semikolon).
<script type="text/javascript">;
Also Firebug meldet keine JS-Fehler oder -Warnungen, es scheint etwas Grundlegendes nicht zu funktionieren. |
Re: [XHTML] Ajax-Chat in Seite einbinden
Zitat:
aber es klappt trotzdem nicht :'( Du hast recht. Scheint an etwas größerem zu liegen :glaskugel: |
Re: [XHTML] Ajax-Chat in Seite einbinden
Ich habe damals zum Herumspielen
![]() Grüße, Matze |
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 ^^
( ![]() 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.
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Wenn ich mir die
![]() Erweitere einfach deinen Code um ein DIV-Element...
Code:
<form ... >
<div> <input ... /> </div> </form> |
Re: [XHTML] Ajax-Chat in Seite einbinden
Danke omata. Also Valide ist die Seite jetzt schonmal, nur das grundlegende Problem existiert immernoch :(
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Hallo,
ich bins wieder ... Gibt es sonst vielleicht die Möglichkeit, die Tags
Code:
in Metadaten umzuschreiben? Sicher nicht komplett oder? Aber wenn ich mich richtig erinnere, kann man die zu validierende "Version" über die Meta-Tags angeben. Kann sich jemand erinnern, wie das geht? Weil wenn ich die Tags rausnehme, lässt sich die Seite ja nicht mehr validieren ... Ist vielleicht nicht die beste Möglichkeit, aber immerhin würde es laufen :lol:
<?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
Liegt es ganz sicher am Doctype? Denn damit hatte ich bisher nie Probleme, denn der gehört natürlich zu jeder Seite dazu.
|
Re: [XHTML] Ajax-Chat in Seite einbinden
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Das verstehe ich überhaupt nicht.
Kannst du mir mal dein Projekt gezippt schicken oder hier anhängen? Mit der PHP-Datei, die du hier angegeben hast, will das bei mir nicht laufen. Grüße, Matze |
Re: [XHTML] Ajax-Chat in Seite einbinden
Du brauchst ja zusätzlich auch noch die
![]() |
Re: [XHTML] Ajax-Chat in Seite einbinden
Jaja, die habe ich mir schon besorgt. ;) Es kommt immer ein "Headers already sent" und ich weiß aber nicht wieso.
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Man kann in der php.ini einstellen das Header am Stück gesendet werden output_buffering.
Aber besser dafür sorgen, dass alle Header gesendet werde, bevor der Rest der Seite kommt. Oft liegt es an unsichtbaren Leerzeichen ausserhalb von Tags |
Re: [XHTML] Ajax-Chat in Seite einbinden
Zitat:
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Ich denke an mich. ;)
@Markus: Da ich eine TPL-Engine nutze, weiß ich meist, woran es liegt. Doch dieser HTML-PHP-Mischmasch ist etwas durcheinander, sodass ich da nicht erkennen kann, wo nun ein Leerzeichen zu viel ist. @Saul: Wie gesagt: Wenn du mir das hier anhängst, biete ich dir an, dass ich's mal teste. Garantieren kann ich natürlich für nichts. Und sonst weiß ich auch nicht mehr weiter und werde mich hier ausklinken. Gruß |
Re: [XHTML] Ajax-Chat in Seite einbinden
@Matze: wäre auch die Aufgabe von Saul, das in Ordnung zu bringen
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Solange befasse ich mich mit der Webprogrammierung, noch nicht... @Matze: Ich hab dir die benötigten Dateien mal angehängt. Wäre echt nett, wenn du dir das mal anschauen würdest. |
Re: [XHTML] Ajax-Chat in Seite einbinden
Da kommt bei mir der gleiche Fehler. Keine Ahnung, was da los ist, sorry.
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Nimm mal diese Leerzeile raus
Code:
und hier auch
<?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 ...
Code:
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> |
Re: [XHTML] Ajax-Chat in Seite einbinden
? Welche meinst du jetzt genau? ich kann doch nicht alles zusammen schreiben?
|
Re: [XHTML] Ajax-Chat in Seite einbinden
DU sollst ja auch nur die Leerzeilen killen. ;)
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Ja das hab ich schon verstanden, aber das ändert doch normaler weise nix am code ... das is doch nur für die übersicht. und wenn ich die alle wegnehme klappts auch nicht.
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Leerzeichen/Zeilen zwischen Tags sorgen für den Fehler den Matze vorhin genannt hat.
|
Re: [XHTML] Ajax-Chat in Seite einbinden
Also ich hab jetzt alle rausgenommen, die ich für nicht notwendig gehalten habe und nix passiert :(
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz