]> git.joonet.de Git - adminer.git/commitdiff
Ensure PHP 5.3 compatibility
authorJakub Vrana <jakub@vrana.cz>
Tue, 11 Mar 2025 20:43:59 +0000 (21:43 +0100)
committerJakub Vrana <jakub@vrana.cz>
Tue, 11 Mar 2025 20:43:59 +0000 (21:43 +0100)
adminer/create.inc.php
adminer/drivers/pgsql.inc.php
adminer/drivers/sqlite.inc.php
adminer/include/bootstrap.inc.php
phpcs.xml
plugins/drivers/simpledb.php

index ede508a27b3db977923652327f9e00f48405707d..70c3fc694cd33e74672bd7f5c7cd71419fcdba8c 100644 (file)
@@ -83,17 +83,18 @@ if ($_POST && !process_fields($row["fields"]) && !$error) {
                $partitioning = "";
                if (support("partitioning")) {
                        if (isset($partition_by[$row["partition_by"]])) {
-                               $params = array_filter($row, function ($key) {
-                                       return preg_match('~^partition~', $key);
-                               }, ARRAY_FILTER_USE_KEY);
-
+                               $params = array();
+                               foreach ($row as $key => $val) {
+                                       if (preg_match('~^partition~', $key)) {
+                                               $params[$key] = $val;
+                                       }
+                               }
                                foreach ($params["partition_names"] as $key => $name) {
                                        if ($name == "") {
                                                unset($params["partition_names"][$key]);
                                                unset($params["partition_values"][$key]);
                                        }
                                }
-
                                if ($params != get_partitions_info($TABLE)) {
                                        $partitions = array();
                                        if ($params["partition_by"] == 'RANGE' || $params["partition_by"] == 'LIST') {
@@ -102,7 +103,6 @@ if ($_POST && !process_fields($row["fields"]) && !$error) {
                                                        $partitions[] = "\n  PARTITION " . idf_escape($name) . " VALUES " . ($params["partition_by"] == 'RANGE' ? "LESS THAN" : "IN") . ($value != "" ? " ($value)" : " MAXVALUE"); //! SQL injection
                                                }
                                        }
-
                                        // $params["partition"] can be expression, not only column
                                        $partitioning .= "\nPARTITION BY $params[partition_by]($params[partition])";
                                        if ($partitions) {
index 7df77016d55f4d92cd58b9309f2a8e45b3c8bd6d..e6c3ca10993a19f6967a74aaf5f2e376cbeea3de 100644 (file)
@@ -43,7 +43,10 @@ if (isset($_GET["pgsql"])) {
                        }
 
                        function quote($string) {
-                               return pg_escape_literal($this->link, $string);
+                               return (function_exists('pg_escape_literal')
+                                       ? pg_escape_literal($this->link, $string) // available since PHP 5.4.4
+                                       : "'" . pg_escape_string($this->link, $string) . "'"
+                               );
                        }
 
                        function value($val, $field) {
index 151dbeed9e59c3579436e5892cce98caf9d3a775..804a85c4fa8870f7042166d7303eeb8f3e9db8fb 100644 (file)
@@ -78,7 +78,7 @@ if (isset($_GET["sqlite"])) {
                                );
                        }
 
-                       function __desctruct() {
+                       function __destruct() {
                                return $this->result->finalize();
                        }
                }
index ca5a780987447817c235e09866bcfd35d0a805ad..a08acf96d33e6c247b72bcfb390ecb9c2ec401a7 100644 (file)
@@ -62,7 +62,6 @@ if (function_exists("get_magic_quotes_runtime") && get_magic_quotes_runtime()) {
        set_magic_quotes_runtime(false);
 }
 @set_time_limit(0); // @ - can be disabled
-@ini_set("zend.ze1_compatibility_mode", false); // @ - deprecated
 @ini_set("precision", 15); // @ - can be disabled, 15 - internal PHP precision
 
 include "../adminer/include/lang.inc.php";
index 56c71c353c7bc87018959336d2337dbb502830dc..d6b72fa8e1627ddf75f0a9200fd42a801185534b 100644 (file)
--- a/phpcs.xml
+++ b/phpcs.xml
        <rule ref="Squiz.WhiteSpace.LanguageConstructSpacing"/>
        <rule ref="Squiz.WhiteSpace.LogicalOperatorSpacing"/>
        <rule ref="Squiz.WhiteSpace.ObjectOperatorSpacing"/>
+
+       <!--
+       This is slow and has false positives but it's useful occasionally.
+       https://github.com/PHPCompatibility/PHPCompatibility
+       <rule ref="PHPCompatibility"/>
+       <config name="testVersion" value="5.3-"/>
+       -->
 </ruleset>
index 0ac5f3fd64352d7929fe8813387ac16bd8562f34..488a10d2f1a962fca96a431d08cbce7d50e2175a 100644 (file)
@@ -422,7 +422,7 @@ if (isset($_GET["simpledb"])) {
                        'max_redirects' => 0,
                ))));
                if (!$file) {
-                       $this->error = lang('Invalid credentials.');
+                       $connection->error = lang('Invalid credentials.');
                        return false;
                }
                libxml_use_internal_errors(true);