Cookies
Hola!
Tengo hecho un sistema de votaciones. Es simple, varios checkbox que mandan el nombre de un jugador si han sido clickeados y agrega 1 a una bbdd.
Para limitar a que los usuarios puedan votar solo 1 vez por semana, he creado unas cookies. El problema es que el valor de la Cookie votos se me reinicializa cada vez. El echo me da siempre 1.
Por otro lado, en el formulario, he puesto lo que ves abajo. ¿Esta bien así?
Gracias!
Cookie:
//Debe ir al principio del archivo
setcookie("votos",$votando,time()+60*60*7); //Para que dure una semana
setcookie("jugadores",null,time()+60*60*7);
if($_POST['box']){
if($_COOKIE['votos']>3){
echo 'No puedes votar mas de 3 veces';
}
else{
$_COOKIE['votos']++;
}
/* Lo hago separado, por si quieres ponerlo en otra parte, siempre y cuando cumplan el if() de arriba */
if(in_array($_POST['box'],$_COOKIE['jugadores'])){
echo 'Lo sentimos, pero ya has votado por este jugador';
}
else{
$_COOKIE['jugadores'][] = $_POST['box']; //Suponiendo que $_POST['voto'] trae el value del radio
}
}
?>
Formulario:
if($_COOKIE['votos']>0){
echo 'No puedes votar mas de 3 veces';
echo "
<td>"."<input name='box[]' disabled='disabled' type='checkbox' value='$row[Jugador]' onclick='setChecks(this)'/>"."</td>
";
}
else{
echo "
<td>"."<input name='box[]' type='checkbox' value='$row[Jugador]' onclick='setChecks(this)'/>"."</td>
";
echo "hola".$_COOKIE['votos'];
echo "
</tr>
";
}
Tengo hecho un sistema de votaciones. Es simple, varios checkbox que mandan el nombre de un jugador si han sido clickeados y agrega 1 a una bbdd.
Para limitar a que los usuarios puedan votar solo 1 vez por semana, he creado unas cookies. El problema es que el valor de la Cookie votos se me reinicializa cada vez. El echo me da siempre 1.
Por otro lado, en el formulario, he puesto lo que ves abajo. ¿Esta bien así?
Gracias!
Cookie:
//Debe ir al principio del archivo
setcookie("votos",$votando,time()+60*60*7); //Para que dure una semana
setcookie("jugadores",null,time()+60*60*7);
if($_POST['box']){
if($_COOKIE['votos']>3){
echo 'No puedes votar mas de 3 veces';
}
else{
$_COOKIE['votos']++;
}
/* Lo hago separado, por si quieres ponerlo en otra parte, siempre y cuando cumplan el if() de arriba */
if(in_array($_POST['box'],$_COOKIE['jugadores'])){
echo 'Lo sentimos, pero ya has votado por este jugador';
}
else{
$_COOKIE['jugadores'][] = $_POST['box']; //Suponiendo que $_POST['voto'] trae el value del radio
}
}
?>
Formulario:
if($_COOKIE['votos']>0){
echo 'No puedes votar mas de 3 veces';
echo "
<td>"."<input name='box[]' disabled='disabled' type='checkbox' value='$row[Jugador]' onclick='setChecks(this)'/>"."</td>
";
}
else{
echo "
<td>"."<input name='box[]' type='checkbox' value='$row[Jugador]' onclick='setChecks(this)'/>"."</td>
";
echo "hola".$_COOKIE['votos'];
echo "
</tr>
";
}
1 Respuesta
Respuesta de davidcortesb
1