PHP - Online uživatelia.
PREDOM ĎAKUJEM !
Pre pridávanie komentárov sa musíte prihlásiť.
Pre pridávanie komentárov sa musíte prihlásiť.
Priatelia želám Vám do Nového roku 2025 všetko dobré, nech sa Vám vo svete Linuxu darí a z mojej strany ďakujem všetkým, ktorí akýmkoľvek spôsobom prispievajú na tento web. Či sú to už správy o zaujímavých novinkách, komentáre v diskusiách alebo blogy, ktoré niekedy zaberú aj pol dňa klepania na úkor svojho času. O to väčšia vďaka, PF 2025.
3. ročník Bratislava OpenCamp sa uskutoční 5. 4. 2025
Po covidových rokoch a ďalších prekážkach je pred nami tretí ročník, ktorý sa uskutoční v apríli 2025 na FIIT STU v Bratislave. Prvý aj druhý ročník konferencie sa tešil účasti okolo 300 ľudí, veríme že tretí ročník bude ešte lákavejší.
Zdroj: Bratislava OpenCamp
Aj v roku 2025 sa v Bruseli uskutoční podujatie "Free and Open source Software Developers’ European Meeting" (FOSDEM). Viac na jeho stránkach.
Zdroj: https://fosdem.org/2025/
Komerčné riešenie pre virtualizáciu VMware Workstation Pro bolo uvolnené bezodplatne pre osobné použitie približne od mája 2024. Jedná sa o veľmi kvalitný virtualizačný nástroj pre windows aj linux.
Vznikla česká webová stránka venovaná distribúcii EndeavourOS s podporou Arch-Linux.cz. Táto distribúcia je založená na Arch linuxe. Inštalácia je založená na Calamares.
Zdroj: EndeavourOS.cz
V rámci updatov k 1.6.2024 bol vydaný respin MX linuxu pre single board počítač Orange Pi.
Zdroj: Mxlinux org
Vyšla nová verzia rolling-update distribúcie Manjaro, ktorá spája silu Arch Linuxu s jednoduchosťou user-friendly distribúcii. Okrem najnovšieho jadra je k dispozícii pre priaznivcov KDE aj najnovšie rozhranie Plasma 6. Manjaro vychádza vo verziách s KDE, GNOME a XFCE.
Zdroj: Distrowatch
Bola vydaná verzia 0.10 textového editoru neovim. Nová verzia obsahuje množstvo vylepšení LSP protokolu, zvýrazňovania syntaxe pomocou Tree-sitteru a ďalších menších zmien. Kompletný zoznam noviniek je dostupný v oznámení o vydaní.
Zdroj: neovim.io
Retro distribúcia arix prináša prostredie kde 1.1.2 na Debian 13 (trixie).
Zdroj: ariasft.github.io
V Greenie knižnici bola vydaná prvá kniha, ktorá je vytvorená z väčšiny umelou inteligenciou. Pokrýva udalosti Druhej svetovej vojny, vrátane rôznych doplnkových tém. Kniha je v angličtine.
Zdroj: Blog na Denníku N
Ak sa vám táto stránka páči, môžete nás podporiť tak, že si na vaše stránky umiestnite tento banner.
Náš Twitter tag je #LinuxOSsk
Namiesto:
online=1
resp.online=0
budeš mať:
online=nejaky_cas
Pri každom zobrazení stránky, si pre daného užívateľa do tohto poľa zapíšeš aktuálny čas.
Potom pri zobrazovaní počtu online užívateľov zobrazíš všetkých, u ktorých je rozdiel aktuálneho času a času ich poslednej požiadavky menej ako povedzme spomínaných 5 minút. T.j. za posledných 5 minút niečo klikli na stránke, takže sú online.
v php je na to funkcia time() alebo mktime()
v mysql na to mas UNIX_TIMESTAMP()
mozes to urobit napriklad tak ze ku uzivatelovi co je na stranke prihalseny tak vzdy pri requeste resp reloade stranky sa zapise do DB k jeho riadku v tabulke ze UNIX_TIMESTAMP() + 5*60 // ak chces na 5 minut ak iny pocit vymen cislo 5 za nieco ine :)
a na zistenie ci je niekto online pouzijes len to ze vypises riadky kde je hodnota vacsia alebo rovna UNIX_TIMESTAMP()
that's all
Dajme tomu takato tabulka uzivatelov:
create table uzivatel (i_uzivatel integer auto_increment, v_uzivatel varchar(20), v_cookie varchar(32), d_posledny datetime, primary key(i_uzivatel));
Vkladanie do nej:
insert into uzivatel values (0, "janko", md5(now()), now());
insert into uzivatel values (0, "marienka", md5(now()), now());
insert into uzivatel values (0, "ferko", md5(now()), now());
To md5(now()) je akoze cookie, normalne pri prihlaseni spravis v php:
$cookie = md5(microtime());
set_cookie('cookie',$cookie);
mysql_query("insert into uzivatel values (0,'$user','$cookie',now())");
$id = mysql_insert_id($q);
echo "novy user ma id=$id";
Vyber z tabulky:
$q = mysql_query('select * from uzivatel');
while ($d = mysql_fetch_array($q)) {
echo $d['i_uzivatel'];
echo $d['v_uzivatel'];
...
}
Ked sa prihlasi a pozera si stranky, zistis cookie v $_REQUEST['cookie'] a v databaze zistis ktory user je prihlaseny a tomu updatnes ten datum:
$cookie = $_REQUEST['cookie'];
mysql_query("update uzivatel set d_posledny=now() where v_cookie=$cookie");
Nakoniec ked ostatnym chces zobrazit ci je dany user (janko) pripojeny tak:
$q = mysql_query("select now()-d_posledny from uzivatel where v_uzivatel='janko'");
$d = mysql_fetch_row($q);
if ($d[0]>=600)
echo "janko je odhlaseny";
else
echo "janko je online";
Toto je proof of concept, ani som to neskusal, ani neosetroval na sql injection a podobne srandy.
Pozri google: zaciname s php a mysql