Для изучения php поставил себе Денвер и начал писать небольшую панельку себе в удобство. Однако. Когда я решил перейти от <form> тегов к ajax у меня везде стала вылезать ошибка 0. У меня windows 7 Денвер и все порты открыты + брандмауэр успешно отключён ещё пару лет назад. Но что делать? Может у кого уже была такая же проблема? Подскажите прошу.
Вот собственно и код страницы
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta charset="windows-1251"/>
<style>
textarea{width:500px;height:500px;}
#filename{height:50px;}
input{width:500px;}
</style>
</head>
<body>
<textarea id="filename">Имя документа</textarea><br />
<textarea id="filebody">Тело документа</textarea><br />
<input onclick="xhr()" type="submit"/>
<script>
function xhr()
{
var xhr=new XMLHttpRequest();
var params = 'filename=' + encodeURIComponent(document.getElementById('filename').value) + '&filebody=' + encodeURIComponent(document.getElementById('filebody').value);
xhr.open('POST','localhost/filecraftphp.php?'+params,true);
xhr.onreadystatechange = function()
{
if (xhr.readyState != 4) return;
if (xhr.status != 200)
{
// status=0 при ошибках сети, иначе status=HTTP-код ошибки
alert('Ошибка ' + xhr.status + ': ' + xhr.statusText);
return;
}
}
alert(xhr.status);
}
</script>
</body>
</html>
И код обработчика
<?php
$filename=$_POST['filename'];
$filebody=$_POST['filebody'];
if(!file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$filename.'.html')){
fopen($_SERVER['DOCUMENT_ROOT'].'/'.$filename.'.html','x+');
}
else{$old_file=file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$filename.'.html');}
$html="
<!DOCTYPE html>
<html>
<head>
<meta charset='windows-1251'/>
<title>$filename</title>
</head>
<body>
$filebody
</body>
</html>
";
if(strlen($filename)>5){
if($old_file!=$html)
{
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$filename.'.html',$html);
}
}
?>