Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /* +-----------------------------------------------------------------------+ | Th..
Decoded Output download
<?php
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
| |
| Copyright (C) The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
| PURPOSE: |
| Display error message page |
+-----------------------------------------------------------------------+
| Author: Thomas Bruederli <[email protected]> |
+-----------------------------------------------------------------------+
*/
class rcmail_action_utils_error extends rcmail_action
{
/**
* Request handler.
*
* @param array $args Arguments from the previous step(s)
*/
#[Override]
public function run($args = [])
{
$rcmail = rcmail::get_instance();
$ERROR_CODE = !empty($args['code']) ? $args['code'] : 500;
$ERROR_MESSAGE = !empty($args['message']) ? $args['message'] : null;
// authorization error
if ($ERROR_CODE == 401) {
$error_title = $rcmail->gettext('errauthorizationfailed');
$error_text = nl2br($rcmail->gettext('errunauthorizedexplain')
. "
" . $rcmail->gettext('errcontactserveradmin'));
}
// forbidden due to request check
elseif ($ERROR_CODE == 403) {
if ($_SERVER['REQUEST_METHOD'] == 'GET' && $rcmail->request_status == rcube::REQUEST_ERROR_URL) {
$url = $rcmail->url($_GET, true, false, true);
$add = html::a($url, $rcmail->gettext('clicktoresumesession'));
} else {
$add = $rcmail->gettext('errcontactserveradmin');
}
$error_title = $rcmail->gettext('errrequestcheckfailed');
$error_text = nl2br($rcmail->gettext('errcsrfprotectionexplain')) . '<p>' . $add . '</p>';
}
// failed request (wrong step in URL)
elseif ($ERROR_CODE == 404) {
$request_url = htmlentities($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
$error_title = $rcmail->gettext('errnotfound');
$error_text = nl2br($rcmail->gettext('errnotfoundexplain')
. "
" . $rcmail->gettext('errcontactserveradmin'));
$error_text .= '<p><i>' . $rcmail->gettext('errfailedrequest') . ": {$request_url}</i></p>";
}
// Gone, e.g. message cached but not in the storage
elseif ($ERROR_CODE == 410) {
$error_title = $rcmail->gettext('servererror');
$error_text = $rcmail->gettext('messageopenerror');
}
// invalid compose ID
elseif ($ERROR_CODE == 450 && $_SERVER['REQUEST_METHOD'] == 'GET' && $rcmail->action == 'compose') {
$url = $rcmail->url('compose');
$error_title = $rcmail->gettext('errcomposesession');
$error_text = nl2br($rcmail->gettext('errcomposesessionexplain'))
. '<p>' . html::a($url, $rcmail->gettext('clicktocompose')) . '</p>';
}
// database connection error
elseif ($ERROR_CODE == 601) {
$error_title = 'Configuration error';
$error_text = nl2br($ERROR_MESSAGE) . '<br />Please read the INSTALL instructions!';
}
// database connection error
elseif ($ERROR_CODE == 603) {
$error_title = $rcmail->gettext('dberror');
$error_text = nl2br($rcmail->gettext('dbconnerror') . "
" . $rcmail->gettext('errcontactserveradmin'));
}
// system error
else {
$error_title = $rcmail->gettext('servererror');
$error_text = sprintf('Error No. [%s]', $ERROR_CODE);
}
// inform plugins
// @phpstan-ignore-next-line
if ($rcmail->plugins) {
$plugin = $rcmail->plugins->exec_hook('error_page', [
'code' => $ERROR_CODE,
'title' => $error_title,
'text' => $error_text,
]);
if (!empty($plugin['title'])) {
$error_title = $plugin['title'];
}
if (!empty($plugin['text'])) {
$error_text = $plugin['text'];
}
}
$HTTP_ERR_CODE = $ERROR_CODE < 600 ? $ERROR_CODE : 500;
// Ajax request
if ($rcmail->output && $rcmail->output->type == 'js') {
$rcmail->output->sendExit('', ["HTTP/1.0 {$HTTP_ERR_CODE} {$error_title}"]);
}
// compose page content
$page_content = '<div class="boxerror">'
. '<h3 class="error-title">' . mb_strtoupper($error_title) . '</h3>'
. '<div class="error-text">' . $error_text . '</div>'
. '</div>';
if ($rcmail->output && $rcmail->output->template_exists('error')) {
$GLOBALS['__page_content'] = $page_content;
$task = empty($rcmail->user) || empty($rcmail->user->ID) ? '-login' : '';
$rcmail->output->reset();
$rcmail->output->set_env('error_task', 'error' . $task);
$rcmail->output->set_env('server_error', $ERROR_CODE);
$rcmail->output->set_env('comm_path', $rcmail->comm_path);
$rcmail->output->send('error');
}
$skin = $rcmail->config->get('skin', 'default');
$product = $rcmail->config->get('product_name', 'Roundcube Webmail');
$output = '<!doctype html><html><head>'
. '<title>' . $product . ':: ERROR</title>'
. '</head><body>'
. '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="80%">'
. '<tr><td align="center">' . $page_content . '</td></tr>'
. '</table>'
. '</body></html>';
$rcmail->output->sendExit($output);
}
}
?>
Did this file decode correctly?
Original Code
<?php
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
| |
| Copyright (C) The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
| PURPOSE: |
| Display error message page |
+-----------------------------------------------------------------------+
| Author: Thomas Bruederli <[email protected]> |
+-----------------------------------------------------------------------+
*/
class rcmail_action_utils_error extends rcmail_action
{
/**
* Request handler.
*
* @param array $args Arguments from the previous step(s)
*/
#[Override]
public function run($args = [])
{
$rcmail = rcmail::get_instance();
$ERROR_CODE = !empty($args['code']) ? $args['code'] : 500;
$ERROR_MESSAGE = !empty($args['message']) ? $args['message'] : null;
// authorization error
if ($ERROR_CODE == 401) {
$error_title = $rcmail->gettext('errauthorizationfailed');
$error_text = nl2br($rcmail->gettext('errunauthorizedexplain')
. "\n" . $rcmail->gettext('errcontactserveradmin'));
}
// forbidden due to request check
elseif ($ERROR_CODE == 403) {
if ($_SERVER['REQUEST_METHOD'] == 'GET' && $rcmail->request_status == rcube::REQUEST_ERROR_URL) {
$url = $rcmail->url($_GET, true, false, true);
$add = html::a($url, $rcmail->gettext('clicktoresumesession'));
} else {
$add = $rcmail->gettext('errcontactserveradmin');
}
$error_title = $rcmail->gettext('errrequestcheckfailed');
$error_text = nl2br($rcmail->gettext('errcsrfprotectionexplain')) . '<p>' . $add . '</p>';
}
// failed request (wrong step in URL)
elseif ($ERROR_CODE == 404) {
$request_url = htmlentities($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
$error_title = $rcmail->gettext('errnotfound');
$error_text = nl2br($rcmail->gettext('errnotfoundexplain')
. "\n" . $rcmail->gettext('errcontactserveradmin'));
$error_text .= '<p><i>' . $rcmail->gettext('errfailedrequest') . ": {$request_url}</i></p>";
}
// Gone, e.g. message cached but not in the storage
elseif ($ERROR_CODE == 410) {
$error_title = $rcmail->gettext('servererror');
$error_text = $rcmail->gettext('messageopenerror');
}
// invalid compose ID
elseif ($ERROR_CODE == 450 && $_SERVER['REQUEST_METHOD'] == 'GET' && $rcmail->action == 'compose') {
$url = $rcmail->url('compose');
$error_title = $rcmail->gettext('errcomposesession');
$error_text = nl2br($rcmail->gettext('errcomposesessionexplain'))
. '<p>' . html::a($url, $rcmail->gettext('clicktocompose')) . '</p>';
}
// database connection error
elseif ($ERROR_CODE == 601) {
$error_title = 'Configuration error';
$error_text = nl2br($ERROR_MESSAGE) . '<br />Please read the INSTALL instructions!';
}
// database connection error
elseif ($ERROR_CODE == 603) {
$error_title = $rcmail->gettext('dberror');
$error_text = nl2br($rcmail->gettext('dbconnerror') . "\n" . $rcmail->gettext('errcontactserveradmin'));
}
// system error
else {
$error_title = $rcmail->gettext('servererror');
$error_text = sprintf('Error No. [%s]', $ERROR_CODE);
}
// inform plugins
// @phpstan-ignore-next-line
if ($rcmail->plugins) {
$plugin = $rcmail->plugins->exec_hook('error_page', [
'code' => $ERROR_CODE,
'title' => $error_title,
'text' => $error_text,
]);
if (!empty($plugin['title'])) {
$error_title = $plugin['title'];
}
if (!empty($plugin['text'])) {
$error_text = $plugin['text'];
}
}
$HTTP_ERR_CODE = $ERROR_CODE < 600 ? $ERROR_CODE : 500;
// Ajax request
if ($rcmail->output && $rcmail->output->type == 'js') {
$rcmail->output->sendExit('', ["HTTP/1.0 {$HTTP_ERR_CODE} {$error_title}"]);
}
// compose page content
$page_content = '<div class="boxerror">'
. '<h3 class="error-title">' . mb_strtoupper($error_title) . '</h3>'
. '<div class="error-text">' . $error_text . '</div>'
. '</div>';
if ($rcmail->output && $rcmail->output->template_exists('error')) {
$GLOBALS['__page_content'] = $page_content;
$task = empty($rcmail->user) || empty($rcmail->user->ID) ? '-login' : '';
$rcmail->output->reset();
$rcmail->output->set_env('error_task', 'error' . $task);
$rcmail->output->set_env('server_error', $ERROR_CODE);
$rcmail->output->set_env('comm_path', $rcmail->comm_path);
$rcmail->output->send('error');
}
$skin = $rcmail->config->get('skin', 'default');
$product = $rcmail->config->get('product_name', 'Roundcube Webmail');
$output = '<!doctype html><html><head>'
. '<title>' . $product . ':: ERROR</title>'
. '</head><body>'
. '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="80%">'
. '<tr><td align="center">' . $page_content . '</td></tr>'
. '</table>'
. '</body></html>';
$rcmail->output->sendExit($output);
}
}
Function Calls
None |
Stats
MD5 | 92cc2d60d8ac4867ea230091a0c2dbf5 |
Eval Count | 0 |
Decode Time | 105 ms |