134 lines
5.4 KiB
PHP
134 lines
5.4 KiB
PHP
<?php
|
|
function adminer_errors($errno, $errstr) {
|
|
return !!preg_match('~^(Trying to access array offset on( value of type)? null|Undefined array key)~', $errstr);
|
|
}
|
|
|
|
if (is_dir('sentry')) {
|
|
error_reporting(E_ERROR | E_PARSE);
|
|
require_once('sentry/vendor/autoload.php');
|
|
\Sentry\init([
|
|
'dsn' => 'https://a08396e6a19cf4de14e1818ffca9d088@o4506874261340160.ingest.us.sentry.io/4506887610105856',
|
|
// Specify a fixed sample rate
|
|
'traces_sample_rate' => 1.0,
|
|
// Set a sampling rate for profiling - this is relative to traces_sample_rate
|
|
'profiles_sample_rate' => 1.0,
|
|
]);
|
|
} else {
|
|
error_reporting(6135); // errors and warnings
|
|
set_error_handler('adminer_errors', E_WARNING);
|
|
}
|
|
|
|
include "../adminer/include/coverage.inc.php";
|
|
|
|
// disable filter.default
|
|
$filter = !preg_match('~^(unsafe_raw)?$~', ini_get("filter.default"));
|
|
if ($filter || ini_get("filter.default_flags")) {
|
|
foreach (array('_GET', '_POST', '_COOKIE', '_SERVER') as $val) {
|
|
$unsafe = filter_input_array(constant("INPUT$val"), FILTER_UNSAFE_RAW);
|
|
if ($unsafe) {
|
|
$$val = $unsafe;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (function_exists("mb_internal_encoding")) {
|
|
mb_internal_encoding("8bit");
|
|
}
|
|
|
|
include "../adminer/include/functions.inc.php";
|
|
|
|
// used only in compiled file
|
|
if (isset($_GET["file"])) {
|
|
include "../adminer/file.inc.php";
|
|
}
|
|
|
|
if ($_GET["script"] == "version") {
|
|
$fp = file_open_lock(get_temp_dir() . "/adminer.version");
|
|
if ($fp) {
|
|
file_write_unlock($fp, serialize(array("signature" => $_POST["signature"], "version" => $_POST["version"])));
|
|
}
|
|
exit;
|
|
}
|
|
|
|
global $adminer, $connection, $driver, $drivers, $edit_functions, $enum_length, $error, $functions, $grouping, $HTTPS, $inout, $jush, $LANG, $langs, $on_actions, $permanent, $structured_types, $has_token, $token, $translations, $types, $unsigned, $VERSION; // allows including Adminer inside a function
|
|
|
|
if (!$_SERVER["REQUEST_URI"]) { // IIS 5 compatibility
|
|
$_SERVER["REQUEST_URI"] = $_SERVER["ORIG_PATH_INFO"];
|
|
}
|
|
if (!strpos($_SERVER["REQUEST_URI"], '?') && $_SERVER["QUERY_STRING"] != "") { // IIS 7 compatibility
|
|
$_SERVER["REQUEST_URI"] .= "?$_SERVER[QUERY_STRING]";
|
|
}
|
|
if ($_SERVER["HTTP_X_FORWARDED_PREFIX"]) {
|
|
$_SERVER["REQUEST_URI"] = $_SERVER["HTTP_X_FORWARDED_PREFIX"] . $_SERVER["REQUEST_URI"];
|
|
}
|
|
$HTTPS = ($_SERVER["HTTPS"] && strcasecmp($_SERVER["HTTPS"], "off")) || ini_bool("session.cookie_secure"); // session.cookie_secure could be set on HTTP if we are behind a reverse proxy
|
|
|
|
@ini_set("session.use_trans_sid", false); // protect links in export, @ - may be disabled
|
|
if (!defined("SID")) {
|
|
session_cache_limiter(""); // to allow restarting session
|
|
session_name("adminer_sid"); // use specific session name to get own namespace
|
|
$params = array(0, preg_replace('~\?.*~', '', $_SERVER["REQUEST_URI"]), "", $HTTPS);
|
|
if (version_compare(PHP_VERSION, '5.2.0') >= 0) {
|
|
$params[] = true; // HttpOnly
|
|
}
|
|
call_user_func_array('session_set_cookie_params', $params); // ini_set() may be disabled
|
|
session_start();
|
|
}
|
|
|
|
// disable magic quotes to be able to use database escaping function
|
|
remove_slashes(array(&$_GET, &$_POST, &$_COOKIE), $filter);
|
|
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";
|
|
include "../adminer/lang/$LANG.inc.php";
|
|
include "../adminer/include/pdo.inc.php";
|
|
include "../adminer/include/driver.inc.php";
|
|
include "../adminer/drivers/sqlite.inc.php";
|
|
include "../adminer/drivers/pgsql.inc.php";
|
|
include "../adminer/drivers/oracle.inc.php";
|
|
include "../adminer/drivers/mssql.inc.php";
|
|
include "../adminer/drivers/mongo.inc.php";
|
|
include "../adminer/drivers/elastic.inc.php";
|
|
include "./include/adminer.inc.php";
|
|
$adminer = (function_exists('adminer_object') ? adminer_object() : new Adminer);
|
|
include "../adminer/drivers/mysql.inc.php"; // must be included as last driver
|
|
|
|
$config = driver_config();
|
|
$possible_drivers = $config['possible_drivers'];
|
|
$jush = $config['jush'];
|
|
$types = $config['types'];
|
|
$structured_types = $config['structured_types'];
|
|
$unsigned = $config['unsigned'];
|
|
$operators = $config['operators'];
|
|
$operator_regexp = isset($config['operator_regexp']) && in_array($config['operator_regexp'], $operators) ? $config['operator_regexp'] : null;
|
|
$functions = $config['functions'];
|
|
$grouping = $config['grouping'];
|
|
$edit_functions = $config['edit_functions'];
|
|
if ($adminer->operators === null) {
|
|
$adminer->operators = $operators;
|
|
$adminer->operator_regexp = $operator_regexp;
|
|
}
|
|
|
|
define("SERVER", $_GET[DRIVER]); // read from pgsql=localhost
|
|
define("DB", $_GET["db"]); // for the sake of speed and size
|
|
define("ME", preg_replace('~\?.*~', '', relative_uri()) . '?'
|
|
. (sid() ? SID . '&' : '')
|
|
. (SERVER !== null ? DRIVER . "=" . urlencode(SERVER) . '&' : '')
|
|
. (isset($_GET["username"]) ? "username=" . urlencode($_GET["username"]) . '&' : '')
|
|
. (DB != "" ? 'db=' . urlencode(DB) . '&' . (isset($_GET["ns"]) ? "ns=" . urlencode($_GET["ns"]) . "&" : "") : '')
|
|
);
|
|
|
|
include "../adminer/include/version.inc.php";
|
|
include "../adminer/include/design.inc.php";
|
|
include "../adminer/include/xxtea.inc.php";
|
|
include "../adminer/include/auth.inc.php";
|
|
include "./include/editing.inc.php";
|
|
include "./include/connect.inc.php";
|
|
|
|
$on_actions = "RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT"; ///< @var string used in foreign_keys()
|