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);
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
?>
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];
}