PHP+JS (innerHTML) - иногда глюки... РАЗБЕРЁМСЯ !?

el-niko

Guest
PHP+JS (innerHTML) - иногда глюки... РАЗБЕРЁМСЯ !?

Какой принцип....

РНР-скрипт в обновляющемся каждые n секунд окошке смотрит таблицу и если количество строк записанное в куку при прошлой перезагрузке не совпадает с настаящим кол-вом строк то циклом при помощи JS-функции innerHTML он "дописывает" в главный фрейм моего чата нОвЫе строчки...

Так вот, в чём же, собственно, трабл...

Текст сообщения у меня предварительно обрабатывается функцией такой вот:
PHP:
<?
function replace($string){
global $exech;
$string = " " . $string;
$string = eregi_replace('([[:space:]()[{}])([url]www.[/url][-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1<a href="http://\\2" target="_blank">\\2</a>', $string);
$string = eregi_replace('([[:space:]()[{}])(http&#58;//.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1<a href="\\2" target="_blank">\\2</a>', $string);
$string = eregi_replace("[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*","<a href=\"mailto:\\0\">\\0</a>",$string);
$autochange=file("change.dat");
$lines=count($autochange);
 for($i=0;$i<$lines;$i++){
   list($change1,$change2)=explode("|", $autochange[$i]);
   $string = eregi_replace("$change1","$change2",$string);
  }
return trim($string);
}
?>
Итак, если сообщение вида "Бла-бла-бла =) " - то всё ок, идёт текст и вместо =) картиночка

НО ! если текст вида "=) Бла-бла-бла" то ничё не происходит никакого дописывания !!! и даже если текст вида "=) =)" тож ничё не происходит

Прилагаю код:
PHP:
....... из cfg.inc.php ........
<?

function msg_prt($m_lg, $m_ulg, $m_pr, $m_col, $m_tim, $m_msg){
if( !empty($m_pr) ){
    $to=" для $m_pr";
}else{
    $to="";
}

if($m_pr==$m_lg){
    $col="bgcolor=\"#B8E0E8\"";
    $ali="align=\"left\"";
    $ttt="<font color=\"#".color($m_col)."\">[".date("H:i", $m_tim)."] ".usr_link($m_ulg)." $to > ".replace($m_msg)."<br></font>";
}elseif($row['pri']==";sys;tem;"){
    $col="bgcolor=\"#7EBBC7\"";
    $ali="align=\"center\"";
    $ttt="<font color=\"#".color($m_col)."\">[".date("H:i", $m_tim)."] ".replace($m_msg)."<br></font>";
}else{
    $col="";
    $ali="align=\"left\"";
    $ttt="<font color=\"#".color($m_col)."\">[".date("H:i", $m_tim)."] ".usr_link($m_ulg)." $to > ".replace($m_msg)."<br></font>";
}

$msg = "<table $col width=100%><td $ali >".$ttt."</td></table>";

return ($msg);
}
?>
.......................................
Скрипт ниже как раз и обновляется каждые n секунд
.......................................
<?
include("cfg.inc.php");
$sql="select * from $tbl";
$result=mysql_query($sql);
$cfz=mysql_num_rows($result);
setcookie("chatfilesize",$cfz);

if($cfz!=@$chatfilesize){
 if ($_COOKIE['ch_chat_reg']  == "yes"){
   print "<script>top.frames['main'].location.reload()</script>";
 }else{
  $strtq=@$chatfilesize;
  $stpq=$cfz;
  $query = "SELECT * FROM $tbl LIMIT $strtq,$stpq";
  $res = mysql_query($query) or die(mysql_error());
  while ($row=mysql_fetch_array($res)) {

    $msg = msg_prt($_COOKIE["login"], $row['log'], $row['pri'], $row['col'], $row['tim'], $row['msg']);
    print $msg;

    print "<script>";
    if ($_COOKIE['ch_chat_reg']=="no"){

        print "top.frames['main'].document.all['messages'].innerHTML = top.frames['main'].document.all['messages'].innerHTML + '".$msg."' ;";
        print "top.frames['main'].window.scrollTo(0, 9999999999);";
    }elseif ($_COOKIE['ch_chat_reg']=="yes"){
        print "top.frames['main'].location.reload;";
    }
    print "</script>";
  }
 }
}

?>
<meta http-equiv="refresh" content="<?=$_COOKIE['ch_chat_refr']?>">
Помогите, ребята, очень нужна помошь !!!!

Заранее всем ОГРОМНОЕ СПАСИБО && РЕСПЕКТ !!!
 

el-niko

Guest
PHP FAQ: Самые основы. ОЧЕНЬ ВАЖНОЕ ЗАМЕЧАНИЕ:

В частности, это ИЛИ html ИЛИ картинка. Но не вместе. Если картинка - то ОДНА. Несколько картинок подряд браузер показывать не умеет. Браузер умеет показывать HTML, в котором прописаны ССЫЛКИ на несколько картинок.
Вот что-то я не врублюсь в эти слова...

как мне бороться-т с этим "ужасом" ???
 

Фанат

oncle terrible
Команда форума
очень просто.
сначала сделай то, что тебе надо, без участия пхп.
только конечный результат
 

bgm

&nbsp;
Интересно - хватит у кого терпения разобраться "с этим ужасом"?
 
Сверху