diff --git a/libraries/classes/Controllers/Database/CentralColumns/PopulateColumnsController.php b/libraries/classes/Controllers/Database/CentralColumns/PopulateColumnsController.php
index 8bec9c24e5..a3fa59ace0 100644
--- a/libraries/classes/Controllers/Database/CentralColumns/PopulateColumnsController.php
+++ b/libraries/classes/Controllers/Database/CentralColumns/PopulateColumnsController.php
@@ -26,7 +26,10 @@ final class PopulateColumnsController extends AbstractController
public function __invoke(ServerRequest $request): void
{
- $columns = $this->centralColumns->getColumnsNotInCentralList($GLOBALS['db'], $_POST['selectedTable']);
+ $columns = $this->centralColumns->getColumnsNotInCentralList(
+ $GLOBALS['db'],
+ $request->getParsedBodyParam('selectedTable')
+ );
$this->render('database/central_columns/populate_columns', ['columns' => $columns]);
}
}
diff --git a/libraries/classes/Controllers/Database/SqlController.php b/libraries/classes/Controllers/Database/SqlController.php
index 43f28085ed..5f6e7b395b 100644
--- a/libraries/classes/Controllers/Database/SqlController.php
+++ b/libraries/classes/Controllers/Database/SqlController.php
@@ -63,7 +63,7 @@ class SqlController extends AbstractController
true,
false,
isset($_POST['delimiter'])
- ? htmlspecialchars($_POST['delimiter'])
+ ? htmlspecialchars($request->getParsedBodyParam('delimiter'))
: ';'
));
}
diff --git a/libraries/classes/Controllers/Database/SqlFormatController.php b/libraries/classes/Controllers/Database/SqlFormatController.php
index e468687e68..1fd48e01c9 100644
--- a/libraries/classes/Controllers/Database/SqlFormatController.php
+++ b/libraries/classes/Controllers/Database/SqlFormatController.php
@@ -17,7 +17,7 @@ class SqlFormatController extends AbstractController
{
public function __invoke(ServerRequest $request): void
{
- $params = ['sql' => $_POST['sql'] ?? null];
+ $params = ['sql' => $request->getParsedBodyParam('sql')];
$query = strlen((string) $params['sql']) > 0 ? $params['sql'] : '';
$this->response->addJSON(['sql' => Formatter::format($query)]);
}
diff --git a/libraries/classes/Controllers/Database/StructureController.php b/libraries/classes/Controllers/Database/StructureController.php
index 5cc807e7ac..0efc2c1f41 100644
--- a/libraries/classes/Controllers/Database/StructureController.php
+++ b/libraries/classes/Controllers/Database/StructureController.php
@@ -168,7 +168,7 @@ class StructureController extends AbstractController
]);
}
- $this->replicationInfo->load($_POST['primary_connection'] ?? null);
+ $this->replicationInfo->load($request->getParsedBodyParam('primary_connection'));
$replicaInfo = $this->replicationInfo->getReplicaInfo();
$pageSettings = new PageSettings('DbStructure');
diff --git a/libraries/classes/Controllers/HomeController.php b/libraries/classes/Controllers/HomeController.php
index f84ff96e37..5985d72491 100644
--- a/libraries/classes/Controllers/HomeController.php
+++ b/libraries/classes/Controllers/HomeController.php
@@ -82,7 +82,7 @@ class HomeController extends AbstractController
// This is for $cfg['ShowDatabasesNavigationAsTree'] = false;
// See: https://github.com/phpmyadmin/phpmyadmin/issues/16520
// The DB is defined here and sent to the JS front-end to refresh the DB tree
- $GLOBALS['db'] = $_POST['db'] ?? '';
+ $GLOBALS['db'] = $request->getParsedBodyParam('db', '');
$GLOBALS['table'] = '';
$GLOBALS['show_query'] = '1';
$GLOBALS['errorUrl'] = Url::getFromRoute('/');
diff --git a/libraries/classes/Controllers/LintController.php b/libraries/classes/Controllers/LintController.php
index f25651ed42..a8c5cc3d74 100644
--- a/libraries/classes/Controllers/LintController.php
+++ b/libraries/classes/Controllers/LintController.php
@@ -22,7 +22,7 @@ class LintController extends AbstractController
{
$params = [
'sql_query' => $_POST['sql_query'] ?? null,
- 'options' => $_POST['options'] ?? null,
+ 'options' => $request->getParsedBodyParam('options'),
];
/**
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index c78f450b0c..411118fc8e 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -975,6 +975,11 @@ parameters:
count: 1
path: libraries/classes/Controllers/Config/SetConfigController.php
+ -
+ message: "#^Parameter \\#2 \\$table of method PhpMyAdmin\\\\Database\\\\CentralColumns\\:\\:getColumnsNotInCentralList\\(\\) expects string, mixed given\\.$#"
+ count: 1
+ path: libraries/classes/Controllers/Database/CentralColumns/PopulateColumnsController.php
+
-
message: "#^Method PhpMyAdmin\\\\Controllers\\\\Database\\\\CentralColumnsController\\:\\:addColumn\\(\\) has parameter \\$params with no value type specified in iterable type array\\.$#"
count: 1
@@ -1055,6 +1060,21 @@ parameters:
count: 1
path: libraries/classes/Controllers/Database/SqlAutoCompleteController.php
+ -
+ message: "#^Parameter \\#1 \\$string of function htmlspecialchars expects string, mixed given\\.$#"
+ count: 1
+ path: libraries/classes/Controllers/Database/SqlController.php
+
+ -
+ message: "#^Cannot cast mixed to string\\.$#"
+ count: 1
+ path: libraries/classes/Controllers/Database/SqlFormatController.php
+
+ -
+ message: "#^Parameter \\#1 \\$query of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Formatter\\:\\:format\\(\\) expects string, mixed given\\.$#"
+ count: 1
+ path: libraries/classes/Controllers/Database/SqlFormatController.php
+
-
message: "#^Cannot access offset non\\-empty\\-string on mixed\\.$#"
count: 1
@@ -1160,6 +1180,11 @@ parameters:
count: 1
path: libraries/classes/Controllers/Database/StructureController.php
+ -
+ message: "#^Parameter \\#1 \\$connection of method PhpMyAdmin\\\\ReplicationInfo\\:\\:load\\(\\) expects string\\|null, mixed given\\.$#"
+ count: 1
+ path: libraries/classes/Controllers/Database/StructureController.php
+
-
message: "#^Parameter \\#4 \\$formattedSize of method PhpMyAdmin\\\\Controllers\\\\Database\\\\StructureController\\:\\:getValuesForAriaTable\\(\\) expects int, string given\\.$#"
count: 1
@@ -1240,6 +1265,21 @@ parameters:
count: 1
path: libraries/classes/Controllers/HomeController.php
+ -
+ message: "#^Cannot access offset 'eventEditor' on mixed\\.$#"
+ count: 1
+ path: libraries/classes/Controllers/LintController.php
+
+ -
+ message: "#^Cannot access offset 'routineEditor' on mixed\\.$#"
+ count: 1
+ path: libraries/classes/Controllers/LintController.php
+
+ -
+ message: "#^Cannot access offset 'triggerEditor' on mixed\\.$#"
+ count: 1
+ path: libraries/classes/Controllers/LintController.php
+
-
message: "#^Parameter \\#1 \\$partialDependencies of method PhpMyAdmin\\\\Normalization\\:\\:createNewTablesFor2NF\\(\\) expects array, mixed given\\.$#"
count: 1
diff --git a/psalm-baseline.xml b/psalm-baseline.xml
index 5af461fd9d..7f3ab93c68 100644
--- a/psalm-baseline.xml
+++ b/psalm-baseline.xml
@@ -941,12 +941,9 @@
-
- $_POST['selectedTable']
-
-
- $_POST['selectedTable']
-
+
+ $request->getParsedBodyParam('selectedTable')
+
@@ -1395,22 +1392,21 @@
+
+ $request->getParsedBodyParam('delimiter')
+
$GLOBALS['back']
$GLOBALS['errorUrl']
-
- $_POST['delimiter']
-
-
+
$query
-
-
- $params['sql']
+
+
$query
-
+
@@ -1668,7 +1664,7 @@
$formattedOverhead
$formattedSize
-
+
$checkTime
$checkTimeAll
$createTime
@@ -1700,6 +1696,7 @@
$replicaInfo['Ignore_Table']
$replicaInfo['Wild_Do_Table']
$replicaInfo['Wild_Ignore_Table']
+ $request->getParsedBodyParam('primary_connection')
$sumSize
$tableIsView
$truename
@@ -1771,9 +1768,6 @@
$currentTable['TABLE_NAME']
$currentTable['TABLE_ROWS']
-
- $_POST['primary_connection'] ?? null
-
$formattedOverhead
$formattedSize
@@ -2192,7 +2186,8 @@
$GLOBALS['language_stats'][$GLOBALS['lang']]
-
+
+ $GLOBALS['db']
$GLOBALS['errorUrl']
$GLOBALS['show_query']
@@ -2334,6 +2329,11 @@
$_GET['id']
+
+
+ $options
+
+
$GLOBALS['auth_plugin']