| Autor | Zpráva | ||
|---|---|---|---|
| Tori Profil |
#1 · Zasláno: 22. 8. 2011, 08:47:46
Pěkný den.
Mějme fórum, kam se přihlašují uživatelé. Stav přihlášení a ID uživ. se ukládá do session, na každé stránce se z DB tahají další info o uživateli: čas poslední aktivity (timestamp), oprávnění (int), ban ano/ne. Uživatelů je v databázi pár stovek, počet banovaných IP neznám. Problém je: Jak ušetřit ten jeden dotaz do DB (např.načíst data do session už při přihlášení), a přitom aby byla aplikace schopná hned zjistit, že uživatel zrovna dostal ban (nick a/nebo IP)? Jak byste to řešili? Zatím mě napadly 2 možnosti: * info u uživateli se uloží do session a jednou za x minut se aktualizuje podle databáze. * pole blokovaných uživatelů/IP se bude cachovat do souboru, číst pouze odtamtud, a zabanování nicku aktualizuje data v cache. |
||
| Joker Profil |
#2 · Zasláno: 22. 8. 2011, 09:48:23
Tori:
„Jak byste to řešili?“ Při banu by uživatel byl zároveň automaticky odhlášen. |
||
| Tori Profil |
#3 · Zasláno: 22. 8. 2011, 09:59:06
Joker:
No ano, odhlášen samozřejmě bude, ale jak ten skript zjistí, že dostal ban? Buď musí ověřovat bany nicku/IP, anebo platnost současného SID - a jak seznam banů tak seznam platných přihlášení se musí někde ukládat. Šlo mi o to, jestli ho můžu ukládat jinde než v DB, a jestli by ten jiný způsob byl vhodnější. |
||
| Joker Profil |
#4 · Zasláno: 22. 8. 2011, 10:15:34
Tori:
Aha, takže ani relace se neověřuje proti databázi. Já bych to četl z databáze a souborovou cache nebo takové věci řešil až kdyby se zjistilo, že to je moc pomalé. Mimochodem, úplně stejný problém jako s tím banem předpokládám bude se změnou oprávnění. |
||
| Tori Profil |
#5 · Zasláno: 22. 8. 2011, 10:53:49
Joker:
Ok, nechám to na databázi. Děkuju. Změny oprávnění jsem ani neřešila, ty se na tom fóru dějí asi stejně často jako tady. :) |
||
|
Časová prodleva: 2 roky
|
|||