Foros del Web » Programando para Internet » PHP »

Validar un sólo voto en una encuesta por PC

Estas en el tema de Validar un sólo voto en una encuesta por PC en el foro de PHP en Foros del Web. Buenos días. Tengo una página pública que comprende una encuesta. Fuciona de la siguiente manera: El usuario elige la respuesta correcta y se guarda la ...
  #1 (permalink)  
Antiguo 16/06/2006, 07:41
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
Validar un sólo voto en una encuesta por PC

Buenos días.

Tengo una página pública que comprende una encuesta. Fuciona de la siguiente manera:

El usuario elige la respuesta correcta y se guarda la misma para luego mostrar un porcentaje de cada una de las respuesta de la encuesta.

Bueno necesito una función php que me identifique algún parámetro de la máquina que genera la encuesta, con la finalidad que la persona pueda hacer la encuesta una sola vez.

Se que lo puedo hacer usando cookies pero como el usario para responder la encuesta no tiene que introducir datos, esa mi duda.
Espero haberme explicado. Agradecería su ayuda. Gracias!!!!

Última edición por ostayde; 16/06/2006 a las 09:18 Razón: estaba mal redactado
  #2 (permalink)  
Antiguo 16/06/2006, 12:37
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 1 mes
Puntos: 0
creo que la única solucion viable que te que te queda es rescatar la ip del usuario, almacenarle en la BD.

una funcion para rescatar la ip del usuario seria

Código PHP:
<?php

function getIP() {
    if (isset(
$_SERVER['HTTP_X_FORWARDED_FOR'])) {
       
$ip $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    elseif (isset(
$_SERVER['HTTP_VIA'])) {
       
$ip $_SERVER['HTTP_VIA'];
    }
    elseif (isset(
$_SERVER['REMOTE_ADDR'])) {
       
$ip $_SERVER['REMOTE_ADDR'];
    }
    else {
       
$ip "unknown";
    }
   
    echo 
"Tu IP es: $ip";
}

?>
saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #3 (permalink)  
Antiguo 16/06/2006, 14:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tampoco sirve registrar una IP, .. si el usuario usa una conexión con IP dinámica podrá votar la próxima vez que se conecte.

Lo ideal para asegurar un voto único es que registres a tus usuarios y los autentifiques .. es la única forma fiel de tener un registro efectivo de quien vota, que vota incluso y que no podrá votar otra vez.

Todo lo demas .. cookies, IP's .. sesiones y demás son soluciones "a medias" con su respectivo margen de error que tendras que asumir si no quieres o no puedes registrar a tus usuarios para realizar esas votaciones.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 16/06/2006, 14:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno necesito una función php que me identifique algún parámetro de la máquina que genera la encuesta, con la finalidad que la persona pueda hacer la encuesta una sola vez.

Algo único de una "máquina" podría ser la "MAC-ADDRESS" .. ese dato sólo lo puedes obtener en PHP si estás trabajando en una LAN .. no sirve para "internet". (Hay una FAQ al respecto .. revisalo si lo deseas).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 20/06/2006, 13:09
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
no estoy trabajando con LAN. Entonces como puedo hacer???

hay una solución ????

Necesito algo como esta página

http://www.cinesunidos.com/index.htm#inicio

en esta página hay un apartado que se llama encuesta pública, solo puede ser llenado una sola vez.
  #6 (permalink)  
Antiguo 20/06/2006, 14:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por ostayde
no estoy trabajando con LAN. Entonces como puedo hacer???

hay una solución ????

Necesito algo como esta página

http://www.cinesunidos.com/index.htm#inicio

en esta página hay un apartado que se llama encuesta pública, solo puede ser llenado una sola vez.
No, no hay forma ..

Evalua que hace ese ejemplo que expusistes .. Lo más probable que registre la IP .. o cree una cookie o combinación de ambos que te haga "dificil" pero .. lo dicho. Borra tus cookies, toma otra IP por desconectarte de Internet (si es que no usas IP fija?) .. y prueba a votar otra vez .. (Yo realmente no me he puesto a ver si almacena una cookie o desconectarme de internet .. más que nada por qué estoy en el trabajo con IP fija (la de mi proxy por el que paso) .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 21/06/2006, 12:36
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
lo estoy haciendo con cookie. luego de validarq ue los datos de la encuesta se guardaron correctamente en la base de datos, ejecuto esta cookie:


setcookie("encuesta", "7", time() + 31536000, "/", "",1); // código ubicado antes del html

pero si la quiero mostrar con

print $_COOKIE['encuesta'];

no muestra nada, pero la cookie si se esta guardando correctamente.

cual podría ser mi error.
  #8 (permalink)  
Antiguo 21/06/2006, 12:49
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Como dice Cluster, no hay manera de controlar 100 % el voto de un usuario, pero vamos tampoco te preocupes demasiado, el 99% de las encuestas de interntet (periodicos online, portales, etc..) filtran por cookies o cookies e ip,

Un sistema para filtrar por ip es, es sacar la ip con $_SERVER['REMOTE_ADDR']; una vez votado tendrías que generar una sesión con el valor de ip y propagarla de tal forma que si vuelve a intentar votar el mismo pc al leer la sesión y ver que es igual a la ip que intente votar no se computase el voto y le devuelva un mensaje como que ya ha votado.

Un saludo.

Última edición por Zertiko; 21/06/2006 a las 12:54
  #9 (permalink)  
Antiguo 21/06/2006, 12:52
 
Fecha de Ingreso: noviembre-2005
Ubicación: venezulea
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 0
ok gracias, precisamente por esos consehos decidi hacerlo usando cookies pero tengo un error que no se porque me da.

Agradecería su ayuda!!!!!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 06:37.