Имам един чат със текстови файлове и използвам AJAX.
Под Opera всичко си върви както трябва обаче при Internet Explorer не може да изпраща информация до сървъра и зарежда чата само един път. Ето го AJAX кода
ето само чат кутията(заменил съм името на сесията със "сесията")
а ето и send.php
ето и receive.php
Моля някой да ми помогне.
Edit: като го качих на външен сървър вече може да изпраща но не получава!
Под Opera всичко си върви както трябва обаче при Internet Explorer не може да изпраща информация до сървъра и зарежда чата само един път. Ето го AJAX кода
Код:
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
alert("Your browser don't use AJAX!");
xmlHttp=null;
}
}
}
return xmlHttp;
}
function setOutput(){
if(xmlHttp2.readyState == 4){
document.getElementById('chat').innerHTML = xmlHttp2.responseText;
}
}
function setOutput2(){
if(xmlHttp.readystate == 4){
document.getElementById('chat').innerHTML = xmlHttp.responseText;
}
}
function send() {
xmlHttp=GetXmlHttpObject();
if(xmlHttp!=null) {
xmlHttp.onreadystatechange=setOutput2;
xmlHttp.open("GET","send.php?user="+document.getElementById('user').value+"&text="+document.getElementById('you').value,true);
document.getElementById('you').value='';
xmlHttp.send(null);
}
}
function load() {
xmlHttp2=GetXmlHttpObject();
if(xmlHttp2!=null) {
xmlHttp2.onreadystatechange=setOutput;
xmlHttp2.open("GET","receive.php",true);
xmlHttp2.send(null);
}
setTimeout("load();",1000);
}
Код:
<b>ВНИМАНИЕ: Чатът се обновява на 1 секунда!</b><br>
<? if(isset(сесията)) { ?>
<input type="hidden" id="user" value="<? echo сесията; ?>">
<? }
else { ?>
<input type="hidden" id="user" value="Гост">
<? } ?>
<div id="chat"></div><br>
<input type="text" id="you"><input type="button" value="Изпрати" onClick="send();"><br>
<script language="JavaScript" type="text/javascript">load();</script>
Код:
<?php
$text=$_GET['text'];
$user=$_GET['user'];
if($text && $user) {
$send_text="<br>".$user.": ".$text;
$a=@fopen("chat.txt","a+");
fwrite($a,$send_text);
fclose($a);
}
echo file_get_contents("chat.txt");
?>
Код:
<?php
echo @file_get_contents("chat.txt");
?>
Edit: като го качих на външен сървър вече може да изпраща но не получава!