Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php declare (strict_types = 1) { } namespace PhpMyAdmin\Controllers\Table; use PhpMyAdm..

Decoded Output download

<?php
 declare (strict_types = 1) { } namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Gis\GisVisualization; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; use PhpMyAdmin\Url; use PhpMyAdmin\Util; use function __; use function array_merge; use function is_array; final class GisVisualizationController extends AbstractController { private $visualization; private $dbi; public function __construct(ResponseRenderer $response, Template $template, string $db, string $table, DatabaseInterface $dbi) { parent::__construct($response, $template, $db, $table); $this->dbi = $dbi; } public function __invoke() : void { global $cfg, $urlParams, $db, $errorUrl; Util::checkParameters(array("db")); $errorUrl = Util::getScriptNameForOption($cfg["DefaultTabDatabase"], "database"); $errorUrl .= Url::getCommon(array("db" => $db), "&"); if (!$this->hasDatabase()) { return; } $sqlQuery = ''; if (isset($_GET["sql_query"], $_GET["sql_signature"])) { if (Core::checkSqlQuerySignature($_GET["sql_query"], $_GET["sql_signature"])) { $sqlQuery = $_GET["sql_query"]; } } elseif (isset($_POST["sql_query"])) { $sqlQuery = $_POST["sql_query"]; } if ($sqlQuery == '') { $this->response->setRequestStatus(false); $this->response->addHTML(Message::error(__("No SQL query was set to fetch data."))->getDisplay()); return; } $result = $this->dbi->tryQuery($sqlQuery); $meta = array(); if ($result !== false) { $meta = $this->dbi->getFieldsMeta($result); } $labelCandidates = array(); $spatialCandidates = array(); foreach ($meta as $column_meta) { if ($column_meta->isMappedTypeGeometry) { $spatialCandidates[] = $column_meta->name; } else { $labelCandidates[] = $column_meta->name; } } $visualizationSettings = array(); if (isset($_POST["visualizationSettings"]) && is_array($_POST["visualizationSettings"])) { $visualizationSettings = $_POST["visualizationSettings"]; } elseif (isset($_GET["visualizationSettings"]) && is_array($_GET["visualizationSettings"])) { $visualizationSettings = $_GET["visualizationSettings"]; } $visualizationSettings["mysqlVersion"] = $this->dbi->getVersion(); $visualizationSettings["isMariaDB"] = $this->dbi->isMariaDB(); if (!isset($visualizationSettings["labelColumn"]) && isset($labelCandidates[0])) { $visualizationSettings["labelColumn"] = ''; } if (!isset($visualizationSettings["spatialColumn"])) { $visualizationSettings["spatialColumn"] = $spatialCandidates[0]; } $pos = (int) ($_POST["pos"] ?? $_GET["pos"] ?? $_SESSION["tmpval"]["pos"]); if (isset($_POST["session_max_rows"]) || isset($_GET["session_max_rows"])) { $rows = (int) ($_POST["session_max_rows"] ?? $_GET["session_max_rows"]); } else { if ($_SESSION["tmpval"]["max_rows"] !== "all") { $rows = (int) $_SESSION["tmpval"]["max_rows"]; } else { $rows = (int) $GLOBALS["cfg"]["MaxRows"]; } } $this->visualization = GisVisualization::get($sqlQuery, $visualizationSettings, $rows, $pos); if (isset($_GET["saveToFile"])) { $this->saveToFile($visualizationSettings["spatialColumn"], $_GET["fileFormat"]); return; } $this->addScriptFiles(array("vendor/openlayers/OpenLayers.js", "table/gis_visualization.js")); if (!isset($_POST["displayVisualization"])) { if ($this->visualization->hasSrid()) { $visualizationSettings["choice"] = "useBaseLayer"; } else { unset($visualizationSettings["choice"]); } } $this->visualization->setUserSpecifiedSettings($visualizationSettings); if ($visualizationSettings != null) { foreach ($this->visualization->getSettings() as $setting => $val) { if (isset($visualizationSettings[$setting])) { continue; } $visualizationSettings[$setting] = $val; } } $urlParams["goto"] = Util::getScriptNameForOption($cfg["DefaultTabDatabase"], "database"); $urlParams["back"] = Url::getFromRoute("/sql"); $urlParams["sql_query"] = $sqlQuery; $urlParams["sql_signature"] = Core::signSqlQuery($sqlQuery); $downloadUrl = Url::getFromRoute("/table/gis-visualization", array_merge($urlParams, array("saveToFile" => true, "session_max_rows" => $rows, "pos" => $pos, "visualizationSettings[spatialColumn]" => $visualizationSettings["spatialColumn"], "visualizationSettings[labelColumn]" => $visualizationSettings["labelColumn"]))); $startAndNumberOfRowsFieldset = Generator::getStartAndNumberOfRowsFieldsetData($sqlQuery); $html = $this->template->render("table/gis_visualization/gis_visualization", array("url_params" => $urlParams, "download_url" => $downloadUrl, "label_candidates" => $labelCandidates, "spatial_candidates" => $spatialCandidates, "visualization_settings" => $visualizationSettings, "start_and_number_of_rows_fieldset" => $startAndNumberOfRowsFieldset, "visualization" => $this->visualization->toImage("svg"), "draw_ol" => $this->visualization->asOl())); $this->response->addHTML($html); } private function saveToFile(string $filename, string $format) : void { $this->response->disable(); $this->visualization->toFile($filename, $format); } } ?>

Did this file decode correctly?

Original Code

<?php
 declare (strict_types = 1) { } namespace PhpMyAdmin\Controllers\Table; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Gis\GisVisualization; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; use PhpMyAdmin\Url; use PhpMyAdmin\Util; use function __; use function array_merge; use function is_array; final class GisVisualizationController extends AbstractController { private $visualization; private $dbi; public function __construct(ResponseRenderer $response, Template $template, string $db, string $table, DatabaseInterface $dbi) { parent::__construct($response, $template, $db, $table); $this->dbi = $dbi; } public function __invoke() : void { global $cfg, $urlParams, $db, $errorUrl; Util::checkParameters(array("\x64\142")); $errorUrl = Util::getScriptNameForOption($cfg["\104\145\146\x61\165\154\164\x54\141\x62\104\x61\x74\x61\x62\141\x73\x65"], "\144\141\x74\141\142\141\x73\x65"); $errorUrl .= Url::getCommon(array("\144\142" => $db), "\x26"); if (!$this->hasDatabase()) { return; } $sqlQuery = ''; if (isset($_GET["\163\161\x6c\137\x71\165\x65\162\x79"], $_GET["\x73\161\154\x5f\163\x69\x67\156\141\164\x75\x72\145"])) { if (Core::checkSqlQuerySignature($_GET["\163\x71\154\x5f\x71\165\x65\x72\x79"], $_GET["\x73\x71\x6c\x5f\163\x69\x67\x6e\x61\x74\x75\162\x65"])) { $sqlQuery = $_GET["\x73\x71\x6c\137\x71\165\145\162\x79"]; } } elseif (isset($_POST["\x73\161\x6c\x5f\x71\165\x65\162\171"])) { $sqlQuery = $_POST["\163\x71\x6c\137\x71\x75\x65\x72\x79"]; } if ($sqlQuery == '') { $this->response->setRequestStatus(false); $this->response->addHTML(Message::error(__("\x4e\x6f\40\x53\x51\x4c\x20\161\x75\145\162\171\40\167\x61\163\40\x73\x65\164\40\x74\157\40\146\145\x74\x63\x68\40\x64\x61\164\141\x2e"))->getDisplay()); return; } $result = $this->dbi->tryQuery($sqlQuery); $meta = array(); if ($result !== false) { $meta = $this->dbi->getFieldsMeta($result); } $labelCandidates = array(); $spatialCandidates = array(); foreach ($meta as $column_meta) { if ($column_meta->isMappedTypeGeometry) { $spatialCandidates[] = $column_meta->name; } else { $labelCandidates[] = $column_meta->name; } } $visualizationSettings = array(); if (isset($_POST["\x76\x69\x73\x75\x61\x6c\151\x7a\x61\164\151\157\156\x53\x65\x74\164\151\156\x67\x73"]) && is_array($_POST["\x76\x69\163\x75\x61\154\x69\172\141\x74\151\157\156\x53\x65\x74\164\x69\x6e\x67\x73"])) { $visualizationSettings = $_POST["\x76\151\163\x75\141\154\151\172\x61\164\151\157\x6e\x53\145\164\164\151\x6e\x67\x73"]; } elseif (isset($_GET["\166\x69\x73\x75\141\154\151\x7a\141\x74\151\157\156\123\145\164\164\151\x6e\x67\x73"]) && is_array($_GET["\166\151\163\165\141\x6c\151\172\x61\x74\x69\157\x6e\123\145\164\164\x69\156\x67\x73"])) { $visualizationSettings = $_GET["\x76\x69\163\x75\x61\154\151\172\141\x74\x69\x6f\156\x53\145\164\x74\151\x6e\147\163"]; } $visualizationSettings["\x6d\171\x73\x71\x6c\x56\145\x72\163\x69\157\156"] = $this->dbi->getVersion(); $visualizationSettings["\x69\163\115\x61\x72\x69\141\x44\102"] = $this->dbi->isMariaDB(); if (!isset($visualizationSettings["\154\141\x62\x65\x6c\x43\157\154\x75\155\x6e"]) && isset($labelCandidates[0])) { $visualizationSettings["\154\141\x62\145\x6c\103\157\x6c\x75\x6d\x6e"] = ''; } if (!isset($visualizationSettings["\163\160\x61\164\151\141\154\103\x6f\x6c\165\155\x6e"])) { $visualizationSettings["\163\160\141\x74\x69\141\x6c\103\157\x6c\165\155\156"] = $spatialCandidates[0]; } $pos = (int) ($_POST["\160\157\x73"] ?? $_GET["\160\157\163"] ?? $_SESSION["\164\x6d\160\166\x61\x6c"]["\160\157\x73"]); if (isset($_POST["\163\145\x73\163\x69\x6f\156\x5f\x6d\x61\x78\137\162\157\167\163"]) || isset($_GET["\x73\x65\163\x73\151\157\156\x5f\x6d\x61\170\137\x72\157\167\163"])) { $rows = (int) ($_POST["\163\145\163\163\x69\x6f\x6e\137\x6d\x61\x78\137\162\157\167\163"] ?? $_GET["\163\x65\163\x73\x69\x6f\x6e\x5f\x6d\141\170\137\162\x6f\x77\x73"]); } else { if ($_SESSION["\x74\155\x70\166\x61\154"]["\x6d\x61\170\x5f\162\x6f\167\163"] !== "\x61\x6c\154") { $rows = (int) $_SESSION["\164\155\160\166\141\x6c"]["\x6d\141\x78\x5f\x72\157\167\163"]; } else { $rows = (int) $GLOBALS["\143\146\147"]["\115\141\x78\x52\x6f\x77\163"]; } } $this->visualization = GisVisualization::get($sqlQuery, $visualizationSettings, $rows, $pos); if (isset($_GET["\163\141\166\145\x54\157\x46\x69\154\x65"])) { $this->saveToFile($visualizationSettings["\163\160\x61\x74\151\141\154\103\157\154\x75\155\156"], $_GET["\146\x69\154\145\106\157\x72\155\x61\164"]); return; } $this->addScriptFiles(array("\166\x65\156\x64\157\162\x2f\157\160\x65\x6e\154\x61\171\145\162\x73\x2f\117\160\145\x6e\x4c\x61\x79\145\162\163\56\152\163", "\164\141\x62\x6c\145\x2f\x67\x69\x73\x5f\166\x69\x73\x75\141\154\151\x7a\141\x74\x69\x6f\x6e\56\x6a\163")); if (!isset($_POST["\144\x69\163\x70\x6c\x61\x79\126\151\163\x75\x61\154\x69\172\x61\x74\151\157\156"])) { if ($this->visualization->hasSrid()) { $visualizationSettings["\143\150\x6f\x69\x63\145"] = "\x75\x73\145\x42\x61\x73\x65\114\141\x79\145\162"; } else { unset($visualizationSettings["\x63\150\x6f\x69\143\x65"]); } } $this->visualization->setUserSpecifiedSettings($visualizationSettings); if ($visualizationSettings != null) { foreach ($this->visualization->getSettings() as $setting => $val) { if (isset($visualizationSettings[$setting])) { continue; } $visualizationSettings[$setting] = $val; } } $urlParams["\x67\x6f\x74\x6f"] = Util::getScriptNameForOption($cfg["\104\145\146\141\165\154\164\124\141\x62\104\141\x74\x61\142\141\x73\145"], "\144\141\164\141\142\x61\163\x65"); $urlParams["\x62\141\143\x6b"] = Url::getFromRoute("\x2f\x73\x71\154"); $urlParams["\163\x71\x6c\x5f\161\x75\x65\162\171"] = $sqlQuery; $urlParams["\163\161\154\x5f\x73\151\x67\156\x61\164\165\x72\x65"] = Core::signSqlQuery($sqlQuery); $downloadUrl = Url::getFromRoute("\x2f\164\x61\x62\154\x65\x2f\147\151\163\x2d\166\x69\x73\165\x61\x6c\x69\x7a\x61\x74\151\x6f\156", array_merge($urlParams, array("\x73\x61\166\x65\x54\x6f\106\x69\154\x65" => true, "\x73\145\x73\x73\x69\x6f\156\x5f\155\141\x78\x5f\162\157\167\x73" => $rows, "\x70\x6f\163" => $pos, "\x76\151\x73\x75\x61\154\x69\172\x61\164\x69\x6f\156\x53\145\x74\164\151\x6e\x67\163\x5b\x73\160\x61\164\151\x61\x6c\x43\157\x6c\x75\155\x6e\x5d" => $visualizationSettings["\x73\160\x61\x74\x69\141\x6c\x43\157\154\x75\155\x6e"], "\166\151\163\165\x61\x6c\151\172\141\x74\x69\157\156\x53\x65\164\164\x69\x6e\x67\163\x5b\154\141\142\145\154\103\157\154\x75\x6d\156\135" => $visualizationSettings["\154\141\142\x65\x6c\x43\157\154\x75\x6d\x6e"]))); $startAndNumberOfRowsFieldset = Generator::getStartAndNumberOfRowsFieldsetData($sqlQuery); $html = $this->template->render("\x74\x61\x62\154\145\x2f\147\x69\x73\x5f\x76\151\163\x75\141\154\151\172\x61\x74\151\x6f\156\57\147\x69\163\137\x76\x69\163\165\x61\154\x69\x7a\x61\x74\151\157\x6e", array("\165\x72\x6c\137\160\x61\162\x61\x6d\163" => $urlParams, "\144\157\167\156\154\x6f\x61\x64\137\165\162\x6c" => $downloadUrl, "\x6c\141\142\145\x6c\x5f\x63\x61\156\144\151\x64\141\x74\145\163" => $labelCandidates, "\x73\x70\x61\164\x69\x61\154\137\x63\x61\x6e\x64\151\x64\141\164\145\x73" => $spatialCandidates, "\x76\x69\163\x75\141\x6c\151\x7a\141\164\x69\157\x6e\x5f\163\145\164\x74\x69\156\x67\163" => $visualizationSettings, "\163\164\141\162\164\x5f\x61\156\144\137\156\165\155\142\145\162\x5f\157\146\x5f\x72\157\x77\163\137\146\x69\x65\x6c\144\x73\145\164" => $startAndNumberOfRowsFieldset, "\166\151\163\x75\141\154\x69\172\x61\x74\151\157\x6e" => $this->visualization->toImage("\163\x76\x67"), "\x64\x72\141\167\137\x6f\x6c" => $this->visualization->asOl())); $this->response->addHTML($html); } private function saveToFile(string $filename, string $format) : void { $this->response->disable(); $this->visualization->toFile($filename, $format); } }

Function Calls

None

Variables

None

Stats

MD5 6b19f4c8260be201ffdb554eed7d207a
Eval Count 0
Decode Time 47 ms