[ Ivan Miladinović @ 03.07.2005. 12:39 ] @
Imam na jednom sajtu neko glasanje za neke slicice, ali mogu ljudi da glasaju koliko ko hoće, ali mi to nije poenta. Šta da dodam u kod moje skripte da bi zabranio da neko glasa dva puta. Npr. da glasa jednom, a kada hoće drugi put, da mu se ispiše da je već glasao ili šta god.

Pretražio sam ES nisam našao to što mi treba, ako neko zna neku temu, neka me uputi na istu. A ukoliko neko zna ključne reči za pretragu, neka ih napiše googlaću (kako čudna reč) ako treba... A treba... :-)

Unapred zahvalan, Ivan.
[ flylord @ 03.07.2005. 12:53 ] @
Mozes da probas, tako sto ces da mu posaljes cookie. Ali gle, ako radis sa anonymous userima, to sto hoces je ne moguce. Mozes i nesto malo da sredis sa sesijama i IP adresama. Tj, da ne moze da glasa sa iste IP adrese neko vreme ...
Ali ako hoces se sigurno osiguras, trazi e-mail adresu, od glasaca, ali mu naglasi da se nece koristi za spam. Drugacije ne mozes ...
[ Ivan Miladinović @ 03.07.2005. 12:58 ] @
Radim sa anonymus userima... Nije mi potrebno da se 100% osiguram, ali mi je bitno da se ne izivljavaju... Gruba rec... Da ne preteruju.
Imas li taj kodic sa sesijama i IP adresom? Tj. skripticu?

A kako ide to sa e-mail adresom? Kada klikne glasaj, mora da upiše adresu ili šta?
[ stefaneg @ 03.07.2005. 13:11 ] @
pa ubaci u skriptu nesto kao:

Code:

<?php
if (isset($HTTP_COOKIE_VARS['voted'] and $HTTP_POST_VARS['submit']=="Submit") 
 {
 ?>
 <H4 align="center">Vec ste glasali i nemate pravo opet /* ili nesto drugo */</H4>
 <? 
 }
if (!isset($HTTP_COOKIE_VARS['voted'] and $HTTP_POST_VARS['submit']=="Submit") 
 {
 setcookie (voted, yes time()+36000);

 // pa onda skripta za dodavanje glasova u bazu
 }


ovo ti je najnesigurniji nacin, ali opet ko bi brisao sve kolacice samo da bi mogao da glasa za neku sliku opet. ja ne bih
[ flylord @ 03.07.2005. 13:13 ] @
Pa nemam bas
IP adresu izvuces sa $_SERVER['REMOTE_ADDR'] . I onda u bazu upises IP adresu, i upises session_id . I onda, ako je isti session id i Ip , ne moze da glasa.
Takodje upises i vreme kad je glasao, i onda prilikom glasanja, ako se ne poklopi session_id (korisnik izgasio browser i ponovo dosao na site sa drugog browsera) , onda proveris poklapanje IP-a, i ako je proslo manje od, npr, 1h , ne moze da glasa .
[ flylord @ 03.07.2005. 13:15 ] @
Citat:
stefaneg: pa ubaci u skriptu nesto kao:
Code:

<?php
if (isset($HTTP_COOKIE_VARS['voted'] and $HTTP_POST_VARS['submit']=="Submit") 
 





Trebalo bi da prestanes da radis sa $HTTP_COOKIE_VARS i $HTTP_POST_VARS , nego da koristis
$_POST i $_COOKIE i sl. To sto ti koristis se koristilo u vreme pre php-4.1.x serije. To je istorija koja se vise ne preporucuje
[ Ivan Miladinović @ 03.07.2005. 13:17 ] @
Ma ljudi koji posecuju taj sajt nit su hakeri nit znaju ista o racunarima. Oni samo pritisnu gde pise pritisni i to je to... Ne mislim ja nista lose o njima, ali niko se nece toliko truditi, ne dodeljujemo kao nagradu novi audi A4...

Hvala za skriptu, odmah cu da probam pa cu javiti da li mi je uspelo.

Nego jel ono vreme u +36000 u sekundama? Ako jeste to je onda oko 10h ako se ne varam?
[ Ivan Miladinović @ 03.07.2005. 14:09 ] @
Nece da mi radi skripta...

Ja imam jednu skriptu na stranici, koja je included u index, a klikom na submit poziva skriptu koja prikazuje rezultat i upisuje podatke u bazu.

Ja sam u tu drugu skriptu koja je pozvana ubacio ovo na sam pocetak skripte i dobijam sledecu gresku:

Code:
Parse error: parse error, unexpected T_LOGICAL_AND, expecting ',' or ')' in /home/virtual/site8/fst/var/www/html/glasanje2.php on line 2


Druga linija koda mi je ova:
Code:

if (isset($HTTP_COOKIE_VARS['voted'] and $HTTP_POST_VARS['submit']=="Submit") 


Help...
[ flylord @ 03.07.2005. 14:16 ] @
greska je u
Code:
if (isset($HTTP_COOKIE_VARS['voted'] and $HTTP_POST_VARS['submit']=="Submit") 


treba stoji
Code:
if (isset($HTTP_COOKIE_VARS['voted']) and $HTTP_POST_VARS['submit']=="Submit") 


I kao sto rekoh nemojte bre da koriste zaostale promenjive koje postoje samo zbog neke glupe kompatibilnosti. RTFM ljudi, zaboga... Koristite $_COOKIE i $_POST .....
[ Ivan Miladinović @ 03.07.2005. 14:19 ] @
To i koristim, ali sam ovde citirao proslu poruku i mrzelo me da ispravljam... ;-)

Odma probam ovo pa se javljam! Pozdrav.
[ Ivan Miladinović @ 03.07.2005. 14:32 ] @
Pa sad imam drugu gresku... :-(

u liniji deset, a to je ova linija:

Code:
setcookie (voted, yes time()+36000);


a ovo je greska:
Code:

Parse error: parse error, unexpected T_STRING 


Pa gde gresim?
Probao sam da izostavim ono YES onda radi, ali mozes da glasas kol'ko 'oces.
[ flylord @ 03.07.2005. 14:39 ] @
a sto malo ne procitas help
http://www.php.net/setcookie

treba da bude
Code:
setcookie ("voted", "yes",  time()+36000);
[ Ivan Miladinović @ 03.07.2005. 16:19 ] @
Hvala za link.

Reshio sam problem. Ovako mi sve radi:

Code:

<?php
// postavi kolacic
setcookie("glas[Napomena:]", "Vec ste jednom glasali, ne mozete da glasate dva puta u istom danu. Hvala na razumevanju.", time()+36000);

// ukoliko kolacic postoji on prikaze ovo da su vec glasali, u suprotnom se izvrsi kod.
if (isset($_COOKIE['glas'])) {
   foreach ($_COOKIE['glas'] as $name => $value) {
       echo "$name : $value <br />\n";
   }
}

else { 

// skripta za upis glasova u bazu

}
?>


Jos jednom hvala svima.
[ stefaneg @ 03.07.2005. 21:45 ] @
Citat:
To sto ti koristis se koristilo u vreme pre php-4.1.x serije. To je istorija koja se vise ne preporucuje

Izvini ali radim sa nekom starom verzijom php-a tako da sam navikao na moju verziju


@evil_angel_yu izvini za greske u kodu, zurio sam nesto tako da nisam proveravao, verovatno bih ti ustedeo dosta vremena da sam video ono ")" i zarez posle "yes". sorry
[ flylord @ 04.07.2005. 00:35 ] @
Stefane, to sto si pogresio u kucanju koda, po meni, je apsolutno ok, kucas napamet, ne razmisljas, i mislim da bi mnogo bilo korisnije da se evil_angel_yu samo potrudio da resi taj problem.
I predji na novi php
[ Ivan Miladinović @ 04.07.2005. 09:30 ] @
Pa nisam mogao da se potrudim da resim taj problem, jer nisam znao u cemu je problem... A kad si mi dao link iscitao sam uputstvo i najprostiji primer mi je zavrsio posao, samo sam ga prepravio za svoje potrebe. Tako da ne moras da brines, nisam cekao sve na gotovo, ali mi je puno pomoglo sto mi je stefaneg postavio primer koji i nije radio. Uglavnom sam sada naucio da postavljam kolacice.
Ovo mi bas odgovara, stavio sam da ne moze da se glasa za 36000 sec tj. 10h i to mi odgovara.

@flylord
znam da sam te malko iznervirao... Ali sta ces... Nista licno, samo sam hteo to da naucim. 67989 puta mi je lakse kad neko na srpskom napise to je tako, nego kad dva dana citam knjige na engleskom ili srpskom. Sve je u praksi.

Hvala vam, svi odgovori su mi koristili.

P.S.: Necu se zaustaviti kod kolacica... Cucemo se mi jos... Buahahahaha... :-)