Buenas,
Estaba probando una función para crear tus propios errores PHP
http://www.stanford.edu/dept/its/com...andling_in_PHP
Pero cuando la pongo en un script forzando a que aparezca el error x ej. que no existe
time_stamp2() no me crea el fichero de error que le estoy especificando y me escribe en el fichero de log por defecto:
[12-Feb-2010 08:01:50] PHP Fatal error: Call to undefined function time_stamp2() in C:\AppServ\www\00-laboratorio_test\secciones\errores_php.php on line 161 errores_php.php
Código PHP:
Ver original<?
// Destinations
define("LOG_FILE", "mi_php_errors.log");
// Destination types
/**
* my_error_handler($errno, $errstr, $errfile, $errline)
*
* Author(s): thanosb, ddonahue
* Date: May 11, 2008
*
* custom error handler
*
* Parameters:
* $errno: Error level
* $errstr: Error message
* $errfile: File in which the error was raised
* $errline: Line at which the error occurred
*/
function my_error_handler($errno, $errstr, $errfile, $errline)
{
switch ($errno) {
case E_USER_ERROR:
// Send an e-mail to the administrator
error_log("Error: $errstr \n Fatal error on line $errline in file $errfile \n", DEST_EMAIL
, ADMIN_EMAIL
);
// Write the error to our log file
error_log("Error: $errstr \n Fatal error on line $errline in file $errfile \n", DEST_LOGFILE
, LOG_FILE
); break;
case E_USER_WARNING:
// Write the error to our log file
error_log("Warning: $errstr \n in $errfile on line $errline \n", DEST_LOGFILE
, LOG_FILE
); break;
case E_USER_NOTICE:
// Write the error to our log file
error_log("Notice: $errstr \n in $errfile on line $errline \n", DEST_LOGFILE
, LOG_FILE
); break;
default:
// Write the error to our log file
error_log("Unknown error [#$errno]: $errstr \n in $errfile on line $errline \n", DEST_LOGFILE
, LOG_FILE
); break;
}
// Don't execute PHP's internal error handler
return TRUE;
}
// Use set_error_handler() to tell PHP to use our method
?>
<?php
function time_stamp($session_time)
{
$time_difference = time() - $session_time ; $seconds = $time_difference ;
$minutes = round($time_difference / 60 ); $hours = round($time_difference / 3600 ); $days = round($time_difference / 86400 ); $weeks = round($time_difference / 604800 ); $months = round($time_difference / 2419200 ); $years = round($time_difference / 29030400 );
if($seconds <= 60)
{
echo"$seconds seconds ago";
}
else if($minutes <=60)
{
if($minutes==1)
{
echo"one minute ago";
}
else
{
echo"$minutes minutes ago";
}
}
else if($hours <=24)
{
if($hours==1)
{
echo"one hour ago";
}
else
{
echo"$hours hours ago";
}
}
else if($days <=7)
{
if($days==1)
{
echo"one day ago";
}
else
{
echo"$days days ago";
}
}
else if($weeks <=4)
{
if($weeks==1)
{
echo"one week ago";
}
else
{
echo"$weeks weeks ago";
}
}
else if($months <=12)
{
if($months==1)
{
echo"one month ago";
}
else
{
echo"$months months ago";
}
}
else
{
if($years==1)
{
echo"one year ago";
}
else
{
echo"$years years ago";
}
}
}
$session_time ="1264326122";
//$session_time=time();
echo "<h1>";
echo time_stamp2($session_time);
echo "</h1>";
?>
¿Sabéis si hay que cambiar alguna cosa más en el script?
Los efectos de definir las variables:
¿Solo se aplicarían a esta página o afectarían a todo el site?
Aprovecho el post para preguntaros tb si creéis mejor que los logs se guarden en una base de datos o en un fichero de texto.
http://www.stanford.edu/dept/its/com..._logs_with_PHP
Muchas gracias de antemano!