Migration SVN

This commit is contained in:
2016-02-21 14:28:40 +01:00
commit df45f10305
1455 changed files with 20440 additions and 0 deletions

152
system/api/myexception.api.php Executable file
View File

@@ -0,0 +1,152 @@
<?php
/**
* @class myException
* @brief Manage Exceptions
*
* @author Benjamin Mercier
* @data 01/03/2003
* @version 0.1
*/
class myException extends exception {
/**
* @brief Receive exceptions and manage it
* @param $exception_message -> Text generated by exception
*/
public function __construct($exception_message, $error_code = 0)
{
parent::__construct($exception_message);
$this->insertInLogFile($exception_message, $error_code);
}
/**
* @brief Insert data from exceptions in logfile
*/
public function insertInLogFile($exception_message, $error_code)
{
$get = null;
$post = null;
$session = null;
$included_files = null;
foreach ( $_GET as $key => $value ) {
$get .= "\n -> ".escapeshellcmd($key).' : '.$value;
}
if ( is_null($get) ) $get = 'none';
foreach ( $_POST as $key => $value ) {
$post .= "\n -> ".escapeshellcmd($key).' : '.$value;
}
if ( is_null($post) ) $post = 'none';
$files = get_included_files();
foreach ( $files as $key => $value ) {
$included_files .= "\n -> ".$key.' : '.$value;
}
if ( is_null($included_files) ) $included_files = 'none';
$message = "An error has been generated : \n";
$message .= "Warning : The content is protected, is not the reel content (POST,GET) !\n";
$message .= 'Date : '.date('Y-m-d H:i:s')."\n";
$message .= 'Error : '.$exception_message."\n";
$message .= 'File : '.$this->getFile()."\n";
$message .= 'Line : '.$this->getLine()."\n";
$message .= 'Code : '.$this->getCode()."\n";
if ( isset($_SERVER['HTTP_USER_AGENT']) ) $message .= 'Browser : '.@escapeshellcmd($_SERVER['HTTP_USER_AGENT'])."\n";
$message .= 'IP Address : '.$_SERVER['REMOTE_ADDR']."\n";
$message .= 'Call Page : '.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'?'.@escapeshellcmd($_SERVER['QUERY_STRING'])."\n";
$message .= 'Request method : '.$_SERVER['REQUEST_METHOD']."\n";
$message .= 'Request timer : '.$_SERVER['REQUEST_TIME']."\n";
if ( isset($_SERVER['HTTP_REFERER']) ) $message .= 'Referer : '.@escapeshellcmd($_SERVER['HTTP_REFERER'])."\n";
$message .= 'Script path : '.$_SERVER['SCRIPT_FILENAME']."\n";
$message .= 'GET value : '.$get."\n";
$message .= 'POST value : '.$post."\n";
$message .= 'Included files : '.$included_files."\n";
$message .= "Execution traces : \n".$this->getTraceAsString()."\n";
$message .= "---------------------------------------------------\n";
$message .= "\n\n";
$file_handle = fopen (PATH_LOGS.date('Y-m-d').'.log', 'a+');
if ( !$file_handle ) {
mail('root@kelio.org', 'CRITICAL ERROR !!', 'The logfile of exceptions can\'t be open !');
}
$file_writen = fwrite ( $file_handle, $message ) ;
if ( !$file_writen ) {
mail('root@kelio.org', 'CRITICAL ERROR !!', 'The logfile of exception can\'t be written !');
}
fclose($file_handle);
if ( defined('DEBUG') and (preg_match('`ajax.php`i',$_SERVER['PHP_SELF']) == 0) ) {
$unique_id = mt_rand(0,2500);
$echo = "<div style='font-color:red;width:90%;background-color:#91020b;margin:auto;margin-bottom:20px;padding:20px;color:#fff;' id='".$unique_id."'>";
$echo .= "An error has been generated : <br />\n";
$echo .= 'Error : <strong>'.nl2br($exception_message)."</strong><br />\n";
$echo .= 'File : <strong>'.$this->getFile()."</strong><br />\n";
$echo .= 'Line : <strong>'.$this->getLine()."</strong><br />\n";
$echo .= 'Code : <strong>'.$error_code."</strong><br />\n";
$echo .= "Trace :\n".nl2br($this->getTraceAsString())."<br /><br />\n";
$echo .= "<a href='javascript:;' style='color:#fff' onclick=\"$('#".$unique_id."-2').css('display', '');\">For see complete rapport, clic here</a><br />\n";
$echo .= "<a href='javascript:;' style='color:#fff' onclick=\"$('#".$unique_id."').css('display', 'none');\">For quit this error, clic here</a><br />\n";
$echo .= "<div style='display:none;color:#fff;margin-top:20px;margin-bottom:20px;width:100%;' id='".$unique_id."-2'>".nl2br($message)."</div><br />\n";
$echo .= "</div>\n\n\n\n";
echo $echo;
}
} // End of insertInLogFile
/**
* @brief Display HTML error
*/
public function displayErrorMessage()
{
@$page = file_get_contents(PAGE_CRITICAL_ERROR);
if ( !$page ) {
die(NOLOG_ERROR);
} else {
echo $page;
}
die();
} // End of displayErrorMessage
/**
* @brief Display 'critical_error' for ajax
*/
public function displayCriticalError()
{
echo 'critical_error';
die();
}
}
/**
* @brief Manage PHP error
*/
function myErrorHandler($type, $string, $file, $line, $context){
try {
switch ($type) {
case E_USER_WARNING:
throw new MyException("An PHP error has been generated :\n -> Error : ".$string."\n -> File : ".$file."\n -> Line : ".$line."\n -> Context : ".$context, -999);
break;
case E_USER_NOTICE:
throw new MyException("An PHP error has been generated :\n -> Error : ".$string."\n -> File : ".$file."\n -> Line : ".$line."\n -> Context : ".$context, -998);
break;
case E_WARNING:
throw new MyException("An PHP error has been generated :\n -> Error : ".$string."\n -> File : ".$file."\n -> Line : ".$line."\n -> Context : ".$context, -899);
break;
case E_NOTICE:
throw new MyException("An PHP error has been generated :\n -> Error : ".$string."\n -> File : ".$file."\n -> Line : ".$line."\n -> Context : ".$context, -898);
break;
case E_ERROR:
throw new MyException("An PHP error has been generated :\n -> Error : ".$string."\n -> File : ".$file."\n -> Line : ".$line."\n -> Context : ".$context, -797);
break;
default:
throw new MyException("An PHP error has been generated :\n -> Error : ".$string."\n -> File : ".$file."\n -> Line : ".$line."\n -> Context : ".$context, -797);
}
} catch ( MyException $oException ) {
}
}
set_error_handler("myErrorHandler");
?>