Avatar billede nbainfodk Nybegynder
25. marts 2004 - 19:29 Der er 5 kommentarer og
1 løsning

Reloade efter besked i chat

Hej.. På www.nbainfo.dk er der en lille chat ude til højre.. Det er siden shoutbox.php.

Hele koden ser således ud:

<?
if ($settings[guestposts] == "1") {
    $shoutbox = "<form name=\"chatform\" method=\"post\" action=\"$PHP_SELF\">
Navn:<br>
<input type=\"textbox\" name=\"shoutname\" value=\"$userdata[user_name]\" class=\"textbox\" maxlength=\"32\" style=\"width:100%;\"><br>
Besked:<br>
<textarea name=\"shout_message\" rows=\"3\" class=\"textbox\" style=\"width:100%;\"></textarea><br>
<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
<tr><td>
<input type=\"submit\" name=\"post_shout\" value=\"Shout\" class=\"button\" style=\"width:80px;\"></td>
<td align=\"right\"><a href=\"shoutboxhelp.php\" class=\"slink\">Hjælp</a></td></tr>
</table>
</form><br>\n";
} else {
    if ($userdata[user_name] != "") {
        $shoutbox = "<form name=\"shoutform\" method=\"post\" action=\"$PHP_SELF\">
Besked:<br>
<textarea name=\"shout_message\" rows=\"3\" class=\"textbox\" style=\"width: 100%;\"></textarea><br>
<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
<tr><td>
<input type=\"submit\" name=\"post_shout\" value=\"Shout\" class=\"button\" style=\"width: 80px;\"></td>
<td align=\"right\"><a href=\"shoutboxhelp.php\" class=\"slink\">Hjælp</a></td></tr>
</table>
</form><br>\n";
    } else {
        $shoutbox = "<center>Du skal være logget ind for at skrive en besked</center><br>\n";
    }
}

$result = dbquery("SELECT count(shout_id) FROM ".$x2_prefix."shoutbox");
$rows = dbresult($result, 0);
$result = dbquery("SELECT * FROM ".$x2_prefix."shoutbox ORDER BY shout_datestamp DESC LIMIT 0,".$settings[numofshouts]);
if (dbrows($result) != 0) {
    $i = 1;
    while ($data = dbarray($result)) {
        $shout_message = stripslashes($data[shout_message]);
        $shout_message = parsesmileys($shout_message);
        $postee = explode(".", $data[shout_name]);
$shoutbox .= "<div class=\"shoutboxname\">";
        if ($postee[0] != 0) {
            $shoutbox .= "<a href=\"profile.php?lookup=$postee[0]\" class=\"slink\">$postee[1]</a>";
        } else {
            $shoutbox .= "$postee[1]";
        }
        $shoutbox .= "</div>
<div align=\"left\" class=\"shoutbox\">$shout_message</div>
<div class=\"shoutboxdate\">".strftime($settings[shortdate], $data[shout_datestamp]+($settings[timeoffset]*3600))."</div>\n";
    }
    if ($rows > 10) {
        $shoutbox .= "<center><br>
[<a href=\"shoutbox_archive.php\" class=\"slink\">Chat arkiv</a>]</center>\n";
    }
} else {
    $shoutbox .= "<div align=\"left\">no messages have been posted.</div>\n";
}
openside("Chat");
echo "$shoutbox";
closeside();
?>



Kan jeg få siden til at refreshe, når der er skrevet en besked? Eller hvordan kan jeg ellers få en eller anden form for autoreload på?
Avatar billede fangel Nybegynder
25. marts 2004 - 19:39 #1
siden kan IKKE reloade når der kommer noget nyt - for hvordan skulle den vide det (det er netop derfor man ikke kan lave realtime trafikbesparende chats i PHP og derfor bør lave chats i fx Java)...

siden bliver derfor nød til at reloade sig selv med et fast tidsinterval - også selvom der intet nyt er !!! dette gør at der vil komme et delay (da man oftest sætter siden til at reloade fx hvert 3 sek) - og at der kommer en hulens masse trafik og belastning på serveren ved at sige "intet nyt" eller i værste fald, genere hele siden igen...

Morten
Avatar billede olebole Juniormester
25. marts 2004 - 22:26 #2
<ole>

Skriver du endvidere HTML'en ud på serveren, hvergang du henter en besked fra den, maser du performance helt i knæ.
Koden, du har gang i her, kan du ikke bruge til ret meget realistisk  :)

/mvh
</bole>
Avatar billede nbainfodk Nybegynder
09. april 2004 - 22:01 #3
Smider I ikke lige svar?
Avatar billede fangel Nybegynder
10. april 2004 - 11:26 #4
svaa'r
Avatar billede olebole Juniormester
14. april 2004 - 22:50 #5
Ta' du dem bare, dea  :)
Avatar billede nbainfodk Nybegynder
15. april 2004 - 08:51 #6
ole:

Lækkert at se at folk hjælper uden at kræve point..- thumbs up herfra :)..
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