Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Guardar IP en mysql

Estas en el tema de Guardar IP en mysql en el foro de PHP en Foros del Web. Hola, bueno tengo un formulario de libro de visitas, y es de libre acceso, todos pueden comentar, pero quiero que guarde la IP de la ...
  #1 (permalink)  
Antiguo 22/03/2014, 15:52
 
Fecha de Ingreso: julio-2013
Mensajes: 39
Antigüedad: 11 años, 4 meses
Puntos: 0
Guardar IP en mysql

Hola, bueno tengo un formulario de libro de visitas, y es de libre acceso, todos pueden comentar, pero quiero que guarde la IP de la persona que dejo su comentario, tengo este código en mi libro de visitas:

Código:
if($_POST['guardar']) {
  $LibroVisitas= mysql_query("INSERT INTO libro_visitas SET nombre = '".$_POST['name_coment']."', email = '".$_POST['email_coment']."', comentario = '".$_POST['comentario_coment']."'") or die('Fallo en: ' . mysql_error());
  if($LibroVisitas) {
  echo'Tu comentario fue publicado, gracias por dejarnos tu opinion.'; 
  }
}
echo'
  <form action="comentarios.php" method="post">
	<input name="nombre" type="text" placeholder="Nombre">
	<input name="email" type="text" placeholder="Email"><br>
	<textarea name="comentario" placeholder="Comentario"></textarea>
	<input type="submit" name="guardar" value="Comentar">
  </form>';
  #2 (permalink)  
Antiguo 22/03/2014, 15:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Guardar IP en mysql

¿Y el problema que tienes vendría a ser... cuál?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/03/2014, 15:55
 
Fecha de Ingreso: julio-2013
Mensajes: 39
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Guardar IP en mysql

Hola gnzsoloyo, no es un problema perdón si no especifique bien, quiero añadir algo para guardar la IP de la persona que comenta
  #4 (permalink)  
Antiguo 22/03/2014, 16:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Guardar IP en mysql

El tema de la IP es algo complicado, y que ha dado tema para muchas discusiones. Puede terminar siendo algo complejo de resolver, dependiendo de lo que entiendas por "IP de la persona".
La única IP que PHP puede obtener es la del servidor desde el cual el usuario se conecta, pero no podrás obtener la IP que tiene asignada la propia PC del usuario, porque en realidad lo que peudes obtener es la IP pública, que pertenece al ISP donde ese usuario se conecta.
Esto significa que si quieres usarla como identificación de un único usuario en tu sistema, no te servirá porque múltiples usuarios conectados al mismo ISP exponen la misma IP pública. La otra, la de la PC conectada, es interna, privada del ISP y no se expone.
Si esa IP pública común te sirve, hay recursos simples para obtenerla. Esta es una función que puedes encontrar publicada en internet:
Código PHP:
Ver original
  1. function getRealIP() {
  2.         if (!empty($_SERVER['HTTP_CLIENT_IP']))
  3.             return $_SERVER['HTTP_CLIENT_IP'];
  4.            
  5.         if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
  6.             return $_SERVER['HTTP_X_FORWARDED_FOR'];
  7.        
  8.         return $_SERVER['REMOTE_ADDR'];
  9.     }
Para entender el funcionamiento de $_SERVER, te recomiendo leer el manual de referencia de PHP: http://www.php.net/manual/es/reserve...les.server.php
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 22/03/2014, 17:16
 
Fecha de Ingreso: julio-2013
Mensajes: 39
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Guardar IP en mysql

Gracias, si eso es lo que quiero, pero poco se de est, y quisiera saber como guardo el resultado en la base de datos, lo quiero guardar en un campo llamado, ip_comentario, y quisiera añadirlo al código que deje arriba, eso es lo que no logro
  #6 (permalink)  
Antiguo 22/03/2014, 20:06
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Guardar IP en mysql

Que tanto sabes de PHP?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #7 (permalink)  
Antiguo 22/03/2014, 21:13
 
Fecha de Ingreso: julio-2013
Mensajes: 39
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Guardar IP en mysql

la verdad estuve inactivo mucho tiempo y se me olvidaron muchas cosas
  #8 (permalink)  
Antiguo 22/03/2014, 21:45
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Guardar IP en mysql

Te hago entonces una pregunta mas..

Tu código de arriba recibe bien las variables y las inserta correctamente?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #9 (permalink)  
Antiguo 22/03/2014, 21:46
 
Fecha de Ingreso: julio-2013
Mensajes: 39
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Guardar IP en mysql

pues si, me funciona bien, ya se a que te refiere el name de los inputs esta mal, deberia ser

name="name_coment"
name="email_coment"
name="comentario_coment"

Última edición por DiegoAlonso; 22/03/2014 a las 21:49 Razón: faltaba una comilla
  #10 (permalink)  
Antiguo 22/03/2014, 21:55
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Guardar IP en mysql

pues captura la IP del usuario como te explican arriba, conviertela en variable y la añades junto con las demas... para ello deberias tener en tu base de datos una celda preparada.

Es lo mismo que estas haciendo solo que tendrás una variable mas para introducir... la captura de la variable que contiene la IP puedes tirarla desde el form con un campo HIDDEN o directamente lo capturas en el lugar que haces el insert tipo

Código PHP:
Ver original
  1. $ip= $_SERVER['HTTP_CLIENT_IP'];
  2.  
  3. //deberias ver cual te sirve, puede que sea el $_SERVER['REMOTE_ADDR'];
  4.  
  5. "INSERT INTO libro_visitas SET nombre = '".$_POST['name_coment']."', email = '".$_POST['email_coment']."', comentario = '".$_POST['comentario_coment']."', ip=$ip"
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #11 (permalink)  
Antiguo 22/03/2014, 21:57
 
Fecha de Ingreso: julio-2013
Mensajes: 39
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Guardar IP en mysql

Gracias, loncho, la verdad ya habia conseguido hacerlo de una forma, añadiendo un input invisible o HIDDEN pero no me gusto, ya que con chome pueden inspeccionar elemento y cambiar la IP y se guarda una falsa, gracias
  #12 (permalink)  
Antiguo 22/03/2014, 22:01
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Guardar IP en mysql

Pues seguramente tus usarios son programadores y seguramente todos sabes que guardas sus IP, entonces todos entraran a modificar sus datos

Al fin y al cabo es lo que hacen los usuarios normales, jajaja... pero no pueden modificar su IP... para eso puedes obtenerla directamente...

echo $_SERVER['REMOTE_ADDR'];

que te dice?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #13 (permalink)  
Antiguo 22/03/2014, 22:08
 
Fecha de Ingreso: julio-2013
Mensajes: 39
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Guardar IP en mysql

Ahora va perfecto: ip_comentario = '".$_SERVER["REMOTE_ADDR"]."' se guardan la IP en la DB, gracias loncho

Última edición por DiegoAlonso; 23/03/2014 a las 10:39 Razón: funcionando
  #14 (permalink)  
Antiguo 24/03/2014, 16:04
 
Fecha de Ingreso: marzo-2014
Mensajes: 1
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Guardar IP en mysql

Me gustó. Gracias!

Etiquetas: formulariophp, ip, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:00.