Foros del Web » Programando para Internet » PHP »

Un voto por IP

Estas en el tema de Un voto por IP en el foro de PHP en Foros del Web. Hola, me gustaría saber como puedo hacer que mis usuarios voten solo una vez por ip? Tambien Separar las opciones y que cada voto realizado ...
  #1 (permalink)  
Antiguo 27/06/2008, 09:40
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Un voto por IP

Hola, me gustaría saber como puedo hacer que mis usuarios voten solo una vez por ip? Tambien Separar las opciones y que cada voto realizado valla con cada opcion Aqui les traigo parte de lo que quiero hacer:

Votacion:

Id , Titulo , Opciones , Votos , IP

Asi que me gustarí hacer esto (se que se usa el explode si no me equivoco). Las Opciones, Los Votos y las IP estan todas separadas por ,

Opciones[0] -- Votos[0]
Opciones[1] -- Votos[1]
Opciones[2] -- Votos[2]

Esto creo que sabria como hacerlo, pero la otra cosa es como puedo separar cada IP? y hacer
Código PHP:
if ($ip_bd == $ip){ echo"Ya haz votado, No Puedes votar otra vez."; } else { echo"Gracias Por tu voto"; } 
Es decir como puede buscar en la tabla IP entre todas las ips que estan allí, si esta la IP del visitante??

Gracias.
  #2 (permalink)  
Antiguo 27/06/2008, 09:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Un voto por IP

Hola TxT,

Lo haces enviando un Query a la base de datos:
Código:
SELECT ip FROM table WHERE ip='la_ip'
Si el query te regresa más de una fila es que ya existe y por lo tanto le muestras que ya voto y no puede votar de nuevo.

Para almacenar la ip, te recomiendo dos funciones que usa PHP que son ip2long y long2ip, sirven muy bien para guardar la IP en la base de datos.

Saludos.
  #3 (permalink)  
Antiguo 27/06/2008, 09:49
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
como son usadas esas funciones? solo se pone:
Insert * INTO table ip Values 'ip2long' ?? xD no se LoL

Bueno y esa Query es para buscar donde la ip sea igual a la ip del visitante.. pero el problema es que no esta solo esa ip son Varias y no se la cantidad exacta porque cada vez que alguien realiza un voto se añade una ip: ,$ip asi que a cada vez que se añade una ip hay un , mas la ip y el , estoy usandolo para separar cada ip que se guarda.

ALGUIEN que me ayude con esto, es como la 3ra vez que pido este tipo de ayuda y nunca me responden, necesito saber esto para mas de una de mis webs. Gracias!

Última edición por GatorV; 27/06/2008 a las 11:30
  #4 (permalink)  
Antiguo 27/06/2008, 11:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Un voto por IP

ip2long y long2ip son funciones de PHP, por lo que debes de usarlas antes de generar la cadena con el query para realizar el insert.

Para buscar en ese caso deberías usar LIKE bajo la columna que quieras buscar en tu base de datos.

Saludos.
  #5 (permalink)  
Antiguo 27/06/2008, 11:33
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Un voto por IP

Muchisimas gracias, era eso que buscaba (LIKE ) no recordaba cual era, muchas gracias :D
  #6 (permalink)  
Antiguo 28/06/2008, 08:16
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Un voto por IP

Bien ya se como funciona la funcion ip2long me gustaria ahora saber como puedo hacer para que no salga en negativo el resultado? o mejor dicho cambiar de negativo a positivo (esto podria afectar en algo? es decir puede haber una ip -21 y otra 21 en dos personas distintas??? )

Gracias.
  #7 (permalink)  
Antiguo 28/06/2008, 08:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Un voto por IP

La idea es que dejes a ip2long trabajar directo ya que el algoritmo de conversion que usa transforma correctamente los datos, si es negativo, dejalo como negativo o de lo contrario afectas la IP que vas a guardar.

Saludos.
  #8 (permalink)  
Antiguo 28/06/2008, 20:23
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Un voto por IP

Muchisimas Gracias GatorV por toda tu ayuda en este transcurso! Me haz ayudado mucho, bastante :D
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




La zona horaria es GMT -6. Ahora son las 01:22.