Es una validacion por cookie.
Lo que quiero hacer es que si tiene una cookie valide a ver si es la cookie que busco.
Código:
Bueno, no me funciona.Si no tengo cookie me setea una cookie. if(!isset($_COOKIE['ya_votaste'])){ setcookie("ya_votaste[$aid]",$aid, time()+3600*24); $result = mysql_query($query); $num = mysql_numrows($result); }else{ Si ya tengo cookie, me fijo a ver si es la misma cookie que tengo (Para explicar un poco el tema, hay muchas votaciones en una pagina, pero solo se podria votar 1 vez en cada votacion, entonces tengo que setear cookies diferentes por cada votacion) $num = 2; if(isset($_COOKIE['ya_votaste'])){ <- Si tiene cookie foreach ($_COOKIE['ya_votaste'] as $yavot => $mid) { (esta parte es confusa, segun tengo entendido lo pasaria como ya_votgaste[$yavot], [$mid]. osea los datos de $aid pasarian a esos dos lugares) $yavo = htmlspecialchars($yavot); <- No lo uso $mid = htmlspecialchars($mid); <- Esto deberia tener el $aid if($mid == $aid){ <- Me fijo si la cookie tiene el mismo $aid que la votacion actgual Si tiene el mismo $aid, le paso valor 1 y termino el for $num = 1; break; } } Como no se salir del if al terminar el foreach, creo que aca no existe el endif como java Verifico si Num es 2(puse 2 al principio de este if para este paso), si no es 2 es porque tiene la cookie(el for la setea en 1) if($num == 2){ Si es 2, le paso los datos para que pueda votar y le seteo la cookie con este $aid $result = mysql_query($query); $num = mysql_numrows($result); setcookie("ya_votaste[$aid]",$aid, time()+3600*24); } }}
Tengo validacion por IP, pero la gente usa paginas como... anonymouse.org y pueden volver a votar.
Puse este codigo y fui a anonymouse.org a ver si podia votar 2 veces y pude.
Alguna idea, debe haber algo mal en el for ^^