Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako spreciti neregistrovanog korisnika da ocenjuje vise puta istu sliku

[es] :: PHP :: Kako spreciti neregistrovanog korisnika da ocenjuje vise puta istu sliku

[ Pregleda: 2108 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kelja

Član broj: 70429
Poruke: 1416
79.101.167.*



+35 Profil

icon Kako spreciti neregistrovanog korisnika da ocenjuje vise puta istu sliku04.05.2008. u 11:26 - pre 194 meseci
Radi se o manje-vise klasicnom hotornot klonu, bez registracije i logina, a sa mogucnoscu komentarisanja slika.
Opredelio sam se za kukije, znam da nije savrseno, ali ni druge solucije nisu bez mana.
E sad, imam ideju kako to konkretno izvesti, ali bih hteo da priupitam iskusne skriptere&programere da li je ovo dobar nacin, pre svega zbog brzine izvrsavanja samog skripta.
Ukoliko dodje do 10000 + slika i isto toliko, ili i vise korisnika(zapravo onih koji ocenjuju slike), malko se brinem za performanse aplikacijice).

Napravio sam tabelu 'user' u koju bi trebalo da se smestaju jedinstveni korisnikov id i id slika za koje je glasao:
Code:

if($rating){

if(!isset($_COOKIE[tracking])){
$uid=md5(time());
setcookie("tracking","$uid", time()+(60*60*24*3000));
insert("user","VALUES('','$uid','$_SESSION[current]')",""); // id slike za koju se glasa
}
else {
$rated_str=",|$_SESSION[current]";
select("rated","user","WHERE uid='$_COOKIE[tracking]'");
if(mysql_num_rows($result)==0){
echo "Nope:)";
}
$rated_images=explode(",",$rows[0]);
if(in_array($_SESSION[current],$rated_images)){
die ("<script>alert('You\'ve already rate this image!');</script><META http-equiv='refresh' content= '0;URL=index.php'>");
}
update("user","rated=CONCAT(rated,',$_SESSION[current]')","WHERE uid='".$_COOKIE[tracking]."'");

}

}


Da li da je ovo uopste dobar pristup? Sta biste vi uradili?
Pozdrav i hvala unapred!
 
Odgovor na temu

Milan M. Radovic
Web Developer
Pančevo

Član broj: 16959
Poruke: 743
79.101.216.*



+25 Profil

icon Re: Kako spreciti neregistrovanog korisnika da ocenjuje vise puta istu sliku05.06.2008. u 01:31 - pre 193 meseci
Bolu me oci pa ne mogu sad da citam sta si napisao,ali ....
sto ne stavis ime slike ne kao value neko kao varijablu na cookie ... like :
Code:
setcookie($id_slike,"",time()+$neko_veliko vreme);


Milsim,resenje jeste u Cookie-ima ,e sad ovako ces ga mozda natrpati cookie-ima za svaku sliku,ali posle nekog vreman ce cookie nestati..expire.

Kasnije vidis sa
Code:
if(isset($_COOKIE['$id_slike'])){ ... }
pa vidis da li ces dopustiti unosenje u bazu il' ne..
I don't need a girl for sex , All I Need is Binary and HEX
 
Odgovor na temu

ColdKeyboard
Sasa Karanovic
Hardware and Firmware Engineer
Toronto, Canada

Član broj: 31924
Poruke: 868
*.teol.net.

Jabber: ColdKeyboard
Sajt: www.SasaKaranovic.com


+11 Profil

icon Re: Kako spreciti neregistrovanog korisnika da ocenjuje vise puta istu sliku05.06.2008. u 22:08 - pre 193 meseci
Mozes da uradis kao sto ti je Milan predlozio sa cookies ali ako je nesto vazno ili zelis barem da to bude zasticeno kako treba
mislim da bi trebao da odradis nesto ozbiljnije jer cookies su client side tako da korisnik moze sa njima da manipulise lako, npr. izbrise cookie
i glasa opet.

Mislim da je mnogo bolje da uradis server side protekciju tako sto bi napravio jednu tabelu u SQL bazi koja bi sadrzala recimo 3 polja,
ko je glasao, kada, i za koju sliku.

Ko je glasao je mozda najbolje da napravis da bude md5() od korisnikovih podataka ($_SERVER['HTTP_USER_AGENT'];) i recimo drugi dio da bude $_SERVER['REMOTE_ADDR'];


Naravno ovo bi mozda iskljucilo nekoliko ljudi koji imaju istu IP adresu ali mozda i ne bi ako im se browseri razlikuju ili verzije OS-a...


Ovo je samo ideja, nemam vremena trenutno da pisem kod, to ces morati sam :)

Srecno
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
79.101.207.*



+35 Profil

icon Re: Kako spreciti neregistrovanog korisnika da ocenjuje vise puta istu sliku06.06.2008. u 01:11 - pre 193 meseci
Citat:

Mislim da je mnogo bolje da uradis server side protekciju tako sto bi napravio jednu tabelu u SQL bazi koja bi sadrzala recimo 3 polja,
ko je glasao, kada, i za koju sliku.

Ko je glasao je mozda najbolje da napravis da bude md5() od korisnikovih podataka ($_SERVER['HTTP_USER_AGENT'];) i recimo drugi dio da bude $_SERVER['REMOTE_ADDR'];


Hvala obojici na predlozima, nesto slicno ovom drugom sam i uradio(vec davno sam ovo zavrsio), a onda je klijent zamolio da sklonim taj deo koda, i time me spasao teskih muka!

Znam da su kukiji nepouzdani, kao i sesije, i da je prakticno nemoguce proveriti identitet neregistrovanog korisnika.

Ono sto je bio (i ostao) problem jesu performanse aplikacijice, ako zagusti, odnosno ako se broj slika/korisnika (glasaca, kako vec da ih nazovem) poveca toliko da ta tabela u koju se smestaju podaci dobije veeeeeeliki broj redova.

Dobio sam i od mog web gurua, a i na nekim drugim php forumima slicne predloge/resenja, uz opasku da ce to trpanje u bazu fercerati neko vreme. :)

Milane, tvoje resenje bi podrazumevalo kreiranje kukija za svaku sliku za koju se glasa?

Tu postoje valjda neki limiti(20 po domenu?).

Imao sam i predlog funkcije koja bi sve id-ove slika stavila u jedan cookie, sto je ok, ali sam onda odustao od kukija...

 
Odgovor na temu

[es] :: PHP :: Kako spreciti neregistrovanog korisnika da ocenjuje vise puta istu sliku

[ Pregleda: 2108 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.