Сырой вариант с некоторыми лишними вещами(например ид и т.д.),но уже работает: 1 - chat.php HTML: <html> <head> <Script Language='JavaScript'> function load2() { var load2 = window.open('chat_log.php','','scrollbars=yes,menubar=0,height=700,width=450,resizable=no,toolbar=no,location=0,status=0'); } </script> </head> <body> <table align=center> <form> <input type="button" value="enter chat room" onclick="javascript:load2()"> </form> </table> </body> </html> 2-chat_log.php HTML: <html> <body> <table align="center"> <tr><td> <form method="post" action="ajax1.php"> Name : <input type="text" name="login" /> <input type="submit" value="login" /> </form> </tr></td> </body> </html> 3-ajax1.php PHP: <?php session_start(); $_SESSION['login']=$_POST['login']; echo ' <html> <head> <script src="clienthint.js"> </script> </head> <body onload="showHint(\''.htmlSpecialChars($_SESSION['login']).'\')"> <center><h3>Welcome to my chat</h3></center> <table align=center width=300> <caption><i>comments</i></caption> <tr align=center><td> <form name="Formy"> <input type="text" id="txt1" onKeyDown="textCounter(this.form.txt1,this.form.remLen2,150)" onKeyUp="textCounter(this.form.txt1,this.form.remLen2,150)" /> <input readonly type="text" name="remLen2" size="3" maxlength="3" value="150"> <input type="reset" value="submit" onclick="Clicky(txt1.value,\''.htmlSpecialChars($_SESSION['login']).'\')"> </form> </tr></td><tr><td> <span id="Hint"></span> <div id="txtHint"></div> </td></tr> </table> </body> </html>'; //echo "chekup : ".$_POST['login']; ?> 4-clienthint.js [js]var xmlHttp; function showHint(name){ xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Your browser does not support AJAX!"); return; } var url="gethint.php"; url=url+"?id=1"; url=url+"&name=" + name; url=url+"&sid="+Math.random(); xmlHttp.onreadystatechange=stateChanged; xmlHttp.open("GET",url,true); xmlHttp.send(null); setTimeout("showHint(name)",1000); } function Clicky(comments,name){ xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Your browser does not support AJAX!"); return; } var url="gethint.php"; url=url+"?comments=" + comments; url=url+"&name=" + name; url=url+"&sid="+Math.random(); xmlHttp.onreadystatechange=stateChan; xmlHttp.open("GET",url,true); xmlHttp.send(null); } function stateChanged() { if (xmlHttp.readyState==4) { document.getElementById("txtHint").innerHTML=xmlHttp.responseText; } } function stateChan() { if (xmlHttp.readyState==4) { document.getElementById("Hint").innerHTML=xmlHttp.responseText; } } function GetXmlHttpObject() { var xmlHttp=null; try { xmlHttp=new XMLHttpRequest(); } catch (e) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; } function textCounter(field,cntfield,maxlimit) { if (field.value.length > maxlimit) field.value = field.value.substring(0, maxlimit); else cntfield.value = maxlimit - field.value.length; }[/js] 5-gethint.php: PHP: <?php session_start(); if(!isset($_SESSION['login'])){ //echo "session is unset"; $_SESSION['login']=$_GET['name']; } if(isset($_SESSION['login'])){ //echo "hello ".$_SESSION['login']; $name=$_SESSION['login']; }else{ echo "nnnoo";} if(!isset($_SESSION['time'])){ //echo "session is unset"; $_SESSION['time']=time(); } $times=$_SESSION['time']; $id=$_GET['id']; $comments=htmlspecialchars($_GET['comments']); $link=mysql_connect("host","login","password") or die("Could not connect: " . mysql_error()); mysql_select_db("ajax_chat") or die("Could not select database: " . mysql_error()); $time=time(); $data="INSERT INTO chat_log VALUES('$name','$id','$time')"; mysql_query($data) or die("Could not perform operation: " . mysql_error()); if(isset($_GET['comments'])){ $data="INSERT INTO chat VALUES('$name','$comments','$time')"; mysql_query($data); } // getting data from chat_log if(!isset($_GET['comments'])){ $time=time()-5; $data="SELECT DISTINCT name FROM chat_log WHERE date>$time ORDER BY name"; $resulty=mysql_query($data); $n=mysql_num_rows($resulty); $i=0; while($i<$n){ $result=mysql_result($resulty,$i); echo "<br />login: ".$result; $i++;} echo "<br />"; // going to retrive data from from the table now $data="SELECT * FROM chat WHERE date>$times"; $resultz=mysql_query($data); $n=mysql_num_rows($resultz); $n=$n-1; while($n>(-1)){ $result=mysql_result($resultz,$n,0); $out = "<br /><font color='red'>".$result."</font>"; $result=mysql_result($resultz,$n,1); $out .= " : ".$result; echo $out; $n--;} } ?> [sql]CREATE TABLE chat_log(name VARCHAR(25),id SMALLINT,date MEDIUMINT); CREATE TABLE chat(name VARCHAR(25),comments VARCHAR(150),date MEDIUMINT);[/sql]
Ктонить подскажет как именно решить проблему с кодировкой?! Я уже перелопатил кучу документации но так и не нашел =( Есть один вариант: при помощи iconv перекодировать но проверить немогу т.к. мой денвер ругается что нет такой комманды... можно ли решить проблему с кодировкой не на РНР а на Java непосредственно в этом месте кода: [js]document.getElementById("txtHint").innerHTML=xmlHttp.responseText;[/js] Может ктонить поможет?!
GHostly_FOX, ку, земляк. =) /* «Павлодар становиццо столицей программирования!» © Ося Бендер-Задунайский*/
У меня не работает. Выдаёт такое сообщение: Notice: Undefined index: comments in z:\home\chat\public_html\gethint.php on line 20
vital72 HTTP вообще не для чата. Если на любой чат навалится несколько тысяч юзеров, он будет жутко лагать. А этот сайт по ссылке скорее для рекламы какой-то ерунды, которую впаривают на последней ссылке. Любой человек, который прочтет ?1,?2,?3 - скажет: "что мне эти 3 мегабайта в час, когда у меня в месяц 10 гигов!". Там не сказано главного - как хреново серверу. Не сказано, что надо прилагать усилия, чтобы его оптимизировать.