Autor Zpráva
Ricky4852
Profil
Zdravím, mám taký menší problém s chatom, týka sa aj MySQL ale aj PHP, takže som to dal viac-menej sem:

Pokúšam sa o vlastný chat, ale došiel som ku problému. Akonáhle sa niekto na chat prihlási, UPDATEne mu to v mysql 'login' na 1, to znamená že je prihlásený, a SESSION 'login' sa mu nastaví na 0.

Neskvôr keď chce odísť, normálne by sa mal odhlásiť, 'login' v databáze sa nastaví na 0, session sa uzavrie. Tu ale nastáva problém, že keď sa neodhlási, ale len zavrie okno, session sa možno vymaže za niekoľko minút, ale 'login' v databáze vždy ostane na 1, čomu sa chcem vyhnúť.

Je teoreticky nejaká možnosť to vyriešiť? Pripomínam však, že by som veľmi nerád takéto veci kontroloval cez jeden počítač, ktorý by bol ako server...

Ďakujem za všetky riešenia :)
HajekJirka
Profil
Musíš kontrolovat kdy naposledy něco napsal a je li ten čas delší než nějaká hodnota (např. 10minut), tak ho automaticky odhlásíš. (Protože, pokud nic nenapsal 10minut, tak pravděpodobně odešel.)
Už se to tady několikrát řešilo.

Jiná možnost podle mě není. Teda alespoň o ní nevím.
Fisak
Profil
Ricky4852:
by som veľmi nerád takéto veci kontroloval cez jeden počítač, ktorý by bol ako server...
na takovéto věci existuje "Cron"... tzn skript se ti bude spouštet v určitou dobu nebo v určitých intervalech.. .takže např. zapíšeš datum a čas do db kdy se přihlásil... s každým příspěvkem do chatu se toto datum a čas aktualizuje .. do cronu hodíš script kterej ti kontroluje kolik je momentálně čas a datum kdy si naposled měl aktivitu a pokud je rozdíl větší než např. 10 min. tak se ta hodnota v db updatne na 0
Ricky4852
Profil
HajekJirka, Fisak: ďakujem, skúsim to teda vašimi metódami vyskúšať :)
Fisak
Profil
Ricky4852:
ještě mě napadlo... pokud na serveru není k dispozici cron tak zkus u každýho uživatele který třeba vstoupý do místnosti nebo něco napíše tak aby se ověřilo jestli jsou všichni stále online výše uvedeným způsobem ... ale podle mého názoru je lepší ten cron :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: