本文整理汇总了PHP中phpbb_filter_root_path函数的典型用法代码示例。如果您正苦于以下问题:PHP phpbb_filter_root_path函数的具体用法?PHP phpbb_filter_root_path怎么用?PHP phpbb_filter_root_path使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了phpbb_filter_root_path函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: format_errors
function format_errors()
{
$text = '';
foreach ($this->errors as $error) {
if (!empty($text)) {
$text .= "<br />\n";
}
list($errno, $msg_text, $errfile, $errline) = $error;
// Prevent leakage of local path to phpBB install
$errfile = phpbb_filter_root_path($errfile);
$text .= "Errno {$errno}: {$msg_text} at {$errfile} line {$errline}";
}
return $text;
}
示例2: msg_handler
/**
* Error and message handler, call with trigger_error if read
*/
function msg_handler($errno, $msg_text, $errfile, $errline)
{
global $cache, $db, $auth, $template, $config, $user, $request;
global $phpEx, $phpbb_root_path, $msg_title, $msg_long_text;
// Do not display notices if we suppress them via @
if (error_reporting() == 0 && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE) {
return;
}
// Message handler is stripping text. In case we need it, we are possible to define long text...
if (isset($msg_long_text) && $msg_long_text && !$msg_text) {
$msg_text = $msg_long_text;
}
if (!defined('E_DEPRECATED')) {
define('E_DEPRECATED', 8192);
}
switch ($errno) {
case E_NOTICE:
case E_WARNING:
// Check the error reporting level and return if the error level does not match
// If DEBUG is defined the default level is E_ALL
if (($errno & (defined('DEBUG') ? E_ALL : error_reporting())) == 0) {
return;
}
if (strpos($errfile, 'cache') === false && strpos($errfile, 'template.') === false) {
$errfile = phpbb_filter_root_path($errfile);
$msg_text = phpbb_filter_root_path($msg_text);
$error_name = $errno === E_WARNING ? 'PHP Warning' : 'PHP Notice';
echo '<b>[phpBB Debug] ' . $error_name . '</b>: in file <b>' . $errfile . '</b> on line <b>' . $errline . '</b>: <b>' . $msg_text . '</b><br />' . "\n";
// we are writing an image - the user won't see the debug, so let's place it in the log
if (defined('IMAGE_OUTPUT') || defined('IN_CRON')) {
add_log('critical', 'LOG_IMAGE_GENERATION_ERROR', $errfile, $errline, $msg_text);
}
// echo '<br /><br />BACKTRACE<br />' . get_backtrace() . '<br />' . "\n";
}
return;
break;
case E_USER_ERROR:
if (!empty($user) && !empty($user->lang)) {
$msg_text = !empty($user->lang[$msg_text]) ? $user->lang[$msg_text] : $msg_text;
$msg_title = !isset($msg_title) ? $user->lang['GENERAL_ERROR'] : (!empty($user->lang[$msg_title]) ? $user->lang[$msg_title] : $msg_title);
$l_return_index = sprintf($user->lang['RETURN_INDEX'], '<a href="' . $phpbb_root_path . '">', '</a>');
$l_notify = '';
if (!empty($config['board_contact'])) {
$l_notify = '<p>' . sprintf($user->lang['NOTIFY_ADMIN_EMAIL'], $config['board_contact']) . '</p>';
}
} else {
$msg_title = 'General Error';
$l_return_index = '<a href="' . $phpbb_root_path . '">Return to index page</a>';
$l_notify = '';
if (!empty($config['board_contact'])) {
$l_notify = '<p>Please notify the board administrator or webmaster: <a href="mailto:' . $config['board_contact'] . '">' . $config['board_contact'] . '</a></p>';
}
}
$log_text = $msg_text;
$backtrace = get_backtrace();
if ($backtrace) {
$log_text .= '<br /><br />BACKTRACE<br />' . $backtrace;
}
if (defined('IN_INSTALL') || defined('DEBUG') || isset($auth) && $auth->acl_get('a_')) {
$msg_text = $log_text;
// If this is defined there already was some output
// So let's not break it
if (defined('IN_DB_UPDATE')) {
echo '<div class="errorbox">' . $msg_text . '</div>';
$db->sql_return_on_error(true);
phpbb_end_update($cache, $config);
}
}
if ((defined('IN_CRON') || defined('IMAGE_OUTPUT')) && isset($db)) {
// let's avoid loops
$db->sql_return_on_error(true);
add_log('critical', 'LOG_GENERAL_ERROR', $msg_title, $log_text);
$db->sql_return_on_error(false);
}
// Do not send 200 OK, but service unavailable on errors
send_status_line(503, 'Service Unavailable');
garbage_collection();
// Try to not call the adm page data...
echo '<!DOCTYPE html>';
echo '<html dir="ltr">';
echo '<head>';
echo '<meta charset="utf-8">';
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
echo '<title>' . $msg_title . '</title>';
echo '<style type="text/css">' . "\n" . '/* <![CDATA[ */' . "\n";
echo '* { margin: 0; padding: 0; } html { font-size: 100%; height: 100%; margin-bottom: 1px; background-color: #E4EDF0; } body { font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif; color: #536482; background: #E4EDF0; font-size: 62.5%; margin: 0; } ';
echo 'a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } ';
echo '#wrap { padding: 0 20px 15px 20px; min-width: 615px; } #page-header { text-align: right; height: 40px; } #page-footer { clear: both; font-size: 1em; text-align: center; } ';
echo '.panel { margin: 4px 0; background-color: #FFFFFF; border: solid 1px #A9B8C2; } ';
echo '#errorpage #page-header a { font-weight: bold; line-height: 6em; } #errorpage #content { padding: 10px; } #errorpage #content h1 { line-height: 1.2em; margin-bottom: 0; color: #DF075C; } ';
echo '#errorpage #content div { margin-top: 20px; margin-bottom: 5px; border-bottom: 1px solid #CCCCCC; padding-bottom: 5px; color: #333333; font: bold 1.2em "Lucida Grande", Arial, Helvetica, sans-serif; text-decoration: none; line-height: 120%; text-align: left; } ';
echo "\n" . '/* ]]> */' . "\n";
echo '</style>';
echo '</head>';
echo '<body id="errorpage">';
echo '<div id="wrap">';
echo ' <div id="page-header">';
//.........这里部分代码省略.........
示例3: stk_msg_handler
/**
* Support Toolkit Error handler
*
* A wrapper for the phpBB `msg_handler` function, which is mainly used
* to update variables before calling the actual msg_handler and is able
* to handle various special cases.
*
* @global type $stk_no_error
* @global string $phpbb_root_path
* @param type $errno
* @param string $msg_text
* @param type $errfile
* @param type $errline
* @return boolean
*/
function stk_msg_handler($errno, $msg_text, $errfile, $errline)
{
// First and foremost handle the case where phpBB calls trigger error
// but the STK really needs to continue.
global $critical_repair, $stk_no_error, $user;
if (!isset($user->lang['STK_FATAL_ERROR'])) {
stk_add_lang('common');
}
if ($stk_no_error === true) {
return true;
}
// Do not display notices if we suppress them via @
if (error_reporting() == 0 && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE) {
return;
}
if (!defined('E_DEPRECATED')) {
define('E_DEPRECATED', 8192);
}
// Ignore Strict and Deprecated notices
if (in_array($errno, array(E_STRICT, E_DEPRECATED))) {
return true;
}
// We encounter an error while in the ERK, this need some special treatment
$error_level = array(E_ERROR => 'Fatal error', E_WARNING => 'Runtime Error', E_PARSE => 'Parse error', E_NOTICE => 'Notice');
switch ($errno) {
case E_ERROR:
case E_PARSE:
case E_WARNING:
case E_NOTICE:
case E_CORE_ERROR:
case E_COMPILE_ERROR:
case E_USER_ERROR:
case E_RECOVERABLE_ERROR:
$backtrace = get_backtrace();
$msg_text = '<br /><b>[phpBB Debug] PHP ' . $error_level[$errno] . ':</b> in file ' . phpbb_filter_root_path($errfile) . ' on line <b>' . $errline . ': ' . $msg_text . '</b><br />' . $backtrace . '';
break;
default:
break;
}
if (defined('IN_ERK')) {
$critical_repair->trigger_error($msg_text, $errno == E_USER_ERROR ? false : true);
} else {
if (!defined('IN_STK')) {
// We're encountering an error before the STK is fully loaded
// Set out own message if needed
if ($errno == E_USER_ERROR) {
$msg_text = $user->lang['STK_FATAL_ERROR'];
}
if (!isset($critical_repair)) {
$critical_repair = new critical_repair();
}
$critical_repair->trigger_error($msg_text, $errno == E_USER_ERROR ? false : true);
}
}
//-- Normal phpBB msg_handler
global $cache, $db, $auth, $template, $config, $user;
global $phpEx, $phpbb_root_path, $msg_title, $msg_long_text;
// Message handler is stripping text. In case we need it, we are possible to define long text...
if (isset($msg_long_text) && $msg_long_text && !$msg_text) {
$msg_text = $msg_long_text;
}
if (!defined('E_DEPRECATED')) {
define('E_DEPRECATED', 8192);
}
switch ($errno) {
case E_NOTICE:
case E_WARNING:
// Check the error reporting level and return if the error level does not match
// If DEBUG is defined the default level is E_ALL
if (($errno & (defined('DEBUG') ? E_ALL : error_reporting())) == 0) {
return;
}
if (strpos($errfile, 'cache') === false && strpos($errfile, 'template.') === false) {
$errfile = stk_filter_root_path($errfile);
$msg_text = stk_filter_root_path($msg_text);
$error_name = $errno === E_WARNING ? 'PHP Warning' : 'PHP Notice';
echo '<b>[phpBB Debug] ' . $error_name . '</b>: in file <b>' . $errfile . '</b> on line <b>' . $errline . '</b>: <b>' . $msg_text . '</b><br />' . "\n";
// we are writing an image - the user won't see the debug, so let's place it in the log
if (defined('IMAGE_OUTPUT') || defined('IN_CRON')) {
add_log('critical', 'LOG_IMAGE_GENERATION_ERROR', $errfile, $errline, $msg_text);
}
echo '<br /><br />BACKTRACE<br />' . get_backtrace() . '<br />' . "\n";
}
return;
break;
//.........这里部分代码省略.........
示例4: xmlrpc_error_handler
function xmlrpc_error_handler($errno, $msg_text, $errfile, $errline)
{
global $auth, $user, $msg_long_text;
// Do not display notices if we suppress them via @
if (MOBIQUO_DEBUG == 0 && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE) {
return;
}
/*if(strpos($errfile, 'session.php') !== false)
{
return ;
}*/
if ($msg_text == 'NO_SEARCH_RESULTS') {
$response = search_func();
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" . $response->serialize('UTF-8');
exit;
}
// Message handler is stripping text. In case we need it, we are possible to define long text...
if (isset($msg_long_text) && $msg_long_text && !$msg_text) {
$msg_text = $msg_long_text;
}
if (!defined('E_DEPRECATED')) {
define('E_DEPRECATED', 8192);
}
switch ($errno) {
case E_NOTICE:
case E_WARNING:
// Check the error reporting level and return if the error level does not match
// If DEBUG is defined the default level is E_ALL
if (MOBIQUO_DEBUG == 0) {
return;
}
if (strpos($errfile, 'cache') === false && strpos($errfile, 'template.') === false) {
$errfile = phpbb_filter_root_path($errfile);
$msg_text = phpbb_filter_root_path($msg_text);
$error_name = $errno === E_WARNING ? 'PHP Warning' : 'PHP Notice';
echo '[phpBB Debug] ' . $error_name . ': in file ' . $errfile . ' on line ' . $errline . ': ' . $msg_text . "\n";
}
return;
break;
case E_USER_ERROR:
if (!empty($user) && !empty($user->lang)) {
$msg_text = !empty($user->lang[$msg_text]) ? $user->lang[$msg_text] : $msg_text;
}
garbage_collection();
break;
case E_USER_WARNING:
case E_USER_NOTICE:
define('IN_ERROR_HANDLER', true);
if (empty($user->data)) {
$user->session_begin();
}
// We re-init the auth array to get correct results on login/logout
$auth->acl($user->data);
if (empty($user->lang)) {
$user->setup();
}
if ($msg_text == 'ERROR_NO_ATTACHMENT' || $msg_text == 'NO_FORUM' || $msg_text == 'NO_TOPIC' || $msg_text == 'NO_USER') {
//send_status_line(404, 'Not Found');
}
$msg_text = !empty($user->lang[$msg_text]) ? $user->lang[$msg_text] : $msg_text;
break;
// PHP4 compatibility
// PHP4 compatibility
case E_DEPRECATED:
return true;
break;
}
if (in_array($errno, array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE))) {
$result = check_error_status($msg_text);
if (MOBIQUO_DEBUG == -1) {
$msg_text .= " > {$errfile}, {$errline}";
}
$response = new xmlrpcresp(new xmlrpcval(array('result' => new xmlrpcval($result, 'boolean'), 'result_text' => new xmlrpcval(basic_clean($msg_text), 'base64')), 'struct'));
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" . $response->serialize('UTF-8');
exit;
}
// If we notice an error not handled here we pass this back to PHP by returning false
// This may not work for all php versions
return false;
}