Nechci se Vám montovat do výměny názorů, jen zde napíšu svoje zkušenosti 
Když jsme programovali diskuzní fóra, každé vlákno mělo mimo nadpisu i ID (když se kouknete nahoru do adresního řádku, vidíte taky topic_id), které se generovalo z datumu a času, resp. čas v milisekundách z php funkce time() (tady to funguje očividně jinak) a časovou značku posledního příspěvku.
Po zaregistrování uživatele měl v databázi mimo kolonky jména atd i buňku pro uchovávání přečtenosti / nepřečtenosti vláken. Teda spíš tam byl seznam vláken, která přečetl (jejich ID) a jejich čas poslední změny (příspěvku). Jelikož předem nebylo jasný, kolik jich přečte, neměl údaj předem danou velikost; ID a časy byly odděleny speciálním znakem (středníkem a svislou čárkou), nové údaje se ukládaly na konec řetězce.
Důvody byly 2: 1. Se předpokládalo, že každej uživatel nepřečte všechna vlákna, takže míň místa zabíral seznam toho, co nepřečetl, než co přečetl a 2. pokud by někdo založil nové vlákno, musel by se u VŠECH zaregistrovaných uživatelů zaktualizovat seznam toho, co nepřečetli, takže by to zabralo příliš strojovýho času.
Takže když se člověk pohyboval po fóru, tak všechny diskuze, které měly časové značky novější, než ty, co měl uživatel uložené u sebe (pokud je u sebe měl a na dané vlákno vůbe cněkdy koukal), byly označeny jako nepřečtené.
Problém nastal, pokud se admin rozhodl nějaké příspěvky smazat. Potom mělo fórum status jako nepřečtené, protože "poslední" příspěvek tam vlastně nebyl, ale v databázi zůstal uložen čas poslední změny (tzn. vložení příspěvku). Proto nešel zobrazit a dokud někdo nepřidal něco dalšího, tak to zůstalo jako nepřečtené. Vyřešilo se to tim, že příspěvek zůstal a mazal se jen obsah, resp. se nahradil textem Příspěvek byl administrátorem vymazán... nebo něco takovýho.
Pro pohyb mezi stránkami fóra se používalo GET s parametry v url, SESSION se používalo pro přenos uživatelských dat a listováním mezi stránkama v jednotlivých vláknech. Session má defaultně platnost 1440s, měnit ho je sraním si do vlastního hnízda, protože při aktualizaci SW se na to může zapomenout a akorát se něco posere.
Chci tim říct, že cookies (jako ukládání dat) jsem NIKDY na fórech nepoužíval. Všechny operace s ukládáním toho, co se přečetlo a nepřečetlo se dělo na konkrétních stránkách obsahu jednotlivých vláken v hlavičce skriptu a tudíž nemělo vliv (tenkrát anonymní prohlížeče nebyli, ale jsem si 100% jist), jestli tam uživatel přistupoval v nějakym anonymnim módu, z mobilu, tabletu...
Ale jak píše N3PI, fórum to od přírody není, možná to tu funguje jinak.
sizequeen: Myslel jsem, že maximum je 4KB v maximálně 50 souborech... (edited)

Když jsme programovali diskuzní fóra, každé vlákno mělo mimo nadpisu i ID (když se kouknete nahoru do adresního řádku, vidíte taky topic_id), které se generovalo z datumu a času, resp. čas v milisekundách z php funkce time() (tady to funguje očividně jinak) a časovou značku posledního příspěvku.
Po zaregistrování uživatele měl v databázi mimo kolonky jména atd i buňku pro uchovávání přečtenosti / nepřečtenosti vláken. Teda spíš tam byl seznam vláken, která přečetl (jejich ID) a jejich čas poslední změny (příspěvku). Jelikož předem nebylo jasný, kolik jich přečte, neměl údaj předem danou velikost; ID a časy byly odděleny speciálním znakem (středníkem a svislou čárkou), nové údaje se ukládaly na konec řetězce.
Důvody byly 2: 1. Se předpokládalo, že každej uživatel nepřečte všechna vlákna, takže míň místa zabíral seznam toho, co nepřečetl, než co přečetl a 2. pokud by někdo založil nové vlákno, musel by se u VŠECH zaregistrovaných uživatelů zaktualizovat seznam toho, co nepřečetli, takže by to zabralo příliš strojovýho času.
Takže když se člověk pohyboval po fóru, tak všechny diskuze, které měly časové značky novější, než ty, co měl uživatel uložené u sebe (pokud je u sebe měl a na dané vlákno vůbe cněkdy koukal), byly označeny jako nepřečtené.
Problém nastal, pokud se admin rozhodl nějaké příspěvky smazat. Potom mělo fórum status jako nepřečtené, protože "poslední" příspěvek tam vlastně nebyl, ale v databázi zůstal uložen čas poslední změny (tzn. vložení příspěvku). Proto nešel zobrazit a dokud někdo nepřidal něco dalšího, tak to zůstalo jako nepřečtené. Vyřešilo se to tim, že příspěvek zůstal a mazal se jen obsah, resp. se nahradil textem Příspěvek byl administrátorem vymazán... nebo něco takovýho.
Pro pohyb mezi stránkami fóra se používalo GET s parametry v url, SESSION se používalo pro přenos uživatelských dat a listováním mezi stránkama v jednotlivých vláknech. Session má defaultně platnost 1440s, měnit ho je sraním si do vlastního hnízda, protože při aktualizaci SW se na to může zapomenout a akorát se něco posere.
Chci tim říct, že cookies (jako ukládání dat) jsem NIKDY na fórech nepoužíval. Všechny operace s ukládáním toho, co se přečetlo a nepřečetlo se dělo na konkrétních stránkách obsahu jednotlivých vláken v hlavičce skriptu a tudíž nemělo vliv (tenkrát anonymní prohlížeče nebyli, ale jsem si 100% jist), jestli tam uživatel přistupoval v nějakym anonymnim módu, z mobilu, tabletu...
Ale jak píše N3PI, fórum to od přírody není, možná to tu funguje jinak.
sizequeen: Myslel jsem, že maximum je 4KB v maximálně 50 souborech... (edited)
No konecne neco fundovaneho :)
Zasadni vec, je ta, kterou jsem zminil a ty na ni narazis na konci.
Tohle to tady neni forum v pravem slova smyslu. A od toho se to vse odviji.
Jednoduchym testem clovek zjisti, ze seznam/zapis prectenych vlaken a prispevku neni ulozen na serveru, ale v koncovem zarizeni. Staci vyuzit dve zarizeni.
Pokud by to bylo vazano na ID, tak je zcela jedno na cem to clovek cte, vzdy by to bylo prectene na vsech koncovych zarizenich. Tady tomu tak ale neni (narozdil od schlednutych galerii/videi, ktere se oznacuji). (edited)
Zasadni vec, je ta, kterou jsem zminil a ty na ni narazis na konci.
Tohle to tady neni forum v pravem slova smyslu. A od toho se to vse odviji.
Jednoduchym testem clovek zjisti, ze seznam/zapis prectenych vlaken a prispevku neni ulozen na serveru, ale v koncovem zarizeni. Staci vyuzit dve zarizeni.
Pokud by to bylo vazano na ID, tak je zcela jedno na cem to clovek cte, vzdy by to bylo prectene na vsech koncovych zarizenich. Tady tomu tak ale neni (narozdil od schlednutych galerii/videi, ktere se oznacuji). (edited)
Máš teda pocit, že se údaje, které jsem zmiňoval, ukládají do session a zapíšou se na server až po kliknutí na Odhlásit?
Jestli je tomu tak, tak důvod může být ten, že databáze uživatelů může být otevřena pro zápis jen chvilku, nikoliv po každym pohybu mezi vlákny. Snižuje to vytíženost. Ale v dnešní době...
Jestli je tomu tak, tak důvod může být ten, že databáze uživatelů může být otevřena pro zápis jen chvilku, nikoliv po každym pohybu mezi vlákny. Snižuje to vytíženost. Ale v dnešní době...
Tak mi vysvětli, proč by se měl přenášet v každém HTTP-requestu seznam identifikátorů posledních přečtených příspěvků z každého fóra, které jsi kdy navštívil? Zrovna ve tvém případě by takový seznam rychle vyčerpal kapacitu cookies, která je 300 * 4 KB. To je přenost 1.2 MB při každém requestu! To by jistě ocenil každý uživatel. Neříkám, že neexistuje jiné řešení. Jen tvrdím, že zrovna Cookies není správné řešení. A to, že ho navrhuješ a obhajuješ, jen ukazuje, že o tom víš úplný hovno! Příště udělej všem tu laskavost a pokud nemáš konstruktivní poznámku (jako tady Lewis_), prostě se nevyjadřuj.
Funkce "přečtené" v fóru
Funkce "přečtené" v fóru