Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Ошибка при чтении и записи


Автор: mastertgtu 16.8.2007, 10:20
Добрый день!

Есть форма где JavaScript обновляет элемент DIV каждые 5 сек. Переменные DIV читаются из файла. Запись делается только при сабмите на тот же файл.
при сабмите php ругается: Warning: fwrite(): 23 is not a valid stream resource in

как можно организовать одновременное чтение и запись в файл


Код

<script language='javascript'>
function checkBrowser(){
            this.ver=navigator.appVersion
            this.dom=document.getElementById?1:0
            this.iex=(this.ver.indexOf("MSIE")>-1 && this.dom)?1:0;
            this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
            this.ie4=(document.all && !this.dom)?1:0;
            this.ie=(this.iex || this.ie5 || this.ie4);
            this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
            this.ns4=(document.layers && !this.dom)?1:0;
            this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
            return this
}
var bw=new checkBrowser();
function makeObj(obj){
        this.style=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?document.layers[obj]:0;
        this.own=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?document.layers[obj].document:0;
        return this
}

function dostart(){
  w = setInterval("dold()",5000);
  dold();
}

function dold(){
  var s="";
  objXml = new ActiveXObject("Microsoft.XMLHTTP");
  var datafile = "<?echo $wid?>.html";
  objXml.open("GET", datafile, true);
  objXml.onreadystatechange=function() {
  if (objXml.readyState==4) {
        s="<table style='font-size:10' width=15% cellpadding=0 cellspacing=0>";
        s +="<tr><td bgcolor=#d3d5d8 align=center><b><?echo 'Заказы: '.$nm."</b>";?></td><td>  ";
        s +=objXml.responseText;
        s +="</td></tr>";
        s+="</table>";
        makeObj('dvc').own.innerHTML = s;
  }
  }
 objXml.send(null);
}
</script>



Код

<body onload="dostart()">

$fp = fopen( $wid.".html" , "w" );

    for ($i=0  ; $i<$n; $i++)  {
    $cst = $cust[$ind[$i]];
if ($rw['ready']==1)
{
$st1= "<a style=\"FONT-SIZE: 12px;font-weight:bold;COLOR: #008000; FONT-FAMILY: tahoma, sans-serif; TEXT-DECORATION: none\"  href=?act=menu&cust=$cst>".($i+1)."</a>&nbsp
<BGSOUND SRC=img/ringout.wav LOOP=1  VOLUME=5>";
fwrite($fp,$st1);
}
else
{
$st2= "<a style=\"FONT-SIZE: 12px;font-weight:bold;COLOR: #FF0000; FONT-FAMILY: tahoma, sans-serif; TEXT-DECORATION: none\"  href=?act=menu&cust=$cst>".($i+1)."</a>&nbsp;" ;
fwrite($fp,$st2);
}
fclose($fp);

Автор: mastertgtu 16.8.2007, 11:32
Я наверно ошибся создав в этот раздел эту задачку. Прошу модераторов переместить в топик PHP:для профи

Автор: WolfON 16.8.2007, 13:06
попробуйте w+
возможно файл не создан или ссылка на него была переопределена во время работы и из-за этого не пишется

Автор: mastertgtu 16.8.2007, 14:24
Я пробовал 'w+' не помогло, я отказался делать refresh на DIV, сейчас нашел более легкий путь: <iframe> без использования JavaScript...
но мне нравилось делать это на DIV, не заметно и красиво...
было бы интересно узнать мнение профи -=Ustas=- , mishaSL и др...
  
anyway thanx  WolfON and to all others...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)