aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/index.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/index.php
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_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.php120
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());
+}