Foros del Web » Programando para Internet » PHP »

quitarme de encima a un toca webs

Estas en el tema de quitarme de encima a un toca webs en el foro de PHP en Foros del Web. Hola a todos! Tengo un problema grande, me hice una web y adapte un sistema de comentarios que encontré navegando. Funciona perfectamente y almacena los ...
  #1 (permalink)  
Antiguo 25/04/2012, 07:35
Avatar de jors_11  
Fecha de Ingreso: marzo-2011
Ubicación: Granollers
Mensajes: 79
Antigüedad: 13 años
Puntos: 2
Pregunta quitarme de encima a un toca webs

Hola a todos!
Tengo un problema grande, me hice una web y adapte un sistema de comentarios que encontré navegando. Funciona perfectamente y almacena los comentarios en una base de datos pero el problema que tengo es que un mal nacido me esta metiendo comentarios cada día, en los cuales aparece su url e información de su negocio y no se como quitármelo de encima, estoy todos los días quitando mensajes. Le he escrito diciéndole que no me toque los webs pero nada, me tiene amargado.
Mi nivel de php es muy bajo, es decir si me podéis ayudar no me habléis en clave.
He probado de capturar la ip de la siguiente manera y puse el siguiente código;

Código PHP:
Ver original
  1. <?php
  2. $ip=$_SERVER['REMOTE_ADDR'];
  3. echo $ip;
  4. ?>


El problema es que esto me recoge mi ip pero no se como almacenar las ips que visitan mi web, también otro problema que tengo es que la ip se ve en esta página y me interesa que no se vea.
Como lo puedo hacer? Gracias



Código PHP:
Ver original
  1. <?php
  2. $cadena ="SELECT * FROM comentario";
  3. $tabla = mysql_query($cadena, $conexion) or die ("problema con cadena de conexion<br><b>" . mysql_error()."</b>");
  4. $campos = mysql_num_rows($tabla);
  5. $cadena = mysql_query($cadena, $conexion);
  6. echo "Comentarios: $campos";
  7. while ($campos = mysql_fetch_array($tabla)){
  8. echo
  9. '<br /><table border="0" id="print"><tr><td><div id="titlediv"><center><h4>'.$campos['titulo'].'</h4></center></div>'
  10. .'<div id="cnombre"><img src="img/'.$campos['logo'].'" width="50px" heigh="50px" /><br /><span id="titulo">Nombre: </span>'.
  11. $campos['nombre']
  12. .'</div><div id="cweb"><span id="titulo"> Su Sitio Web:</span> <a href="http://'.$campos['web'].'" target="_new">'.
  13. $campos['web']
  14. .'</a></div><div id="ccomentario"><span id="titulo"> Comentó:</span> '.
  15. $campos['comentario']
  16. .'</div></td></tr></table>';
  17. }
  18. ?>
  19.           <?php
  20. $ip=$_SERVER['REMOTE_ADDR'];
  21. echo $ip;
  22. ?>
  23.         &nbsp;</p>
  24.         <p><a name="1" id="1"></a></p>
  25.        
  26.       <form id="formcomentarios" name="form1" method="post" action="insertar.php">
  27.         <p>Campos Obligatorios (<span id="obligatorio">*</span>)</p>
  28.   <p>
  29.     <label for="titulo">Titulo: </label><br />
  30.     <input type="text" name="titulo" id="titulo" maxlength="50" /> <span id="obligatorio">*</span>    </p>
  31.           <p>
  32.             <label for="nombre">Nombre: </label><br />
  33.           <input type="text" name="nombre" id="nombre" maxlength="50"/> <span id="obligatorio">*</span>            </p>
  34.           <p>
  35.             <label for="web">Tu Sitio Web: </label><br />
  36.             <input type="text" name="web" id="web" maxlength="100"/>
  37.           </p><br />
  38.         <p>Escoge la imagen para mostrar:</p>
  39.           <p>Comentario:
  40.             <input name="logo" type="radio" id="img1" value="logo1.png" checked="checked" />
  41.             <label for="logo1"></label>
  42.             Pregunta:
  43.             <input name="logo" type="radio" id="pregunta" value="logo3.png" />
  44.             <label for="logo3"></label>
  45.           </p>
  46.           <p>Si tienes alguna duda, por favor inserta tu correo (No será publicado)</p>
  47.           <label for="correo">Correo: </label><br />
  48.         <input type="text" name="correo" id="correo" maxlength="100" />
  49.         </p>
  50.         <p><br />
  51.           <label for="comentario">Comentario :<span id="obligatorio">*</span><br />
  52.             </label>
  53.           <textarea name="comentario" id="comentario" maxlength="400" cols="30" rows="5"></textarea><br /><br />
  54.           <span class="Estilo9"><a href="#2">VOLVER</a></span><br />
  55.         </p>
  56.         <div align="left">
  57.           <input type="submit" name="go" id="go" value="Comenta" />
  58.         </div>
  59.       </form>
  #2 (permalink)  
Antiguo 25/04/2012, 08:24
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: quitarme de encima a un toca webs

Amigo, te dejo una función que te puede ayudar a capturar la ip del visitan

Código PHP:
Ver original
  1. function getIP() {
  2.     if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  3.        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  4.     }
  5.     elseif (isset($_SERVER['HTTP_VIA'])) {
  6.        $ip = $_SERVER['HTTP_VIA'];
  7.     }
  8.     elseif (isset($_SERVER['REMOTE_ADDR'])) {
  9.        $ip = $_SERVER['REMOTE_ADDR'];
  10.     }
  11.     else {
  12.        $ip = "ip desconocida";
  13.     }
  14.    
  15.     //echo "Tu IP es: $ip";
  16.     return $ip;
  17. }

Saludos
  #3 (permalink)  
Antiguo 25/04/2012, 08:35
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: quitarme de encima a un toca webs

Para capturar la ip del que escribe debería añadir un campo más a la base de datos (si no lo tiene ya) y que guarde junto al mensaje la ip, así podrás asociar la ip al que escribe.

Otra opción es instalar un sistema de usuarios.
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #4 (permalink)  
Antiguo 25/04/2012, 08:38
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: quitarme de encima a un toca webs

Claro como dice Uncontroled_Duck podrias hacer algo como esto para insertarlo en la base de datos .

Código PHP:
Ver original
  1. $ip_real=getIP($ip);       
  2. $sql="INSERT INTO nombre_tabla (ip) VALUES ('$ip_real')";

Saludos
  #5 (permalink)  
Antiguo 25/04/2012, 08:44
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 a un toca webs

Muchas gracias compañeros por la ayuda, creo que lo entiendo bastante bien, lo pongo en marcha y os comento, Saludos!!
  #6 (permalink)  
Antiguo 25/04/2012, 09:07
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 a un toca webs

Una pregunta de novato; El código de matt para insertar la ip en la base de datos ¿Donde lo tendría que poner, en la página que muestro al principio o en esta otra página php que es la que inserta los datos?;



Código PHP:
Ver original
  1. <style>.xdebug-error{visibility:hidden;}</style>
  2. <?php
  3. require_once("conexion.php"); //tengo que poner entre las comillas "conexion.php" //
  4. $titulo = $_POST['titulo'];
  5. $nombre = $_POST['nombre'];
  6. $correo = $_POST['correo'];
  7. $comentario = $_POST['comentario'];
  8. $web = $_POST['web'];
  9. $logo = $_POST['logo'];
  10. if (!isset($nombre) || $nombre == '') {
  11. echo
  12. '<center><h1>Falta completar el Nombre</h1><br /><h3><a href="javascript:history.go(-1);">Vuelve a el Formulario</a></h3></center>';
  13. }
  14. else if (!isset($comentario) || $comentario == '') {
  15. echo
  16. '<center><h1>Falta completar el Comentario</h1><br /><h3><a href="javascript:history.go(-1);">Vuelve a el Formulario</a></h3></center>';
  17. }
  18. else if (!isset($titulo) || $titulo == '') {
  19. echo
  20. '<center><h1>Falta completar el Titulo</h1><br /><h3><a href="javascript:history.go(-1);">Vuelve a el Formulario</a></h3></center>';
  21. }
  22. else {
  23. $insertar = mysql_query("INSERT INTO comentario (titulo, nombre, correo, comentario, web, logo)
  24. VALUES ('{$titulo}', '{$nombre}', '{$correo}', '{$comentario}', '{$web}', '{$logo}')", $conexion);
  25. if (!$insertar) {
  26. die("Fallo en la insercion de registro en la Base de Datos: " . mysql_error());
  27. }
  28. mysql_close($conexion);
  29. }
  30. header("Location: http://www.paralapsoriasis.com/index22.php");
  31. ?>
  #7 (permalink)  
Antiguo 25/04/2012, 09:10
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: quitarme de encima a un toca webs

Cuando agrega el comentario el visitante se guarda su ip algo asi.


Código PHP:
Ver original
  1. <style>.xdebug-error{visibility:hidden;}</style>
  2.     <?php
  3.     require_once("conexion.php"); //tengo que poner entre las comillas "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.    
  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.     if (!isset($nombre) || $nombre == '') {
  31.     echo
  32.     '<center><h1>Falta completar el Nombre</h1><br /><h3><a href="javascript:history.go(-1);">Vuelve a el Formulario</a></h3></center>';
  33.     exit;
  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.     exit;
  39.     }
  40.     else if (!isset($titulo) || $titulo == '') {
  41.     echo
  42.     '<center><h1>Falta completar el Titulo</h1><br /><h3><a href="javascript:history.go(-1);">Vuelve a el Formulario</a></h3></center>';
  43.     exit;
  44.     }
  45.     else {
  46.     $ip_real=getIP($ip);  
  47.     $insertar = mysql_query("INSERT INTO comentario (titulo, nombre, correo, comentario, web, logo,ip)
  48.    VALUES ('{$titulo}', '{$nombre}', '{$correo}', '{$comentario}', '{$web}', '{$logo}'), , '{$ip_real}')", $conexion);
  49.     if (!$insertar) {
  50.     die("Fallo en la insercion de registro en la Base de Datos: " . mysql_error());
  51.     }
  52.     mysql_close($conexion);
  53.     }
  54.     header("Location: http://www.paralapsoriasis.com/index22.php");
  55.     ?>


saludos
  #8 (permalink)  
Antiguo 25/04/2012, 09:28
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 a un toca webs

Gracias Matt!
Ahora solo tendría que añadir un campo en la base de datos llamado ip?
Tu código esta get y el formulario esta en post ¿Tiene importancia?
  #9 (permalink)  
Antiguo 25/04/2012, 09:32
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: quitarme de encima a un toca webs

getIP es solo el nombre de la función le puedes nombrar como quieras mifuncionIP etc etc , y como dice solo debes agregar el campo ip a la tabla en tu BD.

Saludos
  #10 (permalink)  
Antiguo 25/04/2012, 09:34
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 a un toca webs

Gracias por todo, compañero
Saludos!

Etiquetas: encima, mysql, tabla, webs
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 17:06.