Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/08/2005, 04:55
Spyn_ET
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 4 meses
Puntos: 0
Problema con la obtencion de la IP

buenas resulta q tengo esta codigo q me devuelve la IP del usuario.
Código PHP:
error_reporting(0);
if (
$HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] != "")
{
   
$IP_REAL $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']; // Muestra la IP real del usuario, es decir, la Pública
   
$IP_PROXY $HTTP_SERVER_VARS['REMOTE_ADDR']; // Muestra la IP de un posible Proxy
   
$ip $IP_REAL ;
}
else
{
   
$IP_REAL $HTTP_SERVER_VARS["REMOTE_ADDR"]; // En caso de que no exista un Proxy solo mostrara la IP Publica del visitante
   
$ip $IP_REAL  ;
}
error_reporting(1); 
Le pongo el error_reporting(0) para evitar los problemas con la varialbe 'HTTP_X_FORWARDED_FOR.

El problema es q lo estoy usando en 2 paginas dentro del mismo sitio y es exactamente el mismo codigo, pero en una si me introduce la direccion IP en la BD y en otra no.

Os pongo las 2 paginas a ver si veis algo q yo no veo.
visitas.php
Código PHP:
<?
$pag 
$_SERVER['PHP_SELF'];
error_reporting(0);
if (
$HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] != "")
{
   
$IP_REAL $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']; // Muestra la IP real del usuario, es decir, la Pública
   
$IP_PROXY $HTTP_SERVER_VARS['REMOTE_ADDR']; // Muestra la IP de un posible Proxy
   
$ip $IP_REAL ;
}
else
{
   
$IP_REAL $HTTP_SERVER_VARS["REMOTE_ADDR"]; // En caso de que no exista un Proxy solo mostrara la IP Publica del visitante
   
$ip $IP_REAL  ;
}
error_reporting(1);
$day strftime("%d");
$mes strftime("%b");
$datecheck "SELECT * FROM ".PREFIX."_day_visit WHERE day='$day' && mes='$mes' ";  //Accedemos a la base de datos day_visit
$dateresult $db->query($datecheck) or die("Error en la consulta datecheck");
$reg $db->fetch_array ($dateresult);
$thisnum $reg['num'];
$que1 "SELECT * FROM ".PREFIX."_ip_logs  "//Accedemos a la base de datos de ips
$res1 $db->query($que1) or die("NOOOOO");
while(
$regok $db->fetch_array ($res1))
{
    
$xip $regok['ip'];
    
$xday $regok['dia'];
    
$xmes $regok['mes'];
    
$xnum $regok['ip_num'];
    if ((
$xip==$ip) && ($xday==$day) && ($xmes==$mes)) { $cont 'si';}
}
if (
$cont=='si'//Control de Ip
{
   
$plusnum $thisnum;
}
 else
{
    
$user = (isset($_SESSION['user']))?$_SESSION['user']:'-1';
   
$db->query("INSERT INTO ".PREFIX."_ip_logs (ip, dia, mes, ip_num,user) values ('$ip', '$day', '$mes', '','$user')");
   
$plusnum $thisnum+1;
}

//Fin control IP
?>
funciones.php
Código PHP:
//DevIP();
//Funcion:        Funcion q devuelve la IP de un usuario
//Devuelve:        IP del usuario.
function DevIP()
{
error_reporting(0);
if (
$HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] != "")
{
   
$IP_REAL $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']; // Muestra la IP real del usuario, es decir, la Pública
   
$IP_PROXY $HTTP_SERVER_VARS['REMOTE_ADDR']; // Muestra la IP de un posible Proxy
   
$ip $IP_REAL ;
}
else
{
   
$IP_REAL $HTTP_SERVER_VARS["REMOTE_ADDR"]; // En caso de que no exista un Proxy solo mostrara la IP Publica del visitante
   
$ip $IP_REAL  ;
}
error_reporting(1);
    return 
$ip;
}

function 
LogueaError($tipo,$msg_error)
{
    global 
$db;
    
$usuario = (isset($_SESSION['user']))?DevValUser($_SESSION['user'],"nombre"):DevIp();
    
$now date("Y-m-d H:i:s");
    
$result $db->query("INSERT INTO `".PREFIX."_log` VALUES ('', '$now', '$usuario', '$tipo', '$msg_error');");
}

//DevValUser();
//Funcion:        Devuelve un atributo de un usuario
//Parámetros:    $id    -> El id del usuario.
//                $att-> Atributo a mostrar.
//Devuelve:        El valor del usuario.
function DevValUser($id$att)
{
    global 
$db;
    
$result $db->query("SELECT $att FROM ".PREFIX."_usuario WHERE id='$id'");
    
$row $db->fetch_row($result);
    return 
$row[0];

Un saludo y gracias.
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco