diff --git a/db_qbe.php b/db_qbe.php index 4f5f3737b5..a85f7af2c9 100644 --- a/db_qbe.php +++ b/db_qbe.php @@ -100,7 +100,7 @@ if (isset($_POST['submit_sql']) && ! empty($sql_query)) { if (0 !== stripos($sql_query, "SELECT")) { $message_to_display = true; } else { - $goto = 'db_sql.php'; + $goto = Url::getFromRoute('/database/sql'); $sql = new Sql(); $sql->executeQueryAndSendQueryResponse( null, // analyzed_sql_results diff --git a/import.php b/import.php index f15e8a1649..27aedf6bfb 100644 --- a/import.php +++ b/import.php @@ -295,7 +295,7 @@ if ($import_type == 'table') { } elseif (strlen($db) > 0) { $goto = Url::getFromRoute('/database/structure'); } else { - $goto = 'server_sql.php'; + $goto = Url::getFromRoute('/server/sql'); } } $err_url = $goto . Url::getCommon($urlparams); diff --git a/index.php b/index.php index 777aa06852..2372054557 100644 --- a/index.php +++ b/index.php @@ -32,6 +32,9 @@ if (isset($_GET['route']) || isset($_POST['route'])) { $routes->addRoute(['GET', 'POST'], '/search', function () { require_once ROOT_PATH . 'libraries/entry_points/database/search.php'; }); + $routes->addRoute(['GET', 'POST'], '/sql', function () { + require_once ROOT_PATH . 'db_sql.php'; + }); $routes->addRoute(['GET', 'POST'], '/structure', function () { require_once ROOT_PATH . 'libraries/entry_points/database/structure.php'; }); @@ -55,6 +58,9 @@ if (isset($_GET['route']) || isset($_POST['route'])) { $routes->addRoute(['GET', 'POST'], '/privileges', function () { require_once ROOT_PATH . 'libraries/entry_points/server/privileges.php'; }); + $routes->addRoute(['GET', 'POST'], '/sql', function () { + require_once ROOT_PATH . 'server_sql.php'; + }); $routes->addGroup('/status', function (RouteCollector $routes) { $routes->addRoute('GET', '', function () { require_once ROOT_PATH . 'libraries/entry_points/server/status.php'; @@ -67,6 +73,9 @@ if (isset($_GET['route']) || isset($_POST['route'])) { require_once ROOT_PATH . 'libraries/entry_points/server/variables.php'; }); }); + $routes->addRoute(['GET', 'POST'], '/sql', function () { + require_once ROOT_PATH . 'sql.php'; + }); $routes->addGroup('/table', function (RouteCollector $routes) { $routes->addRoute(['GET', 'POST'], '/change', function () { require_once ROOT_PATH . 'libraries/entry_points/table/change.php'; @@ -74,6 +83,9 @@ if (isset($_GET['route']) || isset($_POST['route'])) { $routes->addRoute(['GET', 'POST'], '/search', function () { require_once ROOT_PATH . 'libraries/entry_points/table/select.php'; }); + $routes->addRoute(['GET', 'POST'], '/sql', function () { + require_once ROOT_PATH . 'tbl_sql.php'; + }); $routes->addRoute(['GET', 'POST'], '/structure', function () { require_once ROOT_PATH . 'libraries/entry_points/table/structure.php'; }); diff --git a/js/ajax.js b/js/ajax.js index 469ecf1470..8760b548b7 100644 --- a/js/ajax.js +++ b/js/ajax.js @@ -543,9 +543,9 @@ var AJAX = { var source = data.selflink.split('?')[0]; // Check for faulty links var $selflinkReplace = { - 'import.php': 'tbl_sql.php', - 'tbl_chart.php': 'sql.php', - 'tbl_gis_visualization.php': 'sql.php' + 'import.php': 'index.php?route=/table/sql', + 'tbl_chart.php': 'index.php?route=/sql', + 'tbl_gis_visualization.php': 'index.php?route=/sql' }; if ($selflinkReplace[source]) { var replacement = $selflinkReplace[source]; diff --git a/js/designer/move.js b/js/designer/move.js index f4211cfb7e..ec0aef8693 100644 --- a/js/designer/move.js +++ b/js/designer/move.js @@ -564,7 +564,7 @@ DesignerMove.addOtherDbTables = function () { var $selectTable = $(''); $selectTable.append(''); - $.post('sql.php', { + $.post('index.php?route=/sql', { 'ajax_request' : true, 'sql_query' : 'SHOW databases;', 'server': CommonParams.get('server') @@ -594,7 +594,7 @@ DesignerMove.addOtherDbTables = function () { if ($(this).val()) { var dbName = $(this).val(); var sqlQuery = 'SHOW tables;'; - $.post('sql.php', { + $.post('index.php?route=/sql', { 'ajax_request' : true, 'sql_query': sqlQuery, 'db' : dbName, diff --git a/js/functions.js b/js/functions.js index d2155ed80e..757f3aec47 100644 --- a/js/functions.js +++ b/js/functions.js @@ -1733,7 +1733,7 @@ Functions.loadForeignKeyCheckbox = function () { 'server': CommonParams.get('server'), 'get_default_fk_check_value': true }; - $.get('sql.php', params, function (data) { + $.get('index.php?route=/sql', params, function (data) { var html = '' + '' + diff --git a/js/makegrid.js b/js/makegrid.js index 8780c95c60..9cb452b50d 100644 --- a/js/makegrid.js +++ b/js/makegrid.js @@ -392,7 +392,7 @@ var makeGrid = function (t, enableResize, enableReorder, enableVisib, enableGrid if (g.colVisib.length > 0) { $.extend(postParams, { 'col_visib': g.colVisib.toString() }); } - $.post('sql.php', postParams, function (data) { + $.post('index.php?route=/sql', postParams, function (data) { if (data.success !== true) { var $tempDiv = $(document.createElement('div')); $tempDiv.html(data.error); @@ -889,7 +889,7 @@ var makeGrid = function (t, enableResize, enableReorder, enableVisib, enableGrid 'relation_key_or_display_column' : relationKeyOrDisplayColumn }; - g.lastXHR = $.post('sql.php', postParams, function (data) { + g.lastXHR = $.post('index.php?route=/sql', postParams, function (data) { g.lastXHR = null; $editArea.removeClass('edit_area_loading'); if ($(data.dropdown).is('select')) { @@ -933,7 +933,7 @@ var makeGrid = function (t, enableResize, enableReorder, enableVisib, enableGrid 'column' : fieldName, 'curr_value' : currValue }; - g.lastXHR = $.post('sql.php', postParams, function (data) { + g.lastXHR = $.post('index.php?route=/sql', postParams, function (data) { g.lastXHR = null; $editArea.removeClass('edit_area_loading'); $editArea.append(data.dropdown); @@ -973,7 +973,7 @@ var makeGrid = function (t, enableResize, enableReorder, enableVisib, enableGrid }; } - g.lastXHR = $.post('sql.php', postParams, function (data) { + g.lastXHR = $.post('index.php?route=/sql', postParams, function (data) { g.lastXHR = null; $editArea.removeClass('edit_area_loading'); $editArea.append(data.select); @@ -1012,7 +1012,7 @@ var makeGrid = function (t, enableResize, enableReorder, enableVisib, enableGrid var sqlQuery = 'SELECT `' + fieldName + '` FROM `' + g.table + '` WHERE ' + whereClause; // Make the Ajax call and get the data, wrap it and insert it - g.lastXHR = $.post('sql.php', { + g.lastXHR = $.post('index.php?route=/sql', { 'server' : g.server, 'db' : g.db, 'ajax_request' : true, @@ -1310,7 +1310,7 @@ var makeGrid = function (t, enableResize, enableReorder, enableVisib, enableGrid 'do_transformations' : transformationFields, 'transform_fields_list' : transformFieldsList, 'relational_display' : relationalDisplay, - 'goto' : 'sql.php', + 'goto' : encodeURIComponent('index.php?route=/sql'), 'submit_type' : 'save' }; diff --git a/js/multi_column_sort.js b/js/multi_column_sort.js index 1d835cf1dd..1f78e9a6cd 100644 --- a/js/multi_column_sort.js +++ b/js/multi_column_sort.js @@ -11,7 +11,7 @@ function captureURL (url) { var newUrl = '' + url; var URL = {}; // Exclude the url part till HTTP - newUrl = newUrl.substr(newUrl.search('sql.php'), newUrl.length); + newUrl = newUrl.substr(newUrl.search('index.php?route=/sql'), newUrl.length); // The url part between ORDER BY and &session_max_rows needs to be replaced. URL.head = newUrl.substr(0, newUrl.indexOf('ORDER+BY') + 9); URL.tail = newUrl.substr(newUrl.indexOf('&session_max_rows'), newUrl.length); @@ -67,7 +67,7 @@ AJAX.registerOnload('keyhandler.js', function () { AJAX.source = $(this); Functions.ajaxShowMessage(); params += argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true'; - $.post('sql.php', params, AJAX.responseHandler); + $.post('index.php?route=/sql', params, AJAX.responseHandler); } } else if (event.shiftKey) { event.preventDefault(); @@ -75,7 +75,7 @@ AJAX.registerOnload('keyhandler.js', function () { Functions.ajaxShowMessage(); params = url.substring(url.indexOf('?') + 1); params += argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true'; - $.post('sql.php', params, AJAX.responseHandler); + $.post('index.php?route=/sql', params, AJAX.responseHandler); } }); }); diff --git a/js/normalization.js b/js/normalization.js index 982ce6ed08..f75ea5fa96 100644 --- a/js/normalization.js +++ b/js/normalization.js @@ -553,7 +553,7 @@ AJAX.registerOnload('normalization.js', function () { $.post('tbl_addfield.php', datastring, function (data) { if (data.success) { $.post( - 'sql.php', + 'index.php?route=/sql', { 'ajax_request': true, 'db': CommonParams.get('db'), @@ -640,7 +640,7 @@ AJAX.registerOnload('normalization.js', function () { }); dropQuery = dropQuery.slice(0, -2); $.post( - 'sql.php', + 'index.php?route=/sql', { 'ajax_request': true, 'db': CommonParams.get('db'), diff --git a/js/sql.js b/js/sql.js index 488fd43929..08a9bca8ca 100644 --- a/js/sql.js +++ b/js/sql.js @@ -629,12 +629,12 @@ AJAX.registerOnload('sql.js', function () { var url; if (data.db) { if (data.table) { - url = 'table_sql.php'; + url = 'index.php?route=/table/sql'; } else { - url = 'db_sql.php'; + url = 'index.php?route=/database/sql'; } } else { - url = 'server_sql.php'; + url = 'index.php?route=/server/sql'; } CommonActions.refreshMain(url, function () { $('#sqlqueryresultsouter') diff --git a/js/table/operations.js b/js/table/operations.js index 9bd2af8a35..a7cf967999 100644 --- a/js/table/operations.js +++ b/js/table/operations.js @@ -62,7 +62,7 @@ AJAX.registerOnload('table/operations.js', function () { if (typeof data !== 'undefined' && data.success === true) { CommonParams.set('db', data.params.db); CommonParams.set('table', data.params.table); - CommonActions.refreshMain('tbl_sql.php', function () { + CommonActions.refreshMain('index.php?route=/table/sql', function () { Functions.ajaxShowMessage(data.message); }); // Refresh navigation when the table is copied diff --git a/js/table/structure.js b/js/table/structure.js index 727798b8c4..e9fb5aa642 100644 --- a/js/table/structure.js +++ b/js/table/structure.js @@ -222,7 +222,7 @@ AJAX.registerOnload('table/structure.js', function () { if (data.tableStat) { $('#tablestatistics').html(data.tableStat); } - // refresh the list of indexes (comes from sql.php) + // refresh the list of indexes (comes from /sql) $('.index_info').replaceWith(data.indexes_list); Navigation.reload(); } else { diff --git a/js/table/zoom_plot_jqplot.js b/js/table/zoom_plot_jqplot.js index 92d6fd96a8..cb080ca472 100644 --- a/js/table/zoom_plot_jqplot.js +++ b/js/table/zoom_plot_jqplot.js @@ -375,8 +375,7 @@ AJAX.registerOnload('table/zoom_plot_jqplot.js', function () { sqlQuery = sqlQuery.substring(0, sqlQuery.length - 2); sqlQuery += ' WHERE ' + Sql.urlDecode(searchedData[searchedDataKey].where_clause); - // Post SQL query to sql.php - $.post('sql.php', { + $.post('index.php?route=/sql', { 'server' : CommonParams.get('server'), 'db' : CommonParams.get('db'), 'ajax_request' : true, diff --git a/libraries/classes/Config.php b/libraries/classes/Config.php index db29fb0d99..81037d0861 100644 --- a/libraries/classes/Config.php +++ b/libraries/classes/Config.php @@ -869,36 +869,6 @@ class Config $cfg = array_intersect_key($cfg, array_flip($matched_keys)); - /** - * Backward compatibility code - */ - if (! empty($cfg['DefaultTabTable'])) { - $cfg['DefaultTabTable'] = str_replace( - [ - 'tbl_properties.php', - '_properties', - ], - [ - 'tbl_sql.php', - '', - ], - $cfg['DefaultTabTable'] - ); - } - if (! empty($cfg['DefaultTabDatabase'])) { - $cfg['DefaultTabDatabase'] = str_replace( - [ - 'db_details.php', - '_details', - ], - [ - 'db_sql.php', - '', - ], - $cfg['DefaultTabDatabase'] - ); - } - $this->settings = array_replace_recursive($this->settings, $cfg); return true; diff --git a/libraries/classes/Controllers/Database/SqlController.php b/libraries/classes/Controllers/Database/SqlController.php index 963f5bc842..0e6c0f23b9 100644 --- a/libraries/classes/Controllers/Database/SqlController.php +++ b/libraries/classes/Controllers/Database/SqlController.php @@ -10,6 +10,7 @@ namespace PhpMyAdmin\Controllers\Database; use PhpMyAdmin\Config\PageSettings; use PhpMyAdmin\SqlQueryForm; +use PhpMyAdmin\Url; /** * Database SQL executor @@ -35,8 +36,8 @@ class SqlController extends AbstractController * After a syntax error, we return to this script * with the typed query in the textarea. */ - $goto = 'db_sql.php'; - $back = 'db_sql.php'; + $goto = Url::getFromRoute('/database/sql'); + $back = $goto; return $sqlQueryForm->getHtml( true, diff --git a/libraries/classes/Controllers/Database/StructureController.php b/libraries/classes/Controllers/Database/StructureController.php index 705d5376a9..8264f7c85a 100644 --- a/libraries/classes/Controllers/Database/StructureController.php +++ b/libraries/classes/Controllers/Database/StructureController.php @@ -318,7 +318,7 @@ class StructureController extends AbstractController $err_url = Url::getFromRoute('/database/structure', ['db' => $this->db]); // see bug #2794840; in this case, code path is: - // /database/structure -> libraries/mult_submits.inc.php -> sql.php + // /database/structure -> libraries/mult_submits.inc.php -> /sql // -> /database/structure and if we got an error on the multi submit, // we must display it here and not call again mult_submits.inc.php if (! isset($_POST['error']) || false === $_POST['error']) { diff --git a/libraries/classes/Controllers/Table/ChartController.php b/libraries/classes/Controllers/Table/ChartController.php index 00f0d3c34f..549b28d64d 100644 --- a/libraries/classes/Controllers/Table/ChartController.php +++ b/libraries/classes/Controllers/Table/ChartController.php @@ -16,6 +16,7 @@ use PhpMyAdmin\SqlParser\Components\Limit; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Statements\SelectStatement; use PhpMyAdmin\Template; +use PhpMyAdmin\Url; use PhpMyAdmin\Util; /** @@ -125,7 +126,7 @@ class ChartController extends AbstractController $this->cfg['DefaultTabTable'], 'table' ); - $url_params['back'] = 'tbl_sql.php'; + $url_params['back'] = Url::getFromRoute('/table/sql'); include ROOT_PATH . 'libraries/tbl_common.inc.php'; $this->dbi->selectDb($GLOBALS['db']); } elseif (strlen($this->db) > 0) { @@ -133,14 +134,14 @@ class ChartController extends AbstractController $this->cfg['DefaultTabDatabase'], 'database' ); - $url_params['back'] = 'sql.php'; + $url_params['back'] = Url::getFromRoute('/sql'); include ROOT_PATH . 'libraries/db_common.inc.php'; } else { $url_params['goto'] = Util::getScriptNameForOption( $this->cfg['DefaultTabServer'], 'server' ); - $url_params['back'] = 'sql.php'; + $url_params['back'] = Url::getFromRoute('/sql'); include ROOT_PATH . 'libraries/server_common.inc.php'; } diff --git a/libraries/classes/Controllers/Table/IndexesController.php b/libraries/classes/Controllers/Table/IndexesController.php index cb73e0bf82..b563cd61e8 100644 --- a/libraries/classes/Controllers/Table/IndexesController.php +++ b/libraries/classes/Controllers/Table/IndexesController.php @@ -132,7 +132,7 @@ class IndexesController extends AbstractController /** * Process the data from the edit/create index form, * run the query to build the new index - * and moves back to "tbl_sql.php" + * and moves back to /table/sql * * @return void */ diff --git a/libraries/classes/Controllers/Table/SqlController.php b/libraries/classes/Controllers/Table/SqlController.php index a3975acd45..7d6e192e36 100644 --- a/libraries/classes/Controllers/Table/SqlController.php +++ b/libraries/classes/Controllers/Table/SqlController.php @@ -11,6 +11,7 @@ namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Config\PageSettings; use PhpMyAdmin\SqlQueryForm; +use PhpMyAdmin\Url; /** * Table SQL executor @@ -32,15 +33,18 @@ class SqlController extends AbstractController require ROOT_PATH . 'libraries/tbl_common.inc.php'; - $url_query .= '&goto=tbl_sql.php&back=tbl_sql.php'; - $err_url = 'tbl_sql.php' . $err_url; + $err_url = Url::getFromRoute('/table/sql') . $err_url; /** * After a syntax error, we return to this script * with the typed query in the textarea. */ - $goto = 'tbl_sql.php'; - $back = 'tbl_sql.php'; + $goto = Url::getFromRoute('/table/sql'); + $back = Url::getFromRoute('/table/sql'); + $url_query .= Url::getCommon([ + 'goto' => $goto, + 'back' => $back, + ], '&'); return $sqlQueryForm->getHtml( $params['sql_query'] ?? true, diff --git a/libraries/classes/Controllers/Table/StructureController.php b/libraries/classes/Controllers/Table/StructureController.php index d4e2b42b26..41ab356786 100644 --- a/libraries/classes/Controllers/Table/StructureController.php +++ b/libraries/classes/Controllers/Table/StructureController.php @@ -323,8 +323,8 @@ class StructureController extends AbstractController if (isset($_POST['add_key']) || isset($_POST['partition_maintenance']) ) { - //todo: set some variables for sql.php include, to be eliminated - //after refactoring sql.php + //todo: set some variables for /sql include, to be eliminated + //after refactoring /sql $db = $this->db; $table = $this->table; $sql_query = $GLOBALS['sql_query']; @@ -835,7 +835,7 @@ class StructureController extends AbstractController */ protected function displayTableBrowseForSelectedColumns($goto, $pmaThemeImage) { - $GLOBALS['active_page'] = 'sql.php'; + $GLOBALS['active_page'] = Url::getFromRoute('/sql'); $fields = []; foreach ($_POST['selected_fld'] as $sval) { $fields[] = Util::backquote($sval); diff --git a/libraries/classes/Core.php b/libraries/classes/Core.php index 4ace67be7c..e13a8696ef 100644 --- a/libraries/classes/Core.php +++ b/libraries/classes/Core.php @@ -27,7 +27,6 @@ class Core */ public static $goto_whitelist = [ 'db_datadict.php', - 'db_sql.php', 'db_events.php', 'db_export.php', 'db_importdocsql.php', @@ -43,16 +42,13 @@ class Core 'server_binlog.php', 'server_export.php', 'server_import.php', - 'server_sql.php', 'server_status_advisor.php', 'server_status_monitor.php', 'server_status_variables.php', - 'sql.php', 'tbl_addfield.php', 'tbl_create.php', 'tbl_import.php', 'tbl_indexes.php', - 'tbl_sql.php', 'tbl_export.php', 'tbl_operations.php', 'tbl_relation.php', diff --git a/libraries/classes/Display/Results.php b/libraries/classes/Display/Results.php index 6164cef513..985a74a4c0 100644 --- a/libraries/classes/Display/Results.php +++ b/libraries/classes/Display/Results.php @@ -418,8 +418,6 @@ class Results * @param boolean $is_browse_dist whether browsing distinct values * * @return void - * - * @see sql.php */ public function setProperties( $unlim_num_rows, @@ -1607,7 +1605,7 @@ class Results $tmp_image = ''
                      . $tmp_txt . ''; - $tmp_url = 'sql.php' . Url::getCommon($url_params_full_text); + $tmp_url = Url::getFromRoute('/sql', $url_params_full_text); return Util::linkOrButton($tmp_url, $tmp_image); } @@ -1725,8 +1723,8 @@ class Results 'session_max_rows' => $session_max_rows, 'is_browse_distinct' => $this->__get('is_browse_distinct'), ]; - $single_order_url = 'sql.php' . Url::getCommon($_single_url_params); - $multi_order_url = 'sql.php' . Url::getCommon($_multi_url_params); + $single_order_url = Url::getFromRoute('/sql', $_single_url_params); + $multi_order_url = Url::getFromRoute('/sql', $_multi_url_params); // Displays the sorting URL // enable sort order swapping for image @@ -3235,7 +3233,7 @@ class Results 'where_clause' => $where_clause, 'clause_is_unique' => $clause_is_unique, 'sql_query' => $url_sql_query, - 'goto' => 'sql.php', + 'goto' => Url::getFromRoute('/sql'), ]; $edit_url = Url::getFromRoute( @@ -3304,10 +3302,10 @@ class Results 'table' => $this->__get('table'), 'sql_query' => $url_sql_query, 'message_to_show' => __('The row has been deleted.'), - 'goto' => empty($goto) ? 'tbl_sql.php' : $goto, + 'goto' => empty($goto) ? Url::getFromRoute('/table/sql') : $goto, ]; - $lnk_goto = 'sql.php' . Url::getCommonRaw($_url_params); + $lnk_goto = Url::getFromRoute('/sql', $_url_params); $del_query = 'DELETE FROM ' . Util::backquote($this->__get('table')) @@ -3321,7 +3319,7 @@ class Results 'message_to_show' => __('The row has been deleted.'), 'goto' => $lnk_goto, ]; - $del_url = 'sql.php' . Url::getCommon($_url_params); + $del_url = Url::getFromRoute('/sql', $_url_params); $js_conf = 'DELETE FROM ' . Sanitize::jsFormat($this->__get('table')) . ' WHERE ' . Sanitize::jsFormat($where_clause, false) @@ -3336,7 +3334,7 @@ class Results 'goto' => 'index.php', ]; - $lnk_goto = 'sql.php' . Url::getCommonRaw($_url_params); + $lnk_goto = Url::getFromRoute('/sql', $_url_params); $kill = $GLOBALS['dbi']->getKillQuery($row[0]); @@ -3346,8 +3344,8 @@ class Results 'goto' => $lnk_goto, ]; - $del_url = 'sql.php' . Url::getCommon($_url_params); - $js_conf = $kill; + $del_url = Url::getFromRoute('/sql', $_url_params); + $js_conf = $kill; $del_str = Util::getIcon( 'b_drop', __('Kill') @@ -3937,8 +3935,6 @@ class Results * @return void * * @access public - * - * @see sql.php file */ public function setConfigParamsForDisplayTable() { @@ -4097,8 +4093,6 @@ class Results * @return string Generated HTML content for resulted table * * @access public - * - * @see sql.php file */ public function getTable( &$dt_result, @@ -5338,7 +5332,7 @@ class Results $tag_params['class'] = 'ajax'; } $result .= Util::linkOrButton( - 'sql.php' . Url::getCommon($_url_params), + Url::getFromRoute('/sql', $_url_params), $message, $tag_params ); diff --git a/libraries/classes/Import.php b/libraries/classes/Import.php index 0d1623384a..415d119864 100644 --- a/libraries/classes/Import.php +++ b/libraries/classes/Import.php @@ -269,7 +269,7 @@ class Import $sql_query .= $import_run_buffer['full']; } } - // check length of query unless we decided to pass it to sql.php + // check length of query unless we decided to pass it to /sql // (if $run_query is false, we are just displaying so show // the complete query in the textarea) if (! $go_sql && $run_query && ! empty($sql_query)) { @@ -1269,7 +1269,7 @@ class Import 'db' => $db_name, 'table' => (string) $table[self::TBL_NAME], ]; - $tbl_url = 'sql.php' . Url::getCommon($params); + $tbl_url = Url::getFromRoute('/sql', $params); $tbl_struct_url = Url::getFromRoute('/table/structure', $params); $tbl_ops_url = 'tbl_operations.php' . Url::getCommon($params); @@ -1449,7 +1449,7 @@ class Import 'db' => $GLOBALS['db'], 'sql_query' => $matched_row_query, ]; - $matched_rows_url = 'sql.php' . Url::getCommon($_url_params); + $matched_rows_url = Url::getFromRoute('/sql', $_url_params); return [ 'sql_query' => Util::formatSql($analyzed_sql_results['query']), diff --git a/libraries/classes/Index.php b/libraries/classes/Index.php index 8232ae305e..c53c726f65 100644 --- a/libraries/classes/Index.php +++ b/libraries/classes/Index.php @@ -764,7 +764,7 @@ class Index $r .= ''; $r .= Util::linkOrButton( - 'sql.php' . Url::getCommon($this_params), + Url::getFromRoute('/sql', $this_params), Util::getIcon('b_drop', __('Drop')), ['class' => 'drop_primary_key_index_anchor ajax'] ); diff --git a/libraries/classes/InsertEdit.php b/libraries/classes/InsertEdit.php index 1a2ffc80b0..f76a3b9ed8 100644 --- a/libraries/classes/InsertEdit.php +++ b/libraries/classes/InsertEdit.php @@ -294,7 +294,7 @@ class InsertEdit break; } - $params['goto'] = 'sql.php'; + $params['goto'] = Url::getFromRoute('/sql'); $this_url_params = array_merge($url_params, $params); if (! $is_show) { @@ -2484,8 +2484,7 @@ class InsertEdit . ' WHERE ' . Util::backquote($foreigner['foreign_field']) . $where_comparison, ]; - $output = ''; + $output = ''; if ('D' == $_SESSION['tmpval']['relational_display']) { // user chose "relational display field" in the diff --git a/libraries/classes/Menu.php b/libraries/classes/Menu.php index 44f36713f0..9af69450b6 100644 --- a/libraries/classes/Menu.php +++ b/libraries/classes/Menu.php @@ -341,7 +341,7 @@ class Menu $tabs['browse']['icon'] = 'b_browse'; $tabs['browse']['text'] = __('Browse'); - $tabs['browse']['link'] = 'sql.php'; + $tabs['browse']['link'] = Url::getFromRoute('/sql'); $tabs['browse']['args']['pos'] = 0; $tabs['structure']['icon'] = 'b_props'; @@ -351,7 +351,7 @@ class Menu (isset($_REQUEST['route']) && in_array($_REQUEST['route'], ['/table/structure'])); $tabs['sql']['icon'] = 'b_sql'; - $tabs['sql']['link'] = 'tbl_sql.php'; + $tabs['sql']['link'] = Url::getFromRoute('/table/sql'); $tabs['sql']['text'] = __('SQL'); $tabs['search']['icon'] = 'b_search'; @@ -458,7 +458,7 @@ class Menu $tabs['structure']['icon'] = 'b_props'; $tabs['structure']['active'] = isset($_REQUEST['route']) && $_REQUEST['route'] === '/database/structure'; - $tabs['sql']['link'] = 'db_sql.php'; + $tabs['sql']['link'] = Url::getFromRoute('/database/sql'); $tabs['sql']['text'] = __('SQL'); $tabs['sql']['icon'] = 'b_sql'; @@ -579,7 +579,7 @@ class Menu $tabs['databases']['text'] = __('Databases'); $tabs['sql']['icon'] = 'b_sql'; - $tabs['sql']['link'] = 'server_sql.php'; + $tabs['sql']['link'] = Url::getFromRoute('/server/sql'); $tabs['sql']['text'] = __('SQL'); $tabs['status']['icon'] = 's_status'; diff --git a/libraries/classes/Navigation/Nodes/NodeTable.php b/libraries/classes/Navigation/Nodes/NodeTable.php index 05f78679d1..6b29760fea 100644 --- a/libraries/classes/Navigation/Nodes/NodeTable.php +++ b/libraries/classes/Navigation/Nodes/NodeTable.php @@ -302,10 +302,10 @@ class NodeTable extends NodeDatabaseChild case Url::getFromRoute('/table/change'): $this->icon[] = Util::getImage('b_insrow', __('Insert')); break; - case 'tbl_sql.php': + case Url::getFromRoute('/table/sql'): $this->icon[] = Util::getImage('b_sql', __('SQL')); break; - case 'sql.php': + case Url::getFromRoute('/sql'): $this->icon[] = Util::getImage('b_browse', __('Browse')); break; } diff --git a/libraries/classes/Navigation/Nodes/NodeView.php b/libraries/classes/Navigation/Nodes/NodeView.php index 51db6e8fc0..d41082076b 100644 --- a/libraries/classes/Navigation/Nodes/NodeView.php +++ b/libraries/classes/Navigation/Nodes/NodeView.php @@ -31,12 +31,12 @@ class NodeView extends NodeDatabaseChild { parent::__construct($name, $type, $isGroup); $this->icon = Util::getImage('b_props', __('View')); - $iconLink = Url::getFromRoute('/table/structure'); $this->links = [ - 'text' => 'sql.php?server=' . $GLOBALS['server'] + 'text' => Url::getFromRoute('/sql') + . '&server=' . $GLOBALS['server'] . '&db=%2$s&table=%1$s&pos=0', - 'icon' => $iconLink . (strpos($iconLink, '?') === false ? '?' : '&') - . 'server=' . $GLOBALS['server'] + 'icon' => Url::getFromRoute('/table/structure') + . '&server=' . $GLOBALS['server'] . '&db=%2$s&table=%1$s', ]; $this->classes = 'view'; diff --git a/libraries/classes/Operations.php b/libraries/classes/Operations.php index 2ed08a9206..49b2e343a9 100644 --- a/libraries/classes/Operations.php +++ b/libraries/classes/Operations.php @@ -1593,7 +1593,7 @@ class Operations { return '
  • ' . Util::linkOrButton( - 'sql.php' . Url::getCommon(array_merge($url_params, $params)), + Url::getFromRoute('/sql', array_merge($url_params, $params)), $action_message, ['class' => 'maintain_action ajax'] ) @@ -1653,7 +1653,7 @@ class Operations public function getDeleteDataOrTablelink(array $url_params, $syntax, $link, $htmlId) { return '
  • ' . Util::linkOrButton( - 'sql.php' . Url::getCommon($url_params), + Url::getFromRoute('/sql', $url_params), $link, [ 'id' => $htmlId, @@ -1742,8 +1742,7 @@ class Operations ); $html_output .= '

    '; - $html_output .= '
    ' + $html_output .= '' . __('Remove partitioning') . ''; $html_output .= '' @@ -1811,9 +1810,7 @@ class Operations ); $html_output .= '
  • ' - . '' + . '' . $master . ' -> ' . $arr['foreign_db'] . '.' . $arr['foreign_table'] . '.' . $arr['foreign_field'] . '
  • ' . "\n"; diff --git a/libraries/classes/Rte/Footer.php b/libraries/classes/Rte/Footer.php index 5181b0057f..d3eb2f224c 100644 --- a/libraries/classes/Rte/Footer.php +++ b/libraries/classes/Rte/Footer.php @@ -10,6 +10,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Rte; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Url; use PhpMyAdmin\Util; /** @@ -107,7 +108,7 @@ class Footer */ public function events() { - global $db, $url_query; + global $db, $table, $url_query; /** * For events, we show the usual 'Add event' form and also @@ -144,7 +145,11 @@ class Footer $retval .= "
    \n"; // show the toggle button $retval .= Util::toggleButton( - "sql.php$url_query&goto=db_events.php" . urlencode("?db=$db"), + Url::getFromRoute('/sql', [ + 'db' => $db, + 'table' => $table, + 'goto' => 'db_events.php?db=' . $db, + ]), 'sql_query', $options, 'Functions.slidingMessage(data.sql_query);' diff --git a/libraries/classes/Rte/RteList.php b/libraries/classes/Rte/RteList.php index 0e87c6c4e6..e3e22bc0a1 100644 --- a/libraries/classes/Rte/RteList.php +++ b/libraries/classes/Rte/RteList.php @@ -348,7 +348,7 @@ class RteList $retval .= " \n"; $retval .= " \n"; $retval .= Util::linkOrButton( - 'sql.php' . $url_query . '&sql_query=' . urlencode($sql_drop) . '&goto=db_routines.php' . urlencode("?db={$db}"), + Url::getFromRoute('/sql') . $url_query . '&sql_query=' . urlencode($sql_drop) . '&goto=db_routines.php' . urlencode("?db={$db}"), $titles['Drop'], ['class' => 'ajax drop_anchor'] ); @@ -422,7 +422,10 @@ class RteList $retval .= " \n"; if (Util::currentUserHasPrivilege('TRIGGER', $db)) { $retval .= Util::linkOrButton( - 'sql.php' . $url_query . '&sql_query=' . urlencode($trigger['drop']) . '&goto=db_triggers.php' . urlencode("?db={$db}"), + Url::getFromRoute('/sql', [ + 'sql_query' => $trigger['drop'], + 'goto' => 'db_triggers.php?db=' . $db, + ]) . $url_query, $titles['Drop'], ['class' => 'ajax drop_anchor'] ); @@ -500,7 +503,10 @@ class RteList $retval .= " \n"; if (Util::currentUserHasPrivilege('EVENT', $db)) { $retval .= Util::linkOrButton( - 'sql.php' . $url_query . '&sql_query=' . urlencode($sql_drop) . '&goto=db_events.php' . urlencode("?db={$db}"), + Url::getFromRoute('/sql', [ + 'sql_query' => $sql_drop, + 'goto' => 'db_events.php?db=' . $db, + ]) . $url_query, $titles['Drop'], ['class' => 'ajax drop_anchor'] ); diff --git a/libraries/classes/Sanitize.php b/libraries/classes/Sanitize.php index 2457bc1774..0db3a21f63 100644 --- a/libraries/classes/Sanitize.php +++ b/libraries/classes/Sanitize.php @@ -37,9 +37,6 @@ class Sanitize './doc/html/', // possible return values from Util::getScriptNameForOption './index.php?', - './db_sql.php?', - './tbl_sql.php?', - './sql.php?', // Hardcoded options in \PhpMyAdmin\Config\SpecialSchemaLinks './db_events.php?', './db_routines.php?', diff --git a/libraries/classes/Server/Status/Data.php b/libraries/classes/Server/Status/Data.php index 9aa0f7dd06..e8a6ec7bad 100644 --- a/libraries/classes/Server/Status/Data.php +++ b/libraries/classes/Server/Status/Data.php @@ -150,7 +150,7 @@ class Data 'params' => Url::getCommon(['flush' => 'TABLES'], ''), ]; $links['table'][__('Show open tables')] = [ - 'url' => 'sql.php', + 'url' => Url::getFromRoute('/sql'), 'params' => Url::getCommon([ 'sql_query' => 'SHOW OPEN TABLES', 'goto' => $this->selfUrl, @@ -159,7 +159,7 @@ class Data if ($GLOBALS['replication_info']['master']['status']) { $links['repl'][__('Show slave hosts')] = [ - 'url' => 'sql.php', + 'url' => Url::getFromRoute('/sql'), 'params' => Url::getCommon([ 'sql_query' => 'SHOW SLAVE HOSTS', 'goto' => $this->selfUrl, diff --git a/libraries/classes/Sql.php b/libraries/classes/Sql.php index 9af497e758..23eb642a33 100644 --- a/libraries/classes/Sql.php +++ b/libraries/classes/Sql.php @@ -495,7 +495,7 @@ class Sql ) { return $this->template->render('sql/bookmark', [ 'db' => $db, - 'goto' => 'sql.php' . Url::getCommon([ + 'goto' => Url::getFromRoute('/sql', [ 'db' => $db, 'table' => $table, 'sql_query' => $sql_query, @@ -713,7 +713,7 @@ class Sql } exit; } else { - // go back to sql.php to redisplay query; do not use & in this case: + // go back to /sql to redisplay query; do not use & in this case: /** * @todo In which scenario does this happen? */ @@ -1324,7 +1324,7 @@ class Sql // Ok, here is an explanation for the !$is_select. // The form generated by PhpMyAdmin\SqlQueryForm - // and db_sql.php has many submit buttons + // and /database/sql has many submit buttons // on the same form, and some confusion arises from the // fact that $message_to_show is sent for every case. // The $message_to_show containing a success message and sent with diff --git a/libraries/classes/SqlQueryForm.php b/libraries/classes/SqlQueryForm.php index c3bd2a186c..71e27522a5 100644 --- a/libraries/classes/SqlQueryForm.php +++ b/libraries/classes/SqlQueryForm.php @@ -3,9 +3,9 @@ /** * functions for displaying the sql query form * - * @usedby server_sql.php - * @usedby db_sql.php - * @usedby tbl_sql.php + * @usedby /server/sql + * @usedby /database/sql + * @usedby /table/sql * @usedby /table/structure * @usedby /table/tracking * @package PhpMyAdmin @@ -33,9 +33,9 @@ class SqlQueryForm * * @return string * - * @usedby server_sql.php - * @usedby db_sql.php - * @usedby tbl_sql.php + * @usedby /server/sql + * @usedby /database/sql + * @usedby /table/sql * @usedby /table/structure * @usedby /table/tracking */ @@ -60,22 +60,19 @@ class SqlQueryForm $enctype = ''; } - $table = ''; - $db = ''; + $table = ''; + $db = ''; if (strlen($GLOBALS['db']) === 0) { // prepare for server related - $goto = empty($GLOBALS['goto']) ? - 'server_sql.php' : $GLOBALS['goto']; + $goto = empty($GLOBALS['goto']) ? Url::getFromRoute('/server/sql') : $GLOBALS['goto']; } elseif (strlen($GLOBALS['table']) === 0) { // prepare for db related - $db = $GLOBALS['db']; - $goto = empty($GLOBALS['goto']) ? - 'db_sql.php' : $GLOBALS['goto']; + $db = $GLOBALS['db']; + $goto = empty($GLOBALS['goto']) ? Url::getFromRoute('/database/sql') : $GLOBALS['goto']; } else { - $table = $GLOBALS['table']; - $db = $GLOBALS['db']; - $goto = empty($GLOBALS['goto']) ? - 'tbl_sql.php' : $GLOBALS['goto']; + $table = $GLOBALS['table']; + $db = $GLOBALS['db']; + $goto = empty($GLOBALS['goto']) ? Url::getFromRoute('/table/sql') : $GLOBALS['goto']; } // start output diff --git a/libraries/classes/Util.php b/libraries/classes/Util.php index 3260868bbd..ba50acfeb4 100644 --- a/libraries/classes/Util.php +++ b/libraries/classes/Util.php @@ -624,15 +624,12 @@ class Util if (strlen($table) > 0) { $_url_params['db'] = $db; $_url_params['table'] = $table; - $doedit_goto = ''; + $doedit_goto = ''; } elseif (strlen($db) > 0) { $_url_params['db'] = $db; - $doedit_goto = ''; + $doedit_goto = ''; } else { - $doedit_goto = ''; + $doedit_goto = ''; } $error_msg .= $doedit_goto @@ -1068,12 +1065,12 @@ class Util $url_params['db'] = $GLOBALS['db']; if (strlen($GLOBALS['table']) > 0) { $url_params['table'] = $GLOBALS['table']; - $edit_link = 'tbl_sql.php'; + $edit_link = Url::getFromRoute('/table/sql'); } else { - $edit_link = 'db_sql.php'; + $edit_link = Url::getFromRoute('/database/sql'); } } else { - $edit_link = 'server_sql.php'; + $edit_link = Url::getFromRoute('/server/sql'); } // Want to have the query explained @@ -1178,7 +1175,7 @@ class Util $retval .= '
    '; $retval .= '