Autor Zpráva
PHP_koule
Profil *
Ahoj, chtěl jsem se zeptat, zda existuje nějaká fuknce, která mi vyvolá nějakou jinou funkci v nepřítomnosti jiného uživoatele.
Tzn. nastavím si datum odesílání mailů 14.7.2021 12:00 a budu chtít, aby se funkce vyvolala bez něčí přítomnosti. Tohle se zjišťuje špatně :-).
Moc dík za info.
LaMMa
Profil
Čo si predstavuješ pod pojmom nepřítomnosti jiného uživatele?
Keeehi
Profil
Hledej "cron"
PHP_koule
Profil *
Dík Keeehi. Zajímavé, že se o tom tady tolik nepíše.
Keeehi
Profil
PHP_koule:
Většinou totiž není potřeba. Na odesílání mailů v zadaný čas se však hodí.
PHP_koule
Profil *
Jinak, když napíšu do google "cron php", tak ani na webu toho tak moc není.
Keeehi
Profil
PHP_koule:
Protože cron a php nemají spolu nic společné. Cron je program, který na linuxu běží na pozadí a v určitý čas spustí nějaký program. Na windows se tomu říká naplánované úlohy. Do googlu stačí tedy zadat "cron", případně "linux cron"
nemeja
Profil
Tak teoreticky bys mohl vytvořit i svuj "cron" pomocí set_time_limit(), ignore_user_abort() a pak třeba sleep(), aby jsi mohl dělat periodičnost :)
Darker
Profil
Já jsem svého crona nedávno začal dělat na základě tohoto: Pokračování skriptu po ukončení spojení. Zatím mi ale pořád chcípá a nerozumí složitější syntaxi příkazů.
PHP_koule
Profil *
Takže ona existuje funkce, která se vyvolá, když úplně opustíte stránku?
nemeja
Profil
PHP_koule:
Ne ty to zavoláš a tím, že nastavíš set_time_limit(0) tak script sám od sebe nikdy neskončí a pomocí ignore_user_abort nastavíš, že i když zabřeš tab, tak script se neuzavře. Pomocí sleep si ten script uspíš na tak dlouho, dokud se nemá spustit další příkaz
PHP_koule
Profil *
nemeja: Já nyní jsem myslel získání offline nebo online stavu uživatele :-)
Keeehi
Profil
PHP_koule:
Tak to jedině v javascriptu. onbeforeunload
nemeja
Profil
tak to asi neexistuje, ale můžeš si ukládat do DB čas při akci uživatele a porovnávat to s aktuálním časem, pokud bude rozdíl víc jak 10 minut, tak ho prohlásíš za offline. Při čtení delšich článků můžeš aktualizovat čas v DB AJAXem
Keeehi:
Jenže co to dělá, pokud natvrdo zavřeš prohlížeč? Nebo pokud zavřeš tab?
Keeehi
Profil
nemeja:
Jenže co to dělá, pokud natvrdo zavřeš prohlížeč? Nebo pokud zavřeš tab?
Tak si to vyzkoušej, ta událost se provede (alespoň co jsem zkoušel IE9 a nejnovější chrome). Problém je však jinde a to, pokud je javascript vypnutý, nebo pokud to prostě prohlížeč nepodporuje. Ano, není to stoprocentní, ale to už je dáno samo tím, že je to javascript. S tím se už musí dopředu počítat.
Darker
Profil
Keeehi:
Tak si to vyzkoušej, ta událost se provede
Mě to hodně zlobilo. Zejména když jsem se právě snažil něco ukládat při opouštění stránky.
Keeehi
Profil
Darker:
Ono zrovna vytváření požadavků není úplně nejrychlejší. Z vlastní zkušenosti vím, že po zavolání send() na XMLHttpRequest musí ještě stránka chvíli běžet a pak se teprva může třeba přesměrovat. Takže se musí dokončení eventu beforeunload prostě pozdržet.
PHP_koule
Profil *
Já jsem online a offline stavy vyřešil updatem při aktivitě (načtení stránky) kliena.
Darker
Profil
PHP_koule:
Já jsem online a offline stavy vyřešil updatem při aktivitě (načtení stránky) kliena.
To je ideální.

Keeehi:
Ono zrovna vytváření požadavků není úplně nejrychlejší.
Vím, byla to spíš připomínka pro PHP_koule, kdyby se snažil nějak takhle zjistit, zda uživatel už na webu není.

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: