[ spezia @ 13.11.2009. 08:49 ] @
Pravim anketu,pa bih zeleo da stavim upit u bazu da neko ne moze 24 casa da odgovara na istu...
Koje resenje se tu praktikuje...
Da li je najbolje koristiti funkciju to_days, pa ako je 1 da obrise iz baze ???
Na foru
" DELETE FROM poll_user WHERE to_days(now()-to_days(poll_time)>0 "
U poll_user bi se upisao trenutno vreme upisa,i IP adresa korisnika pomocu koje bi se proveravalo da li je korisnik glasao.
Ili ima jos neko jednostavnije i bolje resenje?
[ Milos911 @ 13.11.2009. 10:27 ] @
Ako registrovani korisnici glasaju bolje ti je da upises id korisnika(ako nista drugo bar je kraci od ip adrese), a ako glasaju obicni onda bi bilo dobro da mu ubacis i kolacic... A sto se tice 24h ogranicenja ne znam da li ti je lakse da prilikom registracije upises vrednost time() pa onda kad neko pokusa da glasa uradis ovo:
Code:

$db_time = odgovarajuci query;
if (time()-$db_time<86400)
   {ne mozes da glasas}
else
   {glasaj slobodno};
[ spezia @ 13.11.2009. 10:32 ] @
Mislio sam bez kolacica...
Pri glasanju upisujem (hvatam) IP u bazu , ako je registrovan (username) ako nije anonimus...
Zatim if petlja pri ponovnom glasanju, gde hvatam ponovi IP adresu i ispitujem da li je ima u bazi. Ako je ima, izbacujem poruku da je vec jednom glasao, a ako nema glasa.. Posle jednog dana brise taj red sa IP adresom iz baze da moze ponovo da glasa
[ agvozden @ 13.11.2009. 12:06 ] @
Na ovu temu postoji vec prilicno tema.

Pogledaj u forumu za php.

U principu, zakljucak se svodi na to da nije dobro ogranicavati po IP adresi, zato sto imas prilicno korisnika koji koriste jednu adresu. Delimicno bi ovo moglo da se resi sa onima koji su iza proxy-ja pa mozes da izvuces i tu adresu, medjutim u slucaju NAT-a nema pomoci.
Dakle, preporuka je da se koriste kolacici, ma koliko oni nisu sigurni (svako ih moze obrisati).
Postoji i mogucnost client-side aplikacije (java, activex), ali bi to bilo smorno koristiti.
[ Shinhan @ 16.11.2009. 07:58 ] @
Mi koristimo IP na ~6 sati. Pretpostavljamo da korisnici obično ne menjaju IP adrese baš toliko često (sve više ljudi koristi ADSL kod kog nema smisla prekidati konekciju). Naravno, snimamo i cookie.
Ako neko ima snimljen cookie, nema glasanja nikad.
Ako neko nema cookie a isti IP je glasao pre manje od 6 sati, nema glasanja.
Ako nema cookie, a nema taj IP u bazi ili je prošlo više od 6 sati od zadnjeg glasanja sa tog IP, može glasanje.

Samo, ne razumem zašto bi brisao glas ako je prošlo 24 sata. Ako je prošlo tako puno vremena vrlo je moguće da je to posebna osoba...

Naravno, ništa od ovog neće biti dovoljno ako praviš nagradnu igru jer će neki korisnici koristiti besplatne proxije (blokiraj sve IP van Srbije da ih sprečiš), često rekonektovanje (ove možeš uhvatiti jedino pažljivim praćenjem logova), lažiranje IP adrese (smisli neki challenge-response sistem) i mnoge druge fazone.
[ bantu @ 16.11.2009. 09:51 ] @
Zanči li to da nema glasanja sa mobilnih telefona, jer ukoliko izlaziš na net preko GPRS-a svi korisnici imaju istu ili nekoliko istih IP adresa?