diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-09 10:55:03 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-09 13:09:38 +0100 |
| commit | 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch) | |
| tree | 5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/index.php | |
| parent | 7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff) | |
| download | ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2 ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip | |
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/index.php')
| -rw-r--r-- | srcs/phpmyadmin/index.php | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/index.php b/srcs/phpmyadmin/index.php new file mode 100644 index 0000000..11d40b7 --- /dev/null +++ b/srcs/phpmyadmin/index.php @@ -0,0 +1,120 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Main loader script + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +use PhpMyAdmin\Controllers\HomeController; +use PhpMyAdmin\Core; +use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\Response; +use PhpMyAdmin\Url; +use PhpMyAdmin\Util; + +if (! defined('ROOT_PATH')) { + define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR); +} + +global $server; + +require_once ROOT_PATH . 'libraries/common.inc.php'; + +/** + * pass variables to child pages + */ +$drops = [ + 'lang', + 'server', + 'collation_connection', + 'db', + 'table', +]; +foreach ($drops as $each_drop) { + if (array_key_exists($each_drop, $_GET)) { + unset($_GET[$each_drop]); + } +} +unset($drops, $each_drop); + +/** + * Black list of all scripts to which front-end must submit data. + * Such scripts must not be loaded on home page. + */ +$target_blacklist = [ + 'import.php', + 'export.php', +]; + +// If we have a valid target, let's load that script instead +if (! empty($_REQUEST['target']) + && is_string($_REQUEST['target']) + && 0 !== strpos($_REQUEST['target'], "index") + && ! in_array($_REQUEST['target'], $target_blacklist) + && Core::checkPageValidity($_REQUEST['target'], [], true) +) { + include ROOT_PATH . $_REQUEST['target']; + exit; +} + +/** @var Response $response */ +$response = $containerBuilder->get(Response::class); + +/** @var DatabaseInterface $dbi */ +$dbi = $containerBuilder->get(DatabaseInterface::class); + +/** @var HomeController $controller */ +$controller = $containerBuilder->get(HomeController::class); + +if (isset($_REQUEST['ajax_request']) && ! empty($_REQUEST['access_time'])) { + exit; +} + +if (isset($_POST['set_theme'])) { + $controller->setTheme([ + 'set_theme' => $_POST['set_theme'], + ]); + + header('Location: index.php' . Url::getCommonRaw()); +} elseif (isset($_POST['collation_connection'])) { + $controller->setCollationConnection([ + 'collation_connection' => $_POST['collation_connection'], + ]); + + header('Location: index.php' . Url::getCommonRaw()); +} elseif (! empty($_REQUEST['db'])) { + // See FAQ 1.34 + $page = null; + if (! empty($_REQUEST['table'])) { + $page = Util::getScriptNameForOption( + $GLOBALS['cfg']['DefaultTabTable'], + 'table' + ); + } else { + $page = Util::getScriptNameForOption( + $GLOBALS['cfg']['DefaultTabDatabase'], + 'database' + ); + } + include ROOT_PATH . $page; +} elseif ($response->isAjax() && ! empty($_REQUEST['recent_table'])) { + $response->addJSON($controller->reloadRecentTablesList()); +} elseif ($GLOBALS['PMA_Config']->isGitRevision() + && isset($_REQUEST['git_revision']) + && $response->isAjax() +) { + $response->addHTML($controller->gitRevision()); +} else { + // Handles some variables that may have been sent by the calling script + $GLOBALS['db'] = ''; + $GLOBALS['table'] = ''; + $show_query = '1'; + + if ($server > 0) { + include ROOT_PATH . 'libraries/server_common.inc.php'; + } + + $response->addHTML($controller->index()); +} |
