Avatar billede supermand69 Nybegynder
21. december 2003 - 15:16 Der er 1 kommentar og
1 løsning

chat virker ikke

hey....

jeg har en chat som ikke lige virker helt efter hensigten?? lige når man logger ind er det fint nok... men lige så snart den opdaterer en gang bliver den samme tekst smidt ind igen.... og det bliver den så ved med... hver gang den opdaterer smider den teksten ind igen så den samme tekst kommer flere gange..

her er kilden:
------------------------------------------------------------
chat.php
------------------------------------------------------------
<script type="text/JavaScript">
var maxNumMsgs = <?=$CHAT_MAX_LINES?>;

function gE(id)
{
    return document.getElementById(id)
}

function gA(o,tN)
{
    return o.getElementsByTagName(tN)
}

function write_to_chat(a)
{
    var tbl = gE('chat');
   
    for(i=0; i<a.length; i+=3)
    {
        var newRow = tbl.insertRow(0);
        var newCell = newRow.insertCell(0);
<?
if($USER[set_chat_timestamp])
{
    echo 'newCell.innerHTML = a[i+1] + "&nbsp;";';
    echo 'newCell.className = "chat_timestamp";';
}
?>
        var newCell = newRow.insertCell(1);
        if(a[i])
        {
            newCell.innerHTML = '<span class="chat-text"><b>'+a[i]+'&nbsp;:&nbsp;</b>'+a[i+2]+'</span>';
            newCell.className = "chat_celle";
        }
        else
        {
            newCell.innerHTML = "--&nbsp;"+a[i+2]+"&nbsp;--";
            newCell.className = "chat_log";
        }
    }
   
    var numMsgs = gA(tbl, 'TR').length;
    while(numMsgs > maxNumMsgs)
    {
        tbl.deleteRow(numMsgs-1);
        numMsgs--;
    }
}
</script>

<div class="div_chat">
<table id="chat" cellspacing="0" cellpadding="0">
</table>
</div>
<form name="form_msg" target="chat_msg" action="iframe_chat_msg.php" method="post" autocomplete="off">
<input style="width: 400px;" type="text" name="msg" maxlength="255"><input type="submit">
</form>

<iframe class="iframe_hidden" name="chat_msg" src="iframe_chat_msg.php"></iframe>
<iframe src="iframe_chat.php"></iframe>

------------------------------------------------------------
iframe_chat.php
------------------------------------------------------------
<script type="text/JavaScript">
var a = new Array();
<?
if(!$_GET[time]) $_GET[time] = 0;

$get = mysql_query("SELECT * FROM pd.chat WHERE time>'$_GET[time]' ORDER BY time");
while($row = mysql_fetch_array($get))
{
    $get2 = mysql_query("SELECT user, color FROM pd.users WHERE id='$row[user]'");
    $user = mysql_fetch_array($get2);
   
    if($user[color]) $string .= 'a[a.length] = \'<font color="#'.$user[color].'">'.addslashes($user[user]).'</font>\';';
    else $string .= 'a[a.length] = "'.addslashes($user[nick]).'";';
    $string .= 'a[a.length] = "'.date("H:i", $row[time]).'";';
    $string .= 'a[a.length] = "'.$row[msg].'";';
    $time = $row[time];
}

echo $string;

echo 'parent.write_to_chat(a);';
echo 'setTimeout("location.href=\''.basename($_SERVER[PHP_SELF]).'?time='.$time.'\'", '.$CHAT_REFRESH.');';
?>
</script>

------------------------------------------------------------
iframe_chat_msg.php
------------------------------------------------------------
if($_POST[msg])
{
    $time = time();
    $msg = trim(addslashes(htmlspecialchars($_POST[msg])));
    mysql_query("INSERT INTO pd.chat SET user='$_SESSION[userid]', msg='$msg', time='$time'");
   
    //mysql_query("UPDATE _pd.online SET last_msg='$time' WHERE user='$_SESSION[userid_chat]'");
   
    $exceed_time = $time - $CHAT_MSG_EXCEED;
    mysql_query("DELETE FROM pd.chat WHERE time<'$exceed_time'");
}
?>
<script type="text/JavaScript">
parent.document.form_msg.msg.value = '';
parent.document.form_msg.msg.focus();
</script>
Avatar billede supermand69 Nybegynder
22. december 2003 - 03:29 #1
er der ikke nogen som kan hjælpe... er villig til at give flere points :)
Avatar billede supermand69 Nybegynder
22. december 2003 - 17:03 #2
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester