Diskuze: Zobrazovanie užívateľov online

PHP PHP Zobrazovanie užívateľov online American English version English version

Avatar
Marek Burda
Člen
Avatar
Marek Burda:

Zdravím. Na svojej stránke chcem zaviesť zobrazovanie užívateľov ktorý sú online. Kódy už mám no niečo nefunguje. Prvá chyba : ked je id hráča(prihlaseny) zo sessionu číslo 1, tak to do druhej db zapíše číslo 0 netuším prečo. Druhá chyba je to, že čas je tam nereálny a zorbazuje to niekoľko miliónov sekúnd. Prikaldám kódy. Poprípade budem rád za nejaký funkčný návod ako vytvoriť zobrazovanie hráčov ktorý sú online.

function update(){
if(isset($_SESSION["prihlaseny"])){

$time = time();
$query = "REPLACE INTO status(id_hraca,activity) VALUES ('".$SESSION["prihlaseny"]."','".$time."');";
$res = mysql_query($query) or die(mysql_error());
}
}

function getOnline(){
$casAktivity = 300;

$time = time()-$casAktivity;

$query = "DELETE FROM status WHERE activity < ".$time.";";
$res = mysql_query($query) or die(mysql_error());

$query = "SELECT p.id_hraca as id_hraca , p.meno as meno FROM status s, players p WHERE p.id_hraca = s.id_hraca;";
$res = mysql_query($query) or die(mysql_error());
$online = array();

while ($riadok = mysql_fetch_assoc($res))
$online[] = $riadok;

return $online;
}

Zorbazovanie :

$online = getOnline();

echo "Online hráči: <br>";

if(sizeof($online) >0) {
        foreach ($online as $hrac) {
                echo "ID hráča: {$hrac["id_hraca"]} ";
                echo "Meno hráča: {$hrac["meno"]} <br>";
        }
}else{
        echo"Nikto nieje online.";
}
 
Odpovědět  +1 18. března 21:59
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Marek Burda
IT Man:

Ty tam vkládáš $SESSION, ne $_SESSION. Čas je v pořádku, vrací ti Unix timestamp (nevím, jak to nazvat česky), mrkni se na tu funkci: http://php.net/…ion.time.php. Stačí ho jen naformátovat např.

date("d.m.Y", $time);

Btw. začni používat místo mysql_query() mysqli_query() či PDO. Přečti si něco o nich. :)

Nahoru Odpovědět  +3 19. března 7:05
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Marek Burda
Člen
Avatar
Marek Burda:

Ďakujem veľmi pekne za pomoc :) Už to funguje. Stačí vynechať jeden znak a už to nebude klapať :) Ďakujem aj za spomenutú radu určite sa nato pozriem :)

 
Nahoru Odpovědět  +1 19. března 11:51
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Marek Burda
IT Man:

Není zač, ale IDE by tě mělo na to upozornit. :)
Btw. příště použij tlačítko Odpovědět, ať mi přijde upozornění o tvé zprávě.

Nahoru Odpovědět  +2 19. března 13:38
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.