Server IP : 85.214.239.14 / Your IP : 13.58.61.176 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /var/www/wordpress/phpMyAdmin/ |
Upload File : |
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Handle error report submission * * @package PhpMyAdmin */ declare(strict_types=1); use PhpMyAdmin\ErrorReport; use PhpMyAdmin\Message; use PhpMyAdmin\Response; use PhpMyAdmin\UserPreferences; use PhpMyAdmin\Utils\HttpRequest; if (! defined('ROOT_PATH')) { define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); } require_once ROOT_PATH . 'libraries/common.inc.php'; if (! isset($_POST['exception_type']) || ! in_array($_POST['exception_type'], ['js', 'php']) ) { die('Oops, something went wrong!!'); } $response = Response::getInstance(); /** @var ErrorReport $errorReport */ $errorReport = $containerBuilder->get('error_report'); if (isset($_POST['send_error_report']) && ($_POST['send_error_report'] == true || $_POST['send_error_report'] == '1') ) { if ($_POST['exception_type'] == 'php') { /** * Prevent infinite error submission. * Happens in case error submissions fails. * If reporting is done in some time interval, * just clear them & clear json data too. */ if (isset($_SESSION['prev_error_subm_time']) && isset($_SESSION['error_subm_count']) && $_SESSION['error_subm_count'] >= 3 && ($_SESSION['prev_error_subm_time'] - time()) <= 3000 ) { $_SESSION['error_subm_count'] = 0; $_SESSION['prev_errors'] = ''; $response->addJSON('stopErrorReportLoop', '1'); } else { $_SESSION['prev_error_subm_time'] = time(); $_SESSION['error_subm_count'] = ( isset($_SESSION['error_subm_count']) ? ($_SESSION['error_subm_count'] + 1) : 0 ); } } $reportData = $errorReport->getData($_POST['exception_type']); // report if and only if there were 'actual' errors. if (count($reportData) > 0) { $server_response = $errorReport->send($reportData); if (! is_string($server_response)) { $success = false; } else { $decoded_response = json_decode($server_response, true); $success = ! empty($decoded_response) ? $decoded_response["success"] : false; } /* Message to show to the user */ if ($success) { if ((isset($_POST['automatic']) && $_POST['automatic'] === "true") || $GLOBALS['cfg']['SendErrorReports'] == 'always' ) { $msg = __( 'An error has been detected and an error report has been ' . 'automatically submitted based on your settings.' ); } else { $msg = __('Thank you for submitting this report.'); } } else { $msg = __( 'An error has been detected and an error report has been ' . 'generated but failed to be sent.' ) . ' ' . __( 'If you experience any ' . 'problems please submit a bug report manually.' ); } $msg .= ' ' . __('You may want to refresh the page.'); /* Create message object */ if ($success) { $msg = Message::notice($msg); } else { $msg = Message::error($msg); } /* Add message to response */ if ($response->isAjax()) { if ($_POST['exception_type'] == 'js') { $response->addJSON('message', $msg); } else { $response->addJSON('errSubmitMsg', $msg); } } elseif ($_POST['exception_type'] == 'php') { $jsCode = 'Functions.ajaxShowMessage("<div class=\"error\">' . $msg . '</div>", false);'; $response->getFooter()->getScripts()->addCode($jsCode); } if ($_POST['exception_type'] == 'php') { // clear previous errors & save new ones. $GLOBALS['error_handler']->savePreviousErrors(); } /* Persist always send settings */ if (isset($_POST['always_send']) && $_POST['always_send'] === "true" ) { $userPreferences = new UserPreferences(); $userPreferences->persistOption("SendErrorReports", "always", "ask"); } } } elseif (! empty($_POST['get_settings'])) { $response->addJSON('report_setting', $GLOBALS['cfg']['SendErrorReports']); } elseif ($_POST['exception_type'] == 'js') { $response->addHTML($errorReport->getForm()); } else { // clear previous errors & save new ones. $GLOBALS['error_handler']->savePreviousErrors(); }