Autor Tema: [AYUDA] - Como Evitar doble voto en encuesta  (Leído 1379 veces)

Desconectado genartina

  • PHPer@ Fijo
  • ***
  • Mensajes: 131
  • Karma: 0
  • Sexo: Masculino
  • Comunidad Linksharing
    • Ver Perfil
    • Linksharing
[AYUDA] - Como Evitar doble voto en encuesta
« en: 03 de Marzo de 2010, 09:51:41 am »
Buenas, estoy programando un sistema de encuestas, ahi hasta ahi todo bien, pero me atasque en la parte que impide el doble voto.

En una palabra, necesitaria hacer que el usuario no pueda votar dos veces en un dia la misma encuesta. Espero su ayuda. Muchas Gracias.

P.D: Busque en el foro, pero no encontre nada que me sirva en este caso.
« Última modificación: 03 de Marzo de 2010, 10:26:05 am por genartina »
¿ Genartina ? jeje

Comunidad PHPeros

[AYUDA] - Como Evitar doble voto en encuesta
« en: 03 de Marzo de 2010, 09:51:41 am »

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re:[AYUDA] - Como Evitar doble voto en encuesta
« Respuesta #1 en: 03 de Marzo de 2010, 12:14:05 pm »
Si es por registro de usuarios, guarda en una tabla usuario y votación, cuando vote guarda el usuario y la votación y cuando quiera votar antes de dejarle, haz un mysql_num_rows() para comprobar que no ha votado todabía.

Si no se restringe por usuario, hazlo por la IP (obten la IP a través de PHP) y guarda IP + votación y compruebalo igual ;-)

Un saludo
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado Revancha

  • PHPero Avanzado
  • ****
  • Mensajes: 375
  • Karma: 22
  • Sexo: Masculino
    • Ver Perfil
Re:[AYUDA] - Como Evitar doble voto en encuesta
« Respuesta #2 en: 03 de Marzo de 2010, 21:28:25 pm »
Como dice G2K, lo puedes hacer registrando la IP y también para agregarle un poco más de "efectividad" podrías crear una cookie que indique que ya ha realizado su votación... Eso si, el sistema siempre se podrá manipular de una u otra forma.

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[AYUDA] - Como Evitar doble voto en encuesta
« Respuesta #3 en: 03 de Marzo de 2010, 22:27:18 pm »
Que se guarde la IP del votante en una base de datos, luego con un mysql_num_rows() se comprueba si ya votó, etc...
- Moderador de PHP


Desconectado genartina

  • PHPer@ Fijo
  • ***
  • Mensajes: 131
  • Karma: 0
  • Sexo: Masculino
  • Comunidad Linksharing
    • Ver Perfil
    • Linksharing
Re:[AYUDA] - Como Evitar doble voto en encuesta
« Respuesta #4 en: 04 de Marzo de 2010, 04:48:32 am »
lo que me olvide de decir mas arriba es que las encuestas van en cada noticia, osea, lo que no se como hacer es para que no pueda volver a votar en la encuesta de una noticia en particular. Gracias por su ayuda .
¿ Genartina ? jeje

Desconectado Xt3mP

  • PHPer@ Fijo
  • ***
  • Mensajes: 160
  • Karma: 18
  • Nuev@ PHPer@
    • Ver Perfil
Re:[AYUDA] - Como Evitar doble voto en encuesta
« Respuesta #5 en: 09 de Marzo de 2010, 07:10:08 am »
No tengo tiempo para darte el código hecho ahorita así que te plantéo la idea.

Deberás crear una tabla y un campo llamado IP o como quieras y que al votar tome la IP y la almacene en ese campo.

Ejemplo:

Código: (php) [Seleccionar]
<?php mysql_query("INSERT into encuestas (ip) values (&#39;$ip&#39;)"); ?>
Suponiendo que la encuesta hace llamado a "meter_encuesta.php".

En el meter_encuesta.php deberás hacer algo como:

$ip = cojer IP

Y hacer un query a la base de datos donde pregunte en teoría algo como seleccionar de * tabla donde la ip es $ip.

Algo como esto:
Código: (php) [Seleccionar]
<?php $checar mysql_query("SELECT ip FROM encuestas WHERE ip=&#39;$ip&#39;");?>
Ahora comprobamos y le damos condiciones:

Código: (php) [Seleccionar]
<?php
if($checando mysql_fetch_array($checar)){
echo &
#39;Ya votaste, regresa mañana&#39;;
mysql_free_result($checar); //Liberar
}else{

Aquí ya sería meter la encuesta 

}
?>


Despúes puedes poner un timer ó tu mismo vacíar el campo diario para futuras encuestas.

Suerte.
Código: (php) [Seleccionar]
<?php
$mundo 
$_POST[&#39;todos&#39;];
if ($mundo 1000000){ echo "Google: Sorry, los destruiré, comos muchos";
}else{
echo 
"Google: Bueno, mientras me adueño de más redes sociales los dejaré vivir"}
//Los estaré vigilando.
?>

Desconectado genartina

  • PHPer@ Fijo
  • ***
  • Mensajes: 131
  • Karma: 0
  • Sexo: Masculino
  • Comunidad Linksharing
    • Ver Perfil
    • Linksharing
Re:[AYUDA] - Como Evitar doble voto en encuesta
« Respuesta #6 en: 09 de Marzo de 2010, 10:03:44 am »
muchas gracias amigo, lo hare como dices. Te dejo un +
¿ Genartina ? jeje

Desconectado Xt3mP

  • PHPer@ Fijo
  • ***
  • Mensajes: 160
  • Karma: 18
  • Nuev@ PHPer@
    • Ver Perfil
Re:[AYUDA] - Como Evitar doble voto en encuesta
« Respuesta #7 en: 09 de Marzo de 2010, 16:07:22 pm »
De nada, para eso estamos.
Código: (php) [Seleccionar]
<?php
$mundo 
$_POST[&#39;todos&#39;];
if ($mundo 1000000){ echo "Google: Sorry, los destruiré, comos muchos";
}else{
echo 
"Google: Bueno, mientras me adueño de más redes sociales los dejaré vivir"}
//Los estaré vigilando.
?>