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

likes and dislikes enabled/disabled

[es] :: PHP :: likes and dislikes enabled/disabled

[ Pregleda: 1587 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.69.*



+6 Profil

icon likes and dislikes enabled/disabled17.03.2012. u 21:12 - pre 147 meseci
E ovako, iz baze vucem slike i broj lajkova i dislajkova za sliku.
Korisnik moze da lajkuje ili dislajkuje ali samo jednom.
Ako lajkuje onda su oba linka disabled (i like i dislike) i isto tako kada klikne na dislike.
Ono sto mene muci, tj. za sta nemam ideju jeste kako ga ograniciti da samo jednom moze da klikne na like ili dislike.

baza izgelda ovako:

slike:
id, title, url

i tabela likes
id_slike, svidja(int), nesvidja(int)

kada klikne na like ili dislike ja setujem +1 svidja ili ne svdija

kako da uradim, jos jedna tabela koja ce imati id user-a i id slike.
nije mi jasno kako proveriti da li je user lajkovao ili dislajkovao neku sliku.
najbolji primer za ovo je http://www.blic.rs/Vesti/Drust...orne-kampanje/komentari#ostali
plus/minus za svaki komentar.

 
Odgovor na temu

PHPovac

Član broj: 300013
Poruke: 168
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: likes and dislikes enabled/disabled17.03.2012. u 21:18 - pre 147 meseci
napraviš tabelu
lajkovali
polja
id, slika_id, korisnik_id, datum
i kad klikne na dugme
upišeš osim like + 1 ili šta već
id lsike, id korisnika i datum (opciono)
i posle
mysql_query(select * from lajkovali where slika_id = $slika_id and korinsik_id = $korisnik_id);
if(mysql_num_rows(...)==0) {
prikazi lajkove
} else {
disejbluj
}
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.12.34.95.customer.cdi.no.

Sajt: norway.dakipro.com


+190 Profil

icon Re: likes and dislikes enabled/disabled17.03.2012. u 21:21 - pre 147 meseci
moras negde da belezis pojedinacne korisnike (kombinacijom IP adrese i cookie-a) i ID slike sa kojom je imao interakciju
mislim. Primer kojis i naveo na blicu je najprostiji moguci, samo setujes korisniku cookie sa IDjem slike, sto mozes lako da vidis tako sto pratis cookie koje je sajt setovao u browseru, ili jednostavno obrises cookie i onda mozes opet da glasas kao da se nista nije desilo. Ako ti treba nesto malo bolje od blica onda prati cookie ali i IP dokle god je to pouzdano (nije ni ip nesto pouzdan, al cookie moze da se obrise, a sumnjam da ce neko da se cima da menja IP samo da bi glasao na sliku). Mada ako cenis da nece korisnici brisati ni cookie onda ne moras komplikovanije
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: likes and dislikes enabled/disabled17.03.2012. u 21:28 - pre 147 meseci
Mislim da je najbolje proveriti na osnovu email adrese. Pretpostavljam da korisnicima tražiš email adresu.. Ip kao što napisa čovek, nije pouzdana stvar. Jel' x_forwarded_for ili je nešto treće.. to je gatanje u pasulj, maltene. Najpreciznija i najverodostojnija kombinacija provere dal' je to taj ili ne, jeste username i email adresa. Nekako vežeš tabelu likes sa emailom i korisničkim imenom i dodaš još jedno polje, recimo... username ali kroz strrev() ili str_shuffle() da bude treći unique zapis pored već jednog u.name i drugog email-a. Naći ćeš već načina kako to da izvedeš. I onda se ne oslanjaš na cookies ili sessions.. već na zapis u samoj bazi.. text fajlu.. whatever.
about:networking
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.69.*



+6 Profil

icon Re: likes and dislikes enabled/disabled17.03.2012. u 21:29 - pre 147 meseci
Citat:
PHPovac: napraviš tabelu
lajkovali
polja
id, slika_id, korisnik_id, datum
i kad klikne na dugme
upišeš osim like + 1 ili šta već
id lsike, id korisnika i datum (opciono)
i posle
mysql_query(select * from lajkovali where slika_id = $slika_id and korinsik_id = $korisnik_id);
if(mysql_num_rows(...)==0) {
prikazi lajkove
} else {
disejbluj
}

ma ok je to. ali vidi, imam 20 slika po strani, to je 20 upita po strani plus jedan gde vuce sve slike.
koliko je efikasno?

Citat:
dakipro: moras negde da belezis pojedinacne korisnike (kombinacijom IP adrese i cookie-a) i ID slike sa kojom je imao interakciju
mislim. Primer kojis i naveo na blicu je najprostiji moguci, samo setujes korisniku cookie sa IDjem slike, sto mozes lako da vidis tako sto pratis cookie koje je sajt setovao u browseru, ili jednostavno obrises cookie i onda mozes opet da glasas kao da se nista nije desilo. Ako ti treba nesto malo bolje od blica onda prati cookie ali i IP dokle god je to pouzdano (nije ni ip nesto pouzdan, al cookie moze da se obrise, a sumnjam da ce neko da se cima da menja IP samo da bi glasao na sliku). Mada ako cenis da nece korisnici brisati ni cookie onda ne moras komplikovanije


ok, ja smestam id slike i id usera-u u cookie.
cookie mi je array ili kako?
jel moze example?
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
77.243.16.*



+303 Profil

icon Re: likes and dislikes enabled/disabled17.03.2012. u 22:09 - pre 147 meseci
Citat:
peca89bg:ma ok je to. ali vidi, imam 20 slika po strani, to je 20 upita po strani plus jedan gde vuce sve slike.
koliko je efikasno?

Ako imas registraciju i glasanje samo za registrovane clanove, ovo ti je najbolje resenje.
Ako neces da opterecujes bazu, prilikom prvog logovanja ubacis sve u sesiju, i radis update te sesije prilikom lajka/dislajka. A to da li moze da lajkuje ili ne, kontrolises iz sesije...

A za glasanje za neregistrovane korisnike, ja ne bih mnogo komplikovao i uradio bih proveru samo preko kukija. Ubacis samo id slike, ne treba ti id usera. Realno, nikako se ne mozes 100% zastiti bez registracije, tako da je neka komplikovanija provera bzvz trosenje resursa.
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.69.*



+6 Profil

icon Re: likes and dislikes enabled/disabled17.03.2012. u 22:17 - pre 147 meseci
hvala na odgovorima..
recite mi za cookie.
kako da ga setujem
setcookie($id_slike, $id_slike);
ili da radim npr.ovako:
$likes = array();
i sad ako je lajkovano stavim
$likes[] = $id_slike;
setcookie("likes", $likes);

i posle da prolazim kroz ceo niz da pitam da li se id_slike nalazi u cookie?
ili jednostvano da pitam da li je setovan npr $_COOKIE[$id_slike] ? //ako radim ovako, to znaci da cu za recimo 40 slika koje je user lakovao ili dislajkovao da imam i 40 cookie-a? koliko je ovo dobro?
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: likes and dislikes enabled/disabled17.03.2012. u 22:19 - pre 147 meseci
Citat:
Realno, nikako se ne mozes 100% zastiti bez registracije


Upravo tako. Baš kao što je i ovde na ES-u slučaj. Like i dislike se ne vide ako si gost.
Oćeš da lajkuješ? Login first.


@peca89bg

Za cookie ti treba još minimum jedan parametar. "Expires"
Mada i ne mora...

Što se ostalih parametara tiče, → http://php.net/manual/en/function.setcookie.php

Sve je objašnjeno kako treba.

Pročitaj i user contributed notes povodom toga.
about:networking
 
Odgovor na temu

[es] :: PHP :: likes and dislikes enabled/disabled

[ Pregleda: 1587 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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