Foros del Web » Programando para Internet » PHP »

problemas con funcion php

Estas en el tema de problemas con funcion php en el foro de PHP en Foros del Web. Lectores del foro Estoy intentando llamar una funcion a la hora de hacer un insert into , lo hago de la siguiente forma y no ...
  #1 (permalink)  
Antiguo 02/01/2012, 09:15
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
problemas con funcion php

Lectores del foro

Estoy intentando llamar una funcion a la hora de hacer un insert into , lo hago de la
siguiente forma y no me funciona:

Código PHP:
Ver original
  1. // saber ip real
  2. function getIP() {
  3.     if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  4.        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  5.     }
  6.     elseif (isset($_SERVER['HTTP_VIA'])) {
  7.        $ip = $_SERVER['HTTP_VIA'];
  8.     }
  9.     elseif (isset($_SERVER['REMOTE_ADDR'])) {
  10.        $ip = $_SERVER['REMOTE_ADDR'];
  11.     }
  12.     else {
  13.        $ip = "unknown";
  14.     }
  15.    
  16.     //echo "Tu IP es: $ip";
  17. }
  18.  
  19. //aca hago el insert
  20. $ip=getIP();
  21. $sql="INSERT INTO tabla (id,dato1,ip) VALUES ('$id','$dato1','$ip')";

espero puedan ayudarme .

Saludos y espero hayan pasado unas excelentes fiestas de año nuevo.
  #2 (permalink)  
Antiguo 02/01/2012, 09:17
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: problemas con funcion php

y que error te da?
y hace un echo $ip
  #3 (permalink)  
Antiguo 02/01/2012, 09:22
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas con funcion php

al hacer el echo me arroja bien la ip , pero al intentar insertar el valor me aparece vacio en la BD.

gracias
  #4 (permalink)  
Antiguo 02/01/2012, 09:29
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: problemas con funcion php

y estas ejecutando la consulta?
mysql_query($sql);
  #5 (permalink)  
Antiguo 02/01/2012, 09:32
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas con funcion php

Si la consulta funciona pero el problema es la funcion que no me carga el dato , estoy pasando por un proxy y no lograba conseguir la ip real con la funcion $_SERVER['REMOTE_ADDR'] .

igual pongo el resto del codigo

Código PHP:
Ver original
  1. $ip=getIP();
  2. $sql="INSERT INTO tabla (id,dato1,ip) VALUES ('$id','$dato1','$ip')";
  3. $resultado=mysql_query($sql,$link);

saludos
  #6 (permalink)  
Antiguo 02/01/2012, 09:34
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: problemas con funcion php

PERO, anda o no anda????
  #7 (permalink)  
Antiguo 02/01/2012, 09:36
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas con funcion php

El dato de la funcion no me carga . ahi esta mi problema . el campo de la ip aparece vacio .
  #8 (permalink)  
Antiguo 02/01/2012, 09:43
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: problemas con funcion php

BUENO hace esto:
echo $sql;

y pega el resultado en tu phpmyadmin y fijate que error te da?
  #9 (permalink)  
Antiguo 02/01/2012, 11:29
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas con funcion php

Bueno resolvi mi problema de la sigueinte forma

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. }
  18.  
  19.  
  20. $ip_real=getIP($ip);
  21.  
  22. $sql="INSERT INTO tabla (id,dato1,ip) VALUES ('$id','$dato1','$ip_real')";
  23. $resultado=mysql_query($sql,$link);

bueno espero a alguien le sirva .

saludos
  #10 (permalink)  
Antiguo 02/01/2012, 11:32
Avatar de Martriay  
Fecha de Ingreso: noviembre-2010
Mensajes: 80
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: problemas con funcion php

probá al final de tu función escribir esto:

return $ip;

y decime si funciona

Igual te recomiendo que no uses una función para eso, que corra el código solito, son pocas líneas y al ser elseif uno tras otro se saltea bastante del código, y no pareciera que lo reutilices, no hace falta una función.
Son mis consejos.
  #11 (permalink)  
Antiguo 02/01/2012, 11:34
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: problemas con funcion php

$ip_real=getIP($ip);

$ip no esta definida
  #12 (permalink)  
Antiguo 02/01/2012, 11:59
Avatar de Martriay  
Fecha de Ingreso: noviembre-2010
Mensajes: 80
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: problemas con funcion php

Repito, o borrás la función y dejás el contenido, es decir, esto:

Código PHP:
* * if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
* * * *
$ip $_SERVER['HTTP_X_FORWARDED_FOR'];
* * }
* * elseif (isset(
$_SERVER['HTTP_VIA'])) {
* * * *
$ip $_SERVER['HTTP_VIA'];
* * }
* * elseif (isset(
$_SERVER['REMOTE_ADDR'])) {
* * * *
$ip $_SERVER['REMOTE_ADDR'];
* * }
* * else {
* * * *
$ip "unknown";
* * }

$sql="INSERT INTO tabla (id,dato1,ip) VALUES ('$id','$dato1','$ip')"
o dejas la funcion, pero con un return

Código PHP:
function getIP() {
* * if (isset(
$_SERVER['HTTP_X_FORWARDED_FOR'])) {
* * * *
$ip $_SERVER['HTTP_X_FORWARDED_FOR'];
* * }
* * elseif (isset(
$_SERVER['HTTP_VIA'])) {
* * * *
$ip $_SERVER['HTTP_VIA'];
* * }
* * elseif (isset(
$_SERVER['REMOTE_ADDR'])) {
* * * *
$ip $_SERVER['REMOTE_ADDR'];
* * }
* * else {
* * * *
$ip "unknown";
* * }
* *
* *return 
$ip;
}
*

$ip=getIP();
$sql="INSERT INTO tabla (id,dato1,ip) VALUES ('$id','$dato1','$ip')"
  #13 (permalink)  
Antiguo 02/01/2012, 12:07
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas con funcion php

Martriay,

deje la función tal como mostre arriba en la solución de mi problema.

saludos
  #14 (permalink)  
Antiguo 02/01/2012, 12:26
Avatar de Martriay  
Fecha de Ingreso: noviembre-2010
Mensajes: 80
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: problemas con funcion php

Ah, no lo había visto

igual, te sigo recomendando que elijas una de las opciones que te dije, o cambiar esto:

Código PHP:
$ip_real=getIP($ip); 
por

Código PHP:
getIP(); 
así no creás una variable de más (ocupás memoria al pedo)

y la sql debería quedarte aśi:

Código PHP:
$sql="INSERT INTO tabla (id,dato1,ip) VALUES ('$id','$dato1','$ip')"
son consejos, si te funciona te funciona, pero yo lo haría así

saludos

Etiquetas: funcion, sql, tabla
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 21:39.