Server IP : 85.214.239.14 / Your IP : 18.119.133.214 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 : /proc/3/task/3/cwd/var/www/wordpress/phpMyAdmin/libraries/ |
Upload File : |
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Common includes for the database level views * * @package PhpMyAdmin */ declare(strict_types=1); use PhpMyAdmin\Core; use PhpMyAdmin\Message; use PhpMyAdmin\Operations; use PhpMyAdmin\Relation; use PhpMyAdmin\Response; use PhpMyAdmin\Url; use PhpMyAdmin\Util; if (! defined('PHPMYADMIN')) { exit; } Util::checkParameters(['db']); global $cfg; global $db; $response = Response::getInstance(); $is_show_stats = $cfg['ShowStats']; $db_is_system_schema = $GLOBALS['dbi']->isSystemSchema($db); if ($db_is_system_schema) { $is_show_stats = false; } $relation = new Relation($GLOBALS['dbi']); $operations = new Operations($GLOBALS['dbi'], $relation); /** * Defines the urls to return to in case of error in a sql statement */ $err_url_0 = 'index.php' . Url::getCommon(); $err_url = Util::getScriptNameForOption( $GLOBALS['cfg']['DefaultTabDatabase'], 'database' ) . Url::getCommon(['db' => $db]); /** * Ensures the database exists (else move to the "parent" script) and displays * headers */ if (! isset($is_db) || ! $is_db) { if (strlen($db) > 0) { $is_db = $GLOBALS['dbi']->selectDb($db); // This "Command out of sync" 2014 error may happen, for example // after calling a MySQL procedure; at this point we can't select // the db but it's not necessarily wrong if ($GLOBALS['dbi']->getError() && $GLOBALS['errno'] == 2014) { $is_db = true; unset($GLOBALS['errno']); } } else { $is_db = false; } // Not a valid db name -> back to the welcome page $params = ['reload' => '1']; if (isset($message)) { $params['message'] = $message; } $uri = './index.php' . Url::getCommonRaw($params); if (strlen($db) === 0 || ! $is_db) { $response = Response::getInstance(); if ($response->isAjax()) { $response->setRequestStatus(false); $response->addJSON( 'message', Message::error(__('No databases selected.')) ); } else { Core::sendHeaderLocation($uri); } exit; } } // end if (ensures db exists) /** * Changes database charset if requested by the user */ if (isset($_POST['submitcollation']) && isset($_POST['db_collation']) && ! empty($_POST['db_collation']) ) { list($db_charset) = explode('_', $_POST['db_collation']); $sql_query = 'ALTER DATABASE ' . Util::backquote($db) . ' DEFAULT' . Util::getCharsetQueryPart($_POST['db_collation']); $result = $GLOBALS['dbi']->query($sql_query); $message = Message::success(); /** * Changes tables charset if requested by the user */ if (isset($_POST['change_all_tables_collations']) && $_POST['change_all_tables_collations'] === 'on' ) { list($tables, , , , , , , ,) = Util::getDbInfo($db, null); foreach ($tables as $tableName => $data) { if ($GLOBALS['dbi']->getTable($db, $tableName)->isView()) { // Skip views, we can not change the collation of a view. // issue #15283 continue; } $sql_query = 'ALTER TABLE ' . Util::backquote($db) . '.' . Util::backquote($tableName) . ' DEFAULT ' . Util::getCharsetQueryPart($_POST['db_collation']); $GLOBALS['dbi']->query($sql_query); /** * Changes columns charset if requested by the user */ if (isset($_POST['change_all_tables_columns_collations']) && $_POST['change_all_tables_columns_collations'] === 'on' ) { $operations->changeAllColumnsCollation($db, $tableName, $_POST['db_collation']); } } } unset($db_charset); /** * If we are in an Ajax request, let us stop the execution here. Necessary for * db charset change action on db_operations.php. If this causes a bug on * other pages, we might have to move this to a different location. */ if ($response->isAjax()) { $response->setRequestStatus($message->isSuccess()); $response->addJSON('message', $message); exit; } } elseif (isset($_POST['submitcollation']) && isset($_POST['db_collation']) && empty($_POST['db_collation']) ) { $response = Response::getInstance(); if ($response->isAjax()) { $response->setRequestStatus(false); $response->addJSON( 'message', Message::error(__('No collation provided.')) ); } } /** * Set parameters for links */ $url_query = Url::getCommon(['db' => $db]);