Foros del Web » Programando para Internet » PHP »

Ordenar IPs y detectar

Estas en el tema de Ordenar IPs y detectar en el foro de PHP en Foros del Web. Hola, Hoy en mi web decidí probar a hacer un pequeño sistema antispam... Funciona así: Alguien por ejemplo publica un comentario en mi web, y ...
  #1 (permalink)  
Antiguo 19/01/2012, 12:41
 
Fecha de Ingreso: enero-2011
Mensajes: 59
Antigüedad: 13 años, 10 meses
Puntos: 2
Ordenar IPs y detectar

Hola,

Hoy en mi web decidí probar a hacer un pequeño sistema antispam...
Funciona así: Alguien por ejemplo publica un comentario en mi web, y cuando va a publicar otro comentario es denegado por IP (IP que ya fue recogida antes)

He intentado crearlo y hasta ahora consigo esto:
Código PHP:
// la variable $ip viene dada ya anteriormente por el ip recogido desde la web
$sql "SELECT * FROM cuentas";
$resultado mysql_query($sql,$conex)or die ("No ha ejecutado el sql");
while (
$fila mysql_fetch_array($resultado)){
if (
$ip == $resultado ){
echo 
"Ya hay un anuncio con esa IP";
}else{
echo 
"Continuaríamos con la inserción de comentario";
  }
  } 
Claro, a la hora de ver las IPs me salen una seguida de otra de forma que nunca me coincidirá con alguna IP
¿Alguna forma de sacarlas una a una y que revisase si ya existe?
Un saludo
  #2 (permalink)  
Antiguo 19/01/2012, 12:47
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: Ordenar IPs y detectar

Creo que planteas mal lo que quieres hacer, o yo entendi mal... Para mi lo mas logico seria obtener la IP del usuario y realizar la consulta con esa IP si la IP existe pues no lo dejo realizar el INSERT, te dare la logica:

obtengo IP -> $SERVER[REMOTE_ADDRES]
realizo consulta con esa -> IP SELECT * FROM tu_tabla WHERE ip = ip_obtenida
guardo los resultado -> mysql_num_rows
SI(resultado > 0){
usted ya ingreso comentario
}else{
insertando su comentario
}

Espero que esto te sirva de ayuda y si no es lo que buscas pls explícate un poco mejor para ayudarte.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 19/01/2012, 12:47
Avatar de NJS
NJS
 
Fecha de Ingreso: noviembre-2011
Mensajes: 371
Antigüedad: 13 años
Puntos: 28
Respuesta: Ordenar IPs y detectar

Código PHP:
@$ip getenv(REMOTE_ADDR);
$sql "SELECT * FROM cuentas"
$resultado mysql_query($sql,$conex)or die ("No ha ejecutado el sql"); 
while (
$fila mysql_fetch_array($resultado)){ 
if (
$fila['campo_ip_en_base_de_datos'] == $ip ){ 
echo 
"Ya hay un anuncio con esa IP"
}else{ 
echo 
"Continuaríamos con la inserción de comentario"
  } 
  } 
  #4 (permalink)  
Antiguo 19/01/2012, 12:52
 
Fecha de Ingreso: julio-2010
Mensajes: 393
Antigüedad: 14 años, 3 meses
Puntos: 67
Respuesta: Ordenar IPs y detectar

Esto te servirá... es más optimo.

Código PHP:
Ver original
  1. <? 
  2.     $sql = 'select count(*) from cuentas where ip = \'' . $ip . '\'';
  3.     $result = mysql_query($sql);
  4.     if(intval(mysql_result($result, 0, 0)) > 0){
  5.         echo 'Ya hay un anuncio con esa IP';
  6.     }
  7.     else{
  8.         echo 'Continuaríamos con la inserción de comentario';
  9.     }  
  10. ?>

PD: No puedo probarlo acá donde estoy pero debería ser funcional al 100%
__________________
Páginas web de alta calidad y hechas a la medida.
  #5 (permalink)  
Antiguo 19/01/2012, 12:54
 
Fecha de Ingreso: enero-2011
Mensajes: 59
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Ordenar IPs y detectar

Muchas gracias por sus respuestas.
Las pruebo y les comento
  #6 (permalink)  
Antiguo 19/01/2012, 12:55
 
Fecha de Ingreso: enero-2011
Mensajes: 59
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Ordenar IPs y detectar

Cita:
Iniciado por jotaincubus Ver Mensaje
Creo que planteas mal lo que quieres hacer, o yo entendi mal... Para mi lo mas logico seria obtener la IP del usuario y realizar la consulta con esa IP si la IP existe pues no lo dejo realizar el INSERT, te dare la logica:

obtengo IP -> $SERVER[REMOTE_ADDRES]
realizo consulta con esa -> IP SELECT * FROM tu_tabla WHERE ip = ip_obtenida
guardo los resultado -> mysql_num_rows
SI(resultado > 0){
usted ya ingreso comentario
}else{
insertando su comentario
}

Espero que esto te sirva de ayuda y si no es lo que buscas pls explícate un poco mejor para ayudarte.
Si. No lo pensé pero de esa forma tambien puede ser efectiva.
  #7 (permalink)  
Antiguo 19/01/2012, 12:58
 
Fecha de Ingreso: enero-2011
Mensajes: 59
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Ordenar IPs y detectar

Cita:
Iniciado por el_quick Ver Mensaje
Esto te servirá... es más optimo.

Código PHP:
Ver original
  1. <? 
  2.     $sql = 'select count(*) from cuentas where ip = \'' . $ip . '\'';
  3.     $result = mysql_query($sql);
  4.     if(intval(mysql_result($result, 0, 0)) > 0){
  5.         echo 'Ya hay un anuncio con esa IP';
  6.     }
  7.     else{
  8.         echo 'Continuaríamos con la inserción de comentario';
  9.     }  
  10. ?>

PD: No puedo probarlo acá donde estoy pero debería ser funcional al 100%
Me decanté por tu forma. Funciona al 101%
Un saludo y muchas gracias a todos
  #8 (permalink)  
Antiguo 19/01/2012, 13:03
 
Fecha de Ingreso: enero-2011
Ubicación: Argentina
Mensajes: 80
Antigüedad: 13 años, 9 meses
Puntos: 12
Respuesta: Ordenar IPs y detectar

Y qué pasa si varios usuarios quieren expresarse en tu web site y tienen la misma dirección IP?

Un ejemplo es el mio, el proveedor de internet que tengo usa una sola IP para sus abonados con excepción a los que contratan una IP pública el cual tiene una notable diferencia en su precio.

Ahí tendría un problema tu sistema.

Agrego: Encima es el único proveedor de internet en mi zona.

Saludos
  #9 (permalink)  
Antiguo 19/01/2012, 13:18
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: Ordenar IPs y detectar

Cita:
Iniciado por MaxDgy Ver Mensaje
Y qué pasa si varios usuarios quieren expresarse en tu web site y tienen la misma dirección IP?

Un ejemplo es el mio, el proveedor de internet que tengo usa una sola IP para sus abonados con excepción a los que contratan una IP pública el cual tiene una notable diferencia en su precio.

Ahí tendría un problema tu sistema.

Agrego: Encima es el único proveedor de internet en mi zona.

Saludos
Lo que dices tiene razón, pero para el comienzo me parece que lo que plantea el amigo esta bien, lo que le podemos aconsejar es que utilice un sistema de tiempo. por ejemplo que no pueda ingresar comentarios antes de 5 minutos o algo así si tiene la misma IP.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #10 (permalink)  
Antiguo 19/01/2012, 14:46
 
Fecha de Ingreso: enero-2011
Mensajes: 59
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Ordenar IPs y detectar

Si, pero quiero denegar un nuevo anuncio
Realmente usaré esto para evitar que con la misma IP se creen dos anuncios simultaniamente, aunque la idea de ponerlo por minutos tambien es buena
Saludos

Etiquetas: mysql
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 14:10.