Smím se zeptat, proč nemůžete použít databázi? Bez ní tohle budete řešit těžko. Zapisovat počet bodů do souboru není příliš vhodný nápad, co když dva lidé budou hlasovat najednou (ono to sice není moc pravděpodobné, ale zákon schválnosti fakt funguje, osobně to mám vyzkoušené, i na webu s malou návštěvností, natož pak s velkou). Většinou se to dělá tak, že v DB uděláte tabulku a do ní cpete, kdo kdy dal kolik bodů které fotce. Zaznamenáte si IP adresu hlasujícího a pokud chce hlasovat znovu, už to nepovolíte. Tady je problém, že víc lidí může mít stejnou IP, ale není jak to poznat. Můžete třeba informaci o tom, že uživatel hlasoval, uložit do cookies, ale ty může mít uživatel vypnuté a není problém je vymazat a hlasovat znovu. Jediný spolehlivý způsob je tedy zapisovat si IP adresy těch, kteří hlasovali. A rozhodně použijte databázi, ukládat to do souboru je použitelné při webu, na který poleze 5 lidí. Při víc lidech to strašně zatěžuje filesystém serveru. Bez databáze mě napadá jedině mít v aplikaci proměnnou, do které budete hlasy ukládat, a která bude společná v rámci celé aplikace (to jde udělat, stačí proměnnou nadeklarovat jako Shared ve VB.NET, resp. static v C#) a podobně mít i seznam IP adres, které hlasovaly. Jednou za čas se to ale musí uložit do souboru, aplikace se totiž může kdykoliv zrestartovat, ať už z důvodu restartu serveru, výpadku proudu, anebo prostě něco spadne. Můžete tím několik posledních hlasování ztratit. Nejlepší je prostě databáze, existuje jen velmi málo důvodů, kvůli kterým ji nepoužít.
|