Foros del Web » Programando para Internet » ASP Clásico »

Bloquear encuesta por direccion Ip

Estas en el tema de Bloquear encuesta por direccion Ip en el foro de ASP Clásico en Foros del Web. Que tal gente de este foro, vengo por aqui para preguntar lo siguiente: Tengo una encuesta en asp, y bien todo perfecto, pero me gustaria ...
  #1 (permalink)  
Antiguo 21/04/2004, 15:55
Avatar de JoeMx  
Fecha de Ingreso: febrero-2003
Ubicación: A Km de Aquí.
Mensajes: 1.154
Antigüedad: 22 años, 3 meses
Puntos: 4
Bloquear encuesta por direccion Ip

Que tal gente de este foro, vengo por aqui para preguntar lo siguiente:

Tengo una encuesta en asp, y bien todo perfecto, pero me gustaria bloquear a las personas que han votado en la misma encuesta.
Se que lo puedo hacer por la dirección Ip, pero no se como hacerlo, se que debo d utilizar una condición, pero no se.
Alguien Sabe como debo proceder, por lo menos me conformo con tener algun modelo de como se hace...

Muchas Gracias.
__________________
"Si lo piensas, es porque si lo puedes hacer"
  #2 (permalink)  
Antiguo 21/04/2004, 17:52
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Antes de registrar el voto de un usuario le mirás la IP con request.servervariables("REMOTE_ADDRES") (creo que esa era), luego consultás la tabla de los votos a ver si ya existe:

IP = request.servervariables("REMOTE_ADDRES")
sql = "select IP from encuesta where ID_encuesta = X AND IP = '" & IP & "'"

if rs.BOF AND rs.EOF 'no ha votado aún esa IP
' aquí el código para insertar el voto
else 'ya ha votado en esta encuesta
response.write "no puede votar 2 veces con la misma IP"
end if


Fijate que en la consulta pongo la IP y la encuesta.. porque puede ser un sistema de varias encuestas y si votó en una, también puede votar en otra con la misma IP

saluds
__________________
...___...
  #3 (permalink)  
Antiguo 22/04/2004, 12:49
Avatar de JoeMx  
Fecha de Ingreso: febrero-2003
Ubicación: A Km de Aquí.
Mensajes: 1.154
Antigüedad: 22 años, 3 meses
Puntos: 4
Gracias dazuaga, voy a intentar realizarlo.
Estas en lo cierto tengo diferentes encuestas.

Ya te estare contando como me fue....
Saludos
__________________
"Si lo piensas, es porque si lo puedes hacer"
  #4 (permalink)  
Antiguo 22/04/2004, 14:29
 
Fecha de Ingreso: noviembre-2003
Ubicación: Distrito Federal
Mensajes: 225
Antigüedad: 21 años, 5 meses
Puntos: 0
Puedes utilizar cookies también, aunque si el usuario las borra lo dejara volver a votar
  #5 (permalink)  
Antiguo 22/04/2004, 17:35
Avatar de jrsouto  
Fecha de Ingreso: junio-2003
Ubicación: en una cabina de 2,2 x 2 x 2,2
Mensajes: 112
Antigüedad: 21 años, 10 meses
Puntos: 0
Hola JoeMx

No es muy buena idea lo de bloquear una encuesta por la IP, te cuento que yo tengo el mismo problema con las encuestas te digo los pro y los contra que yo le vi en su momento a eso:

PRO: un solo voto por IP (creo que es el único pro)

Contras: CIbercafes, empresas con gateway, Proxy, ADSL, y todas las formas de conexión.

Cuando uno se conecta a internet bien sea por modem (el peor de los casos para lo que tu (y yo) quieres hacer la dirección la asigna dinamicamente el servidor al que te conectas es decir un minuto la 200.47.xx.xxx la tienes tu, cuelgas la llamada y me conecto yo y esa misma dirección ahora la puedo tener yo tu votas y yo ya no lo podre hacer por tener una dirección que ya votó

Cuando te conectas por banda ancha, ADSL, o cualquier enlace dedicado ocurre casi lo mismo pero con menos frecuencia en el caso de ABA CANTV las direcciones se liberan cada 12 horas (eso es transparente para el usuario) y ocurriria lo mismo tu votastes y yo ya no podría.

Cuando vas a un cybercafe con N numero de maquinas todas salen por la misma ip del cafe es decir si un cliente vota en la maquina de al lado ya tu no podras hacerlo

En una empresa con gateway, proxy o cualquier otra forma aunque tengan IP fija por tener Frame relay o cualquier otra conexion te pasaría lo mismo que en el caso del cyber, basta con que un empleado vote para que mas nadie de esa empresa pueda hacerlo.

mi solución un cokie y esperar que el usuario no sea muy curioso, y luego puse la encuesta en la zona privada de la pagina, así valido el usuario en lugar de el ip

Saludos
__________________
Mientras mas aprendo mas me doy cuenta de lo poco que sé
  #6 (permalink)  
Antiguo 22/04/2004, 22:38
Avatar de JoeMx  
Fecha de Ingreso: febrero-2003
Ubicación: A Km de Aquí.
Mensajes: 1.154
Antigüedad: 22 años, 3 meses
Puntos: 4
Que tal jr suoto, me parece muy razonable lo que aqui describes, lo he considerado y de hecho me parece buena decision, como tu dices tiene sus pro y sus contras....De todos modos aqui les dejo que es lo que tengo realmente, y si por casualidad se les hace muy complicado, por favor indiquenme como realizo el bloqueo con una Cookie....


Bueno estuve tratando de realizar lo del bloqueo de la ip, aun sin resultado, fijense yo uso Dw Mx, para crear las paginas en ASP, trabajando en vista codigo y Vista diseño para generar los RecorsetQuery.

Tengo esto en mi codigo donde aparece la pregunta de mi encuesta:

Set IpVotacion = Server.CreateObject("ADODB.Recordset")
IpVotacion.ActiveConnection = MM_alumnos_STRING
IpVotacion.Source = "SELECT ip FROM votaciones WHERE " + Replace(IpVotacion__idenc, "'", "''") + " = ip"
if rsVotacion.BOF AND rsPregunta.EOF Then
MM_editConnection = MM_alumnos_STRING
End If
else
response.write "no puede votar 2 veces con la misma IP"
end if

Tengo un Juego de Registros llamado IpVotación y mi conexión a la bd se llama alumnos.
Tengo una Tabla que se llama votaciones, en la cual almaceno la dirección IP de los usuarios que votan. Con el codigo tal cual como se los coloque obtengo este error
Error de compilación de Microsoft VBScript error '800a03ea'
Error de sintaxis
/winsysdesign/encuesta.asp, line 183
else
^

Caso contrario cuando mi codigo es este:

IpVotacion.Source = "SELECT ip FROM votaciones WHERE " + Replace(IpVotacion__idenc, "'", "''") + " = ip"
MM_editConnection = MM_alumnos_STRING
IpVotacion.CursorType = 0
IpVotacion.CursorLocation = 2
IpVotacion.LockType = 1
IpVotacion.Open()
IpVotacion_numRows = 0

No tengo ningun problema, pero al votar sencillamente sigo votando y no le para a la dirección Ip, es decir no logro el objetivo de bloquear al usuario.

Mi duda es: Exactamente cuales RecorsetQuery (juegos de registro) debo colocar en la linea donde esta if rsVotacion.BOF AND rsPregunta.EOF Then

Resumiendo un poco en una tabla que lleva como nombre Votaciones, almaceno la Ip, en un campo que lleva el mismo nombre (ip), y donde ademas almaceno el ID de la Encuesta en un campo llamado idenc.

Tengo una tabla llamada Respuestas en la cual almaceno ID (autonumerico), idenc (id encuesta), y respuesta (alternativas de la Encuesta)


Disculpen un poco mi brutalidad, pero de alguna manera debo aprender, y si alguien puede ayudarme le estare agradecido de por vida.
Gracias a todos por leer este mensaje y si no pueden ayudarme igual les agradezco la molestia de haber leido hasta aquí

Muchas Gracias.
PD: Acepto sugerencias de como realizarlo con una Cookie.
__________________
"Si lo piensas, es porque si lo puedes hacer"

Última edición por JoeMx; 22/04/2004 a las 22:40
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 11:22.