From 1b2354cdaecc7437978c987fe453792fbc77d0e9 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Sun, 8 Feb 2026 07:52:06 +0100 Subject: [PATCH] Plugins: ignore variables created in included files --- adminer/include/plugins.inc.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/adminer/include/plugins.inc.php b/adminer/include/plugins.inc.php index 152d59fa..e4d4175d 100644 --- a/adminer/include/plugins.inc.php +++ b/adminer/include/plugins.inc.php @@ -17,12 +17,12 @@ class Plugins { $basename = "adminer-plugins"; if (is_dir($basename)) { foreach (glob("$basename/*.php") as $filename) { - $include = include_once "./$filename"; + $include = $this->includeOnce($filename); } } $help = " href='https://www.adminer.org/plugins/#use'" . target_blank(); if (file_exists("$basename.php")) { - $include = include_once "./$basename.php"; // example: return array(new AdminerLoginOtp($secret)) + $include = $this->includeOnce("$basename.php"); // example: return array(new AdminerLoginOtp($secret)); if (is_array($include)) { foreach ($include as $plugin) { $plugins[get_class($plugin)] = $plugin; @@ -59,6 +59,11 @@ class Plugins { } } + // separate function to not overwrite local variables + function includeOnce($filename) { + return include_once "./$filename"; + } + /** * @param literal-string $name * @param mixed[] $params