Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/05/2008, 13:11
Paninaro
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Valores NULL al escribir en fichero

Hola a todos,

Espero que alguien pueda ayudarme, porque estoy realmente desesperado

Quiero hacer un seguimiento de las visitas que tengo en una web, capturando cosas coma la IP, la hora, la fecha, etc.

Para ello llamo en cada página a una función PHP llamada "traza()" que obtiene y concatena todos los datos que quiero en una sola cadena y la escribe en un fichero de texto. La función recibe como único parámetro el título de la página (el contenido de la etiqueta <title></title>).

El problema está en que en aproximadamente el 5% de las escrituras que hace en el fichero, me escribe el valor NULL varias decenas de veces antes de escribir la cadena correcta. Este valor NULL lo he descubierto como tal con Notepad++, porque en el Notepad estándar de Windows aparecen como simples espacios en blanco. En EditPlus aparece como un caracter raro, como un cuadrado.

Viendo el fichero, no encuentro ningún patrón que explique cuándo escribe NULL y cuando no. Parece totalmente aleatorio

Aquí tenéis el código. Muchas gracias de antemano.


function traza($titulo){

// Separador entre valores
$spa=";";

// Obtener IP del cliente
$ip = $_SERVER['REMOTE_ADDR'];
// Obtener nombre del host del cliente
$nombredeip = gethostbyaddr($ip);
// Obtener fecha actual
$fecha = date("d\-m\-Y");
// Obtener la hora actual
$hora = date("H\:i\:s");
// Obtener dirección solicitada por el cliente
$pagina = $_SERVER['REQUEST_URI'];
// Obtener dirección origen del cliente
$referer = $_SERVER['HTTP_REFERER'];
if ($referer=="") $referer = "origen_desconocido";


// Concatenar la salida
$acceso=$ip.$spa.$nombredeip.$spa.$fecha.$spa.$hor a.$spa.$referer.$spa.$pagina.$spa.$titulo."\r\n";

// Abrir o crear el fichero
$descriptor = fopen("traza.txt","ab");

// Volcar la cadena concatenada en el fichero
fwrite($descriptor,$acceso);

// Cerrar fichero
fclose($descriptor);
}