Foros del Web » Programando para Internet » PHP »

quitarme de encima un visitante

Estas en el tema de quitarme de encima un visitante en el foro de PHP en Foros del Web. Hola a todos! Estoy intentando quitarme de encima a un visitante de mi web que no para de utilizar un sistema de comentarios enviando mensajes ...
  #1 (permalink)  
Antiguo 28/04/2012, 14:13
Avatar de jors_11  
Fecha de Ingreso: marzo-2011
Ubicación: Granollers
Mensajes: 79
Antigüedad: 13 años
Puntos: 2
quitarme de encima un visitante

Hola a todos!
Estoy intentando quitarme de encima a un visitante de mi web que no para de utilizar un sistema de comentarios enviando mensajes basura, no paro cada día de borrar mensajes . La idea es coger la ip de los visitantes, en el momento que envían el comentario que se almacena en una base de datos.
Unos días atrás unos compañeros me ayudaron un poco con el código pero tengo un problema y es que no se inserta la ip del visitante en la base de datos. Os dejo el código de la página que inserta los datos por si me podéis ayudar, mi nivel en php es bastante bajo, Gracias de antemano


Código PHP:
Ver original
  1. <style>.xdebug-error{visibility:hidden;}</style>
  2.     <?php
  3.     require_once("conexion.php");
  4.    
  5.         function getIP() {
  6.         if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  7.            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  8.         }
  9.         elseif (isset($_SERVER['HTTP_VIA'])) {
  10.            $ip = $_SERVER['HTTP_VIA'];
  11.         }
  12.         elseif (isset($_SERVER['REMOTE_ADDR'])) {
  13.            $ip = $_SERVER['REMOTE_ADDR'];
  14.         }
  15.         else {
  16.            $ip = "ip desconocida";
  17.         }
  18.        
  19.         //echo "Tu IP es: $ip";
  20.         return $ip;
  21.     }
  22.    
  23. require_once("conexion.php");
  24. $titulo = $_POST['titulo'];
  25. $nombre = $_POST['nombre'];
  26. $correo = $_POST['correo'];
  27. $comentario = $_POST['comentario'];
  28. $web = $_POST['web'];
  29. $logo = $_POST['logo'];
  30. $ip = $_POST['ip'];
  31. if (!isset($nombre) || $nombre == '') {
  32. echo
  33. '<center><h1>Falta completar el Nombre</h1><br /><h3><a href="javascript:history.go(-1);">Vuelve a el Formulario</a></h3></center>';
  34. }
  35. else if (!isset($comentario) || $comentario == '') {
  36. echo
  37. '<center><h1>Falta completar el Comentario</h1><br /><h3><a href="javascript:history.go(-1);">Vuelve a el Formulario</a></h3></center>';
  38. }
  39. else if (!isset($titulo) || $titulo == '') {
  40. echo
  41. '<center><h1>Falta completar el Titulo</h1><br /><h3><a href="javascript:history.go(-1);">Vuelve a el Formulario</a></h3></center>';
  42. }
  43. else {
  44. $insertar = mysql_query("INSERT INTO comentario (titulo, nombre, correo, comentario, web, logo, ip)
  45. VALUES ('{$titulo}', '{$nombre}', '{$correo}', '{$comentario}', '{$web}', '{$logo}', '{$ip}')", $conexion);
  46. if (!$insertar) {
  47. die("Fallo en la insercion de registro en la Base de Datos: " . mysql_error());
  48. }
  49. mysql_close($conexion);
  50. }
  51. header("Location: http://www.xxxxx");
  52. ?>
  #2 (permalink)  
Antiguo 28/04/2012, 15:28
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 11 años, 11 meses
Puntos: 97
Respuesta: quitarme de encima un visitante

Veo que la vriable $ip la obtienes de $_POST, en lugar de sacarla de la funcion.
Prueba $ip=getIp();
Saludos.
  #3 (permalink)  
Antiguo 28/04/2012, 23:47
Avatar de jors_11  
Fecha de Ingreso: marzo-2011
Ubicación: Granollers
Mensajes: 79
Antigüedad: 13 años
Puntos: 2
Respuesta: quitarme de encima un visitante

Hola Oscar!! Funciona perfectamente,
muchisimas gracias compy!

Etiquetas: encima, formulario, mysql, registro, visitante
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 10:10.