Jako školni projekt se snažim naprogramovat jednoduchy chat. Přihlašovani mam vyřešene tak že když se uživatel přihlasi tak se vytvoři zaznam v databazi a jeho login se uloži do session, pokud se odhlasi tak se resetuje session a zaznam se z databaze vymaže. Nevim ale jak vyřešit aby se zaznam z databaze vymazal i potom co uživatel vypne prohlížeč aniž by kliknul na odhlásit se. V tomhle připadě se sice vymaže session ale zaznam v databazi porad zustane a ostatni uzivatele ho uvidi online. jak by se tohle dalo vyřešit?
Fórum › PHP
PHP - odhlašování
Co bych potreoboval tak nejakou ukazku toho jak zobrazit všechny přihlašene uživatele. pokud vim tak session funguje jenom v ramci prohližeče, nevim jak udělat aby informace z něj dostali i ostatni.
prostě jenom nechapu jak muzu zjistit ostatni prihlasene uzivatel. Kdyz se prihhlasim tak pokud sedi prihlasivaci udaje tak udelam tohle $_SESSION['login'] = $login; $_SESSION['prihlasen'] = true;
Ale takhle zjistim že jsem prihlaseny jenom ja, jak zjistim kdo jiny je jeste prihlaseny?
A co třeba mít tabulku "active", ve které budou ID, uživatelské jméno a čas poslední akce? Každých 5 sekund by jsi pomocí AJAXu načítal skript, který by aktualizoval čas poslední akce. Při výpisu by jsi kontroloval, jestli čas poslední akce není menší než aktuální čas - 8 sekund, a pokud ano, tak by jsi záznam smazal, jinak by jsi ho vypsal.
#9 Markaos
Takové periodické občerstvování pro více uživatelů spolehlivě zabije server. To už raději WebSocket, který jednoduše bude reagovat na uzavření kanálu a bude se pro chatování hodit mnohem lépe než cokoli jiného.
Jedinou nevýhodou tohoto řešení bude, že na freehostingu ho v nabídce nenajdeš.
#10 Kit
Myslím, že pokud jde o jednoduchý školní projekt, jak píše v prvním příspěvku, tak se "zabití serveru" bát nemusí...
Mno hele pokud máš přístup ke cronu tak to můžeš vyřešit skriptem který bude pouštěn cronem
$time=Time();//zjistíme aktualní čas
$timeout=$time-300; od aktualního času odečteme 5 minut
$query= myslq_query("DELETE FROM `users` WHERE `users`.`time < $timeout;");//pokud čas nesouhlasí uživatele smažeme
samozřejmě nesmíš zapomenout na aktualizaci casu aby to uživatele neodhlašovalo po 5 minutách po lognutí a pokud nemáš možnost cronu tak to lze bud řešit globálně tak že pokud kdokoliv z uživatelů načte stránku=>odešle novou zprávu tak se jako první provede script ktery odhlasí neaktivní uživatele a až poté odešle zprávu popřípadě vypíše alert ve kterém ohlásí že daný příjemce již není online pokud to nebude chat ktery umi vypisovat jen na ,,sklo´´
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Automatické odhlašování — založil Mircosoft
Přenos proměnných z PHP stránky do dvou jiných PHP stránek současně — založil remmidemmi
PHP pre velke projekty, alebo ako na PHP profesionalne ? #2 — založil Smokie
Nette ako najlepší PHP framework? Alebo čisté PHP? — založil stif
PHP pre velke projekty, alebo ako na PHP profesionalne ? — založil greppi
Moderátoři diskuze