Avatar billede wampiro-uha Nybegynder
14. september 2003 - 15:32 Der er 2 kommentarer og
1 løsning

Indviklet problem med chat!

Jeg er igang med at tilpasse en chat og mangler én side.
Jeg får alle chat-beskeder langt ind i filen history.dat og i den kan der forekomme tegnet ::-> hvor der før tegnet vil være et id og efter tegnet vil der være en chat-besked.
Dette bruges til personlige beskeder og skal derfor kun vises til vedkommende der har id'et som findes før tegnet.
Når man er logget ind vil ens id findes i en session.

Mit problem er den nedenstående "meget lange og uoverskuelige" kode. Det jeg prøver på er at holde en connection åben så chatten fungerer uden refresh osv. Altså en slags server-push tek.

Er der nogen der kan ordne koden så den vil fungerer!
Når jeg kører den så går browseren bare i stå.

-------------Kode--------------------------------

<script language='JavaScript' type='text/javascript'>
function move() {
self.scrollBy(0,999999); }
</script>

</head>

<body>

<?
set_time_limit(0);
ignore_user_abort(1);
ob_implicit_flush(1);

$history = "history.dat";

function glmsg() {
global $history;
$charr = file($history);
$last_msgc = count($charr)-1;
$last_msg = $charr[$last_msgc];
return trim($last_msg); }

function cmpmsg($inp) {
global $history;

$charr = file($history);
$last_msgc = count($charr)-1;

for ($i=0; $i<=$last_msgc; $i++) {
$charr[$i] = trim($charr[$i]);
if ($inp==$charr[$i]) {
$toreturn = $i+1;
for ($ri=$toreturn; $ri<=$last_msgc; $ri++)
{ $retmsg .= $charr[$ri]."\n"; }}}

return $retmsg; }

$count=0;

while(connection_status()===0) {

$mm = glmsg();
sleep(1);
//usleep(500000);
$mm2 = cmpmsg($mm);

$count++;
$check=($count % 30);
if ($check==0) { echo " "; }

if ($mm2!="") {

$ds = explode("\n", $mm2);
$dc = count($ds)-1;

for ($i=0; $i<$dc; $i++) {

if (ereg("<!--(.+)-->([a-zA-Z0-9à-ÿÀ-ß_\-]+)::([a-zA-Z0-9à-ÿÀ-ß_\-]+)::([^<]*)<br>", $ds[$i], $nk)) {

$nk[4] = smiles($nk[4], $nk[2]);

if ($nickname==$nk[2]) { echo "<b>$personalfor $nk[3]:</b> ". stripslashes($nk[4]). "<script>move();</script><br>"; }
if ($nickname==$nk[3]) { echo "<b>$personalfrom $nk[2]:</b> ". stripslashes($nk[4]). "<script>move();</script><br>"; }

} else {

$fk = ereg("<!--(.+)--><font color=[^>]+>([a-zA-Z0-9à-ÿÀ-ß_\-]+)</font>", $ds[$i], $nk);

$ds[$i] = smiles($ds[$i], $nk[2]);

echo stripslashes($ds[$i])."<script>move();</script>"; }

//if $mm2
}

//while
}

exit;
?>

</body>
Avatar billede wampiro-uha Nybegynder
14. september 2003 - 15:42 #1
Chatten kan hentes her så man kan se de andre sider:

http://friserverplads.dk/wampirouha/Chat.zip
Avatar billede wampiro-uha Nybegynder
14. september 2003 - 15:43 #2
Som bruger skal man i en mysql-DB have cellerne username og online_chat
Avatar billede wampiro-uha Nybegynder
17. september 2003 - 19:03 #3
Nå!
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