/** * First start output buffering then start SESSION * Reads configuration and main-language file lang.php and creates * Database-Object $dbo * * @param string $json Return JSON-Encoded answer * @param string $send_header If set to false headers are completely skipped * @return void */ function obstart($json = false, $send_header = true) { global $dbo, $config, $databases, $dump, $lang; if ($config['ob_gzhandler']) { if (!@ob_start("ob_gzhandler")) { @ob_start(); } } // if default config file doesn't exists, it is a new installation -> redirect to installation if (!$json && !file_exists('./work/config/mysqldumper.php')) { header("location: install.php"); die; exit; } session_name('MySQLDumper'); $res = session_start(); if (false === $res) { die("Error starting session! Check server."); } if (isset($_SESSION['config_file'])) { $config['config_file'] = $_SESSION['config_file']; } else { $config['config_file'] = 'mysqldumper'; } if ($send_header) { header('Pragma: no-cache'); header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1 header('Expires: -1'); // Datum in der Vergangenheit header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT'); if (!$json) { header('Content-Type: text/html; charset=UTF-8'); } else { header('Content-type: application/x-json'); } } // get config from configuration file if not set if (!isset($_SESSION['config'])) { getConfig($config['config_file']); } else { // otherwise get parameters from session $config = array_merge($config, $_SESSION['config']); if (isset($_SESSION['databases'])) { $databases = $_SESSION['databases']; } if (isset($_SESSION['dump'])) { $dump = $_SESSION['dump']; } } // special case -> configuration is set to a language that was deleted meanwhile if (!is_readable('./language/' . $config['language'] . '/lang.php')) { $config['language'] = 'en'; } include './language/' . $config['language'] . '/lang.php'; // create database object $dbo = MsdDbFactory::getAdapter($config['dbhost'], $config['dbuser'], $config['dbpass'], $config['dbport'], $config['dbsocket']); if (!isset($_SESSION['databases'])) { setDefaultConfig(); } //echo $config['db_actual']; // die(); if (isset($config['db_actual']) && $config['db_actual'] > '') { $dbo->selectDb($config['db_actual']); } else { if (!isset($databases)) { // no config loaded -> SetDefault-Values setDefaultConfig(); } // get first DB-Name and set as actual db $dbNames = array_keys($databases); $config['db_actual'] = $dbNames[0]; $dbo->selectDb($config['db_actual']); } //$_SESSION['config'] = $config; //$_SESSION['databases'] = $databases; }
} $tpl->assign_vars(array('LANGUAGE' => $config['language'], 'ICON_SAVE' => $icon['small']['save'])); if (isset($_POST['dbconnect'])) { // get inputs $config['dbhost'] = $_POST['dbhost']; $config['dbuser'] = $_POST['dbuser']; $config['dbpass'] = $_POST['dbpass']; $config['dbmanual'] = $_POST['dbmanual']; if ((int) $_POST['dbport'] > 0) { $config['dbport'] = (int) $_POST['dbport']; } else { $config['dbport'] = 3306; } $config['dbsocket'] = $_POST['dbsocket']; include './inc/classes/db/MsdDbFactory.php'; $dbo = MsdDbFactory::getAdapter($config['dbhost'], $config['dbuser'], $config['dbpass'], $config['dbport'], $config['dbsocket']); $connectMsg = $dbo->dbConnect(); if ($connectMsg === true) { if ($config['dbmanual'] > '') { $dbDetect = searchDatabases(1, $config['dbmanual']); } else { $dbDetect = searchDatabases(1); } } else { $tpl->assign_block_vars('CONNECTION_ERROR', array('MSG' => SQLError('', $connectMsg, true))); $dbDetect = false; } if (false !== $dbDetect) { $saveButton = str_replace('\'', '\\\'', $lang['L_SAVEANDCONTINUE']); $tpl->assign_block_vars('CONTINUE', array('SAVE_AND_CONTINUE' => $saveButton)); $tpl->assign_block_vars('OK', array());
/** * Disables keys for given table * * @param MsdDbFactory $dbo Database object * @param string $table Name of table * * @return bool */ public static function disableKeys(MsdDbFactory $dbo, $table) { $query = '/*!40000 ALTER TABLE `' . $table . '` DISABLE KEYS */'; return $dbo->query($query, MsdDbFactory::SIMPLE); }