function __construct($db = array()) { $default = array('host' => 'localhost', 'user' => 'root', 'pass' => '', 'db' => 'ogs'); $db = array_merge($default, $db); self::$con = mysql_connect($db['host'], $db['user'], $db['pass'], true) or die('Error connecting to MySQL'); mysql_select_db($db['db'], self::$con) or die('Database ' . $db['db'] . ' does not exist!'); }
/** * Inicializovat system * * @param string $root relativni cesta do korenoveho adresare * @param string|null $configFile cesta ke konfiguracnimu skriptu nebo null(= vychozi) * @param bool $envChanges provest zmeny v prostredi (error reporting, locale, header, ...) 1/0 * @param bool $lightMode odlehceny mod (pouze pripojeni k db, bez session, nastaveni, lokalizace, atd) 1/0 * @param bool $databaseEnabled inicializovat pripojeni k databazi 1/0 * @param bool $runCron automaticky spustit cron, je-li aktivovan 1/0 */ public static function init($root, $configFile = null, $envChanges = true, $lightMode = false, $databaseEnabled = true, $runCron = true) { if (self::$initialized) { throw new BadMethodCallException(); } $initialized = true; self::$start = microtime(true); /* ---- konfigurace ---- */ if (null === $configFile) { self::$configFile = $root . 'config.php'; } else { self::$configFile = $configFile; } self::$envChanges = $envChanges; self::$lightMode = $lightMode; self::$databaseEnabled = $databaseEnabled; self::$imageError = $root . 'remote/image_error.png'; // soubor s nastavenim require self::$configFile; // doplneni konfigurace (kvuli kompatibilite) if (!isset($locale)) { $locale = array('czech', 'utf8', 'cz_CZ'); } if (!isset($timezone)) { $timezone = 'Europe/Prague'; } if (!isset($geo)) { $geo = array(50.5, 14.26, 90.583333); } if (!isset($port)) { // pokud neni uveden $port, muze byt definovan jako soucast $server (server:port) if (false !== ($serverColonPos = strpos($server, ':'))) { $port = (int) substr($server, $serverColonPos + 1); $server = substr($server, 0, $serverColonPos); } else { $port = ini_get('mysqli.default_port'); } } // systemove konstanty define('_indexroot', $root); define('_core', '1'); define('_nl', "\n"); define('_sessionprefix', md5($server . $database . $user . $prefix) . '-'); if (!defined('_administration')) { define('_administration', 0); } define('_dev', isset($dev) ? $dev : true); // vyvojovy mod 1/0 define('_systemstate', 0); // 0 = beta, 1 = rc, 2 = stable define('_systemstate_revision', 0); // revize systemu define('_systemversion', '7.5.5'); // verze systemu define('_mysql_prefix', $prefix); define('_mysql_db', $database); define('_upload_dir', _indexroot . 'upload/'); define('_plugin_dir', _indexroot . 'plugins/common/'); define('_tmp_dir', _indexroot . 'data/tmp/'); define('_void_file', _indexroot . 'data/void.nodelete'); define('_geo_latitude', $geo[0]); define('_geo_longitude', $geo[1]); define('_geo_zenith', $geo[2]); /* ---- autoloader ---- */ require _indexroot . 'require/class/class_loader.php'; self::$classLoader = new ClassLoader(); self::$classLoader->setDebug(_dev)->registerClassMap(array('AdminBread' => _indexroot . 'require/class/admin_bread.php', 'Color' => _indexroot . 'require/class/color.php', 'DBDump' => _indexroot . 'require/class/dbdump.php', 'KZip' => _indexroot . 'require/class/kzip.php', 'KZipStream' => _indexroot . 'require/class/kzip.php', 'TreeManager' => _indexroot . 'require/class/tree_manager.php', 'TreeReader' => _indexroot . 'require/class/tree_reader.php', 'LangPack' => _indexroot . 'require/class/lang_pack.php', 'FileCache' => _indexroot . 'require/class/file_cache.php'))->register(); /* ---- upravy PHP prostredi ---- */ if ($envChanges) { // kontrola verze PHP a pritomnosti rozsireni if (version_compare(PHP_VERSION, '5.1.0', '<')) { _systemFailure('Je vyžadováno PHP 5.1.0 nebo novější.'); } if (!extension_loaded('mbstring')) { _systemFailure('Chybí PHP rozšíření <code>mbstring</code> (Multibyte String Functions).'); } if (!extension_loaded('mysqli')) { _systemFailure('Chybí PHP rozšíření <code>mysqli</code>, které je potřebné pro práci s databází.'); } // kontrola a nastaveni $_SERVER['REQUEST_URI'] if (!isset($_SERVER['REQUEST_URI'])) { if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL']; } elseif (isset($_SERVER['HTTP_REQUEST_URI'])) { $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_REQUEST_URI']; } else { if (isset($_SERVER['SCRIPT_NAME'])) { $_SERVER['HTTP_REQUEST_URI'] = $_SERVER['SCRIPT_NAME']; } else { $_SERVER['HTTP_REQUEST_URI'] = $_SERVER['PHP_SELF']; } if (!empty($_SERVER['QUERY_STRING'])) { $_SERVER['HTTP_REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']; } $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_REQUEST_URI']; } } // vyruseni register_globals if (ini_get('register_globals') != '') { foreach (array_keys($_REQUEST) as $key) { unset($GLOBALS[$key]); } } // vypnuti magic_quotes if (get_magic_quotes_gpc()) { $search = array(&$_GET, &$_POST, &$_COOKIE); for ($i = 0; isset($search[$i]); ++$i) { foreach ($search[$i] as &$value) { if (is_array($value)) { $search[] =& $value; } else { $value = stripslashes($value); } } unset($search[$i]); } if (function_exists('set_magic_quotes_runtime')) { @set_magic_quotes_runtime(0); } unset($search, $i, $value); } // hlaseni chyb $err_rep = E_ALL; if (_dev) { $disable = array(); } else { $disable = array('E_NOTICE ', 'E_USER_NOTICE', 'E_DEPRECATED', 'E_STRICT'); } for ($i = 0; isset($disable[$i]); ++$i) { if (defined($disable[$i])) { $err_rep &= ~constant($disable[$i]); } } error_reporting($err_rep); // casove pasmo @setlocale(LC_TIME, $locale); if (function_exists('date_default_timezone_set')) { date_default_timezone_set($timezone); } // interni kodovani mb_internal_encoding('UTF-8'); // vychozi hlavicky if (!defined('_header')) { header('Content-Type: text/html; charset=UTF-8'); header('Expires: ' . gmdate('D, d M Y H:i:s', time() - 604800) . ' GMT'); } elseif (_header) { header(_header); } } /* ---- nacteni funkci ---- */ require _indexroot . 'require/functions.php'; if (isset($_GET['___identify'])) { echo 'SunLight CMS ', _systemversion, ' ', self::$states[_systemstate], _systemstate_revision; exit; } /* ---- pripojeni k mysql ---- */ if ($databaseEnabled) { $con = @mysqli_connect($server, $user, $password, $database, $port); if (!is_object($con)) { _systemFailure('Připojení k databázi se nezdařilo. Důvodem je pravděpodobně výpadek serveru nebo chybné přístupové údaje.</p><hr /><pre>' . _htmlStr(mysqli_connect_error()) . '</pre><hr /><p>Zkontrolujte přístupové údaje v souboru <em>config.php</em>.'); } $con->set_charset('utf8'); DB::$con = $con; DB::query('SET sql_mode=\'\''); } /* ---- konstanty nastaveni, jazykovy soubor, motiv, session ---- */ if (!$lightMode) { // definovani konstant nastaveni $query = DB::query('SELECT * FROM `' . _mysql_prefix . '-settings`', true); $directive = array('banned' => ''); if (DB::error() != false) { _systemFailure('Připojení k databázi proběhlo úspěšně, ale dotaz na databázi selhal.</p><hr /><pre>' . _htmlStr(DB::error()) . '</pre><hr /><p>Zkontrolujte, zda je databáze správně nainstalovaná.'); } while ($item = DB::row($query)) { if (isset($directive[$item['var']])) { // direktiva $directive[$item['var']] = $item['val']; } elseif ($item['var'][0] === '.') { // nastaveni zacinajici teckou self::$settings[substr($item['var'], 1)] = $item['val']; } else { // konstanta define('_' . $item['var'], $item['val']); } } DB::free($query); // nastavit interval pro maintenance self::$cronIntervals['maintenance'] = _maintenance_interval; // ip adresa klienta if (empty($_SERVER['REMOTE_ADDR'])) { $_SERVER['REMOTE_ADDR'] = '127.0.0.1'; } if (_proxy_mode && isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } define('_userip', trim(($addr_comma = strrpos($ip, ',')) === false ? $ip : substr($ip, $addr_comma + 1))); // poinstalacni kontrola if (_install_check) { require _indexroot . 'require/installcheck.php'; } // kontrola verze databaze if (!defined('_dbversion') or !_checkVersion('database', _dbversion)) { _systemFailure('Verze nainstalované databáze není kompatibilní s verzí systému. Pokud byl právě aplikován patch pro přechod na novější verzi, pravděpodobně jste zapoměl(a) spustit skript pro aktualizaci databáze.'); } // inicializace session require _indexroot . 'require/session.php'; // inicializace jazykoveho souboru if (_loginindicator and _language_allowcustom and _loginlanguage != "") { $language = _loginlanguage; } else { $language = _language; } $langfile = _indexroot . 'plugins/languages/' . $language . '.php'; $langfile_default = _indexroot . 'plugins/languages/default.php'; if (file_exists($langfile)) { $GLOBALS['_lang'] = (require $langfile); define('_active_language', $language); } else { if (file_exists($langfile_default)) { $GLOBALS['_lang'] = (require $langfile_default); define('_active_language', 'default'); } else { _systemFailure('Zvolený ani přednastavený jazykový soubor nebyl nalezen.'); } } // kontrola verze jazykoveho souboru if (!_checkVersion('language_file', $GLOBALS['_lang']['main.version'])) { DB::query('UPDATE `' . _mysql_prefix . '-settings` SET val="default" WHERE var="language"'); _systemFailure('Zvolený jazykový soubor není kompatibilní s verzí systému.'); } // kontrola blokace IP if ($directive['banned'] !== '' && !_administration) { $directive['banned'] = explode("\n", $directive['banned']); for ($i = 0; isset($directive['banned'][$i]); ++$i) { if (0 === strncmp($directive['banned'][$i], _userip, strlen($directive['banned'][$i]))) { header('HTTP/1.0 403 Forbidden'); if (defined('_header')) { die('Your IP address is banned'); } require _indexroot . 'require/ipban.php'; die; } } } // motiv $template = _indexroot . 'plugins/templates/' . _template . '/template.php'; $template_config = _indexroot . 'plugins/templates/' . _template . '/config.php'; if (!file_exists($template) or !file_exists($template_config)) { DB::query('UPDATE `' . _mysql_prefix . '-settings` SET val=\'default\' WHERE var=\'template\''); _systemFailure('Zvolený motiv ' . _template . ' nebyl nalezen. Přepnuto na výchozí motiv.'); } require $template_config; // kontrola verze motivu if (!_checkVersion('template', _template_version) and !_administration) { _systemFailure('Zvolený motiv není kompatibilní s verzí systému.'); } // nacist rozsireni _extendLoad(); // udalost inicializace systemu _extend('call', 'sys.init'); // systemove callbacky _extend('reg', 'sys.cron.maintenance', array(__CLASS__, 'doMaintenance')); // cron if (_cron_auto && $runCron) { self::runCron(); } } }
private function __construct() { self::$mysqli = new mysqli($this->db['url'], $this->db['user'], $this->db['password'], $this->db['database']); self::$mysqli->query("SET NAMES 'utf8'"); self::$con = self::con(); }
function _tmp_installer_install() { global $_lang, $self, $is_clean; // krok static $steps = 3; if (isset($_POST['step'])) { $step = intval($_POST['step']); if ($step < 1 || $step > $steps) { $step = 1; } } else { $step = 1; } $fname = basename(__FILE__); if (!empty($_POST)) { echo '<a href="./' . $fname . '" id="cancelink">' . $_lang['global.cancel'] . '</a>'; } ?> <h2><?php echo str_replace(array('*step*', '*steps*', '*name*'), array($step, $steps, $_lang['step.' . $step]), $_lang['install']); ?> </h2> <form action="./<?php echo $fname; ?> " method="post" name="instform" autocomplete="off"> <?php switch ($step) { // kontrola case 1: if (isset($_POST['check'])) { // nacteni a kontrola existence souboru $a_files = $self->listFilesOnPath('/files/'); $conflicts = array(); $counter = 0; $err_limit = 10; for ($i = 0; isset($a_files[$i]); ++$i) { $path = './' . substr($a_files[$i], 7); if (file_exists($path)) { ++$counter; if ($counter <= $err_limit) { $conflicts[] = str_replace('*path*', $path, $_lang['step.1.err.file']); } } } if ($counter > $err_limit) { $conflicts[] = str_replace('*n*', $counter - $err_limit, $_lang['step.1.err.file.etc']); } // zprava nebo pokracovani if (empty($conflicts)) { // vse je ok $step = 2; echo '<p class="green center">' . $_lang['step.1.ok'] . '</p>'; echo '<p class="center"><input type="submit" value="' . $_lang['global.continue'] . '"></p>'; break; } else { // jsou chyby echo '<p class="red">' . $_lang['step.1.err'] . ':</p>'; echo "<ul>\n"; for ($i = 0; isset($conflicts[$i]); ++$i) { echo "<li>" . $conflicts[$i] . "</li>\n"; } echo "</ul>"; } } echo '<p class="center"><input type="submit" name="check" value="' . $_lang['step.1.submit'] . '"></p>'; break; // konfigurace & instalace // konfigurace & instalace case 2: case 3: // navrat z kroku 3 if (isset($_POST['return_to_cfg'])) { $step = 2; unset($_POST['return_to_cfg']); } // instalace $install = $step == 3; if (isset($_POST['sys_url'])) { // zpracovat url $_POST['sys_url'] = _removeSlashesFromEnd($_POST['sys_url']); // kontroly $err = null; do { // prefix $prefix = trim($_POST['db_prefix']); if ($prefix === '') { $err = str_replace('*input*', $_lang['step.2.db.prefix'], $_lang['step.2.err.empty']); break; } // ucet administratora $_POST['admin_name'] = _anchorStr(trim($_POST['admin_name']), false); $_POST['admin_email'] = trim($_POST['admin_email']); // pouze pro cistou instalaci if ($is_clean) { // vynutit ucet administratora if ($_POST['admin_name'] === '') { $err = str_replace('*input*', $_lang['step.2.admin.name'], $_lang['step.2.err.empty']); break; } if ($_POST['admin_pwd'] === '') { $err = str_replace('*input*', $_lang['step.2.admin.pwd'], $_lang['step.2.err.empty']); break; } if ($_POST['admin_email'] === '' || $_POST['admin_email'] === '@') { $err = str_replace('*input*', $_lang['step.2.admin.email'], $_lang['step.2.err.empty']); break; } // titulek stranek $_POST['sys_title'] = trim($_POST['sys_title']); if ($_POST['sys_title'] === '') { $err = str_replace('*input*', $_lang['step.2.sys.title'], $_lang['step.2.err.empty']); break; } // popis, klicova slova $_POST['sys_descr'] = trim($_POST['sys_descr']); $_POST['sys_kwrds'] = trim($_POST['sys_kwrds']); } // email administratora if ($_POST['admin_email'] !== '' && $_POST['admin_email'] !== '@' && !_validateEmail($_POST['admin_email'])) { $err = $_lang['step.2.err.admin.email']; break; } // heslo administratora if ($_POST['admin_pwd'] !== '' && $_POST['admin_pwd'] !== $_POST['admin_pwd2']) { $err = $_lang['step.2.err.admin.pwd']; break; } // DB port $server = $_POST['db_server']; if (false !== ($serverColonPos = strpos($server, ':'))) { $port = (int) substr($server, $serverColonPos + 1); $server = substr($server, 0, $serverColonPos); } else { $port = ini_get('mysqli.default_port'); } // pripojeni $con = @mysqli_connect($server, $_POST['db_user'], $_POST['db_pwd'], $_POST['db_name'], $port); if (!is_object($con)) { $err = $_lang['step.2.err.con'] . '<br><code>' . _htmlStr(mysqli_connect_error()) . '</code>'; break; } // kodovani a konstanty DB::$con = $con; DB::$con->set_charset('utf8'); DB::query('SET sql_mode=\'\''); define('_mysql_prefix', $prefix); // existence tabulek $prefix = DB::esc($prefix); $q = DB::query('SHOW TABLES LIKE \'' . $prefix . '-%\''); $tables = array(); while ($r = DB::rown($q)) { $tables[] = $r[0]; } if (!empty($tables) && !isset($_POST['db_overwrite'])) { $err = $_lang['step.2.err.tables'] . ':<br><br>• ' . implode("<br>\n• ", $tables); break; } // vse ok if ($install) { if (!isset($_POST['do_install'])) { // potvrzeni echo _getPostdata(false, null, array('step')); echo '<p class="green center">' . $_lang['step.3.text'] . '</p>'; echo '<p class="center"> <input type="submit" name="do_install" value="' . $_lang['step.3.submit'] . '" onclick="if (window.sl_install_process) return false; else {window.sl_install_process = true; this.value=\'' . $_lang['step.3.wait'] . '\'}"> <input type="submit" name="return_to_cfg" value="' . $_lang['step.3.return'] . '"> </p>'; } else { // provedeni $err = null; try { // rozbalit soubory $self->extractFiles('./', '/files/', false, true, array($self->vars['void'])); // vytvorit konfiguracni soubor global $cfg_locale, $cfg_timezone; file_put_contents('./config.php', str_replace(array('/* @@@server@@@ */', '/* @@@user@@@ */', '/* @@@password@@@ */', '/* @@@database@@@ */', '/* @@@prefix@@@ */', '/* @@@locale@@@ */', '/* @@@timezone@@@ */'), array(var_export($_POST['db_server'], true), var_export($_POST['db_user'], true), var_export($_POST['db_pwd'], true), var_export($_POST['db_name'], true), var_export($prefix, true), var_export($cfg_locale, true), var_export($cfg_timezone, true)), $self->getFile('/files/data/installer/config.php.tpl'))); // smazat tabulky z databaze? if (!empty($tables)) { for ($i = 0; isset($tables[$i]); ++$i) { DB::query('DROP TABLE `' . $tables[$i] . '`', true); if (($sql_err = DB::error()) !== '') { throw new _InstallException($_lang['step.3.err.drop'] . '<br><code>' . $sql_err . '</code>'); } } } // deaktivovat kontrolu verze function _checkVersion() { return true; } // vytvorit strukturu databaze $dbdump = new DBDump(); $dbdump->importTables($self->getFile('/database/struct')); // nacist data $data_stream = $self->getFileStream('/database/data'); $dbdump->importData($data_stream); $data_stream->free(); // aktualizovat url DB::query('UPDATE `' . $prefix . '-settings` SET `val`=' . DB::val($_POST['sys_url']) . ' WHERE `var`=\'url\''); // vypnout mod rewrite pokud neexistuje .htaccess if (!file_exists(_indexroot . '.htaccess')) { DB::query('UPDATE `' . $prefix . '-settings` SET `val`=0 WHERE `var`=\'modrewrite\''); } // upravit ucet administratora $admin_upd = array(); if ($_POST['admin_name'] !== '') { $admin_upd['username'] = $_POST['admin_name']; if (!$is_clean) { $admin_upd['publicname'] = ''; } } if ($_POST['admin_email'] !== '' && $_POST['admin_email'] !== '@') { $admin_upd['email'] = $_POST['admin_email']; } if ($_POST['admin_pwd'] !== '') { $admin_pwd = _md5Salt($_POST['admin_pwd']); $admin_upd['password'] = $admin_pwd[0]; $admin_upd['salt'] = $admin_pwd[1]; } if ($is_clean) { $admin_upd['registertime'] = time(); $admin_upd['activitytime'] = time(); } if (!empty($admin_upd)) { $admin_upd_sql = ''; $counter = 0; foreach ($admin_upd as $col => $val) { if ($counter !== 0) { $admin_upd_sql .= ','; } $admin_upd_sql .= '`' . $col . '`=' . DB::val($val); ++$counter; } DB::query('UPDATE `' . $prefix . '-users` SET ' . $admin_upd_sql . ' WHERE id=0'); } // aktualizovat titulek, klic. slova a popis if ($is_clean) { DB::query('UPDATE `' . $prefix . '-settings` SET `val`=' . DB::val(_htmlStr($_POST['sys_title'])) . ' WHERE `var`=\'title\''); DB::query('UPDATE `' . $prefix . '-settings` SET `val`=' . DB::val(_htmlStr($_POST['sys_kwrds'])) . ' WHERE `var`=\'keywords\''); DB::query('UPDATE `' . $prefix . '-settings` SET `val`=' . DB::val(_htmlStr($_POST['sys_descr'])) . ' WHERE `var`=\'description\''); } // vypnout mod_rewrite DB::query('UPDATE `' . $prefix . '-settings` SET `val`=\'0\' WHERE `var`=\'mod_rewrite\''); // vynutit kontrolu instalace DB::query('UPDATE `' . $prefix . '-settings` SET `val`=\'1\' WHERE `var`=\'install_check\''); } catch (_InstallException $e) { $err = $e->getMessage(); } catch (Exception $e) { $err = _htmlStr($e->getMessage()); } // uspech ci chyba if (isset($err)) { echo '<p class="red">' . $err . '</p>'; echo '<p class="red">' . $_lang['step.3.err.warning'] . '</p>'; } else { echo '<p class="green center">' . str_replace('*fname*', $fname, $_lang['step.3.fin']) . '</p>'; } } break 2; } else { $step = 3; echo '<p class="green center">' . $_lang['step.2.ok'] . '</p>'; } } while (false); // chyba if (isset($err)) { echo '<p class="red">' . $err . '</p>'; } } ?> <table> <thead><th colspan="2"><?php echo $_lang['step.2.sys']; ?> </th></thead> <tbody> <tr> <th><?php echo $_lang['step.2.sys.url']; ?> </th> <td><input type="text" name="sys_url"<?php echo _restorePostValue('sys_url'); ?> ></td> </tr> <?php if ($is_clean) { ?> <tr> <th><?php echo $_lang['step.2.sys.title']; ?> </th> <td><input type="text" name="sys_title"<?php echo _restorePostValue('sys_title'); ?> ></td> </tr> <tr> <th><?php echo $_lang['step.2.sys.descr']; ?> </th> <td><input type="text" name="sys_descr"<?php echo _restorePostValue('sys_descr'); ?> ></td> </tr> <tr> <th><?php echo $_lang['step.2.sys.kwrds']; ?> </th> <td><input type="text" name="sys_kwrds"<?php echo _restorePostValue('sys_kwrds'); ?> ></td> </tr> <?php } ?> </tbody> </table> <script type="text/javascript"> // predvyplneni adresy if (document.instform.sys_url.value === '') { var loc = new String(document.location); var slash; var slash_last = 0; var limit = 0; while (true) { slash = loc.indexOf('/', slash_last); if (slash === -1) break; slash_last = slash + 1; } loc = loc.substr(0, slash_last); document.instform.sys_url.value = loc; } </script> <table> <thead> <tr><th colspan="2"><?php echo $_lang['step.2.admin']; ?> </th></tr> <?php if (!$is_clean) { ?> <tr><th colspan="2"><small><?php echo $_lang['step.2.admin.notice']; ?> </small></th></tr><?php } ?> </thead> <tbody> <tr> <th><?php echo $_lang['step.2.admin.name']; ?> </th> <td><input type="text" maxlength="24" name="admin_name"<?php echo _restorePostValue('admin_name'); ?> ></td> </tr> <tr> <th><?php echo $_lang['step.2.admin.email']; ?> </th> <td><input type="text" maxlength="100" name="admin_email"<?php echo _restorePostValue('admin_email', $is_clean ? '@' : null); ?> ></td> </tr> <tr> <th><?php echo $_lang['step.2.admin.pwd']; ?> </th> <td><input type="password" name="admin_pwd"<?php echo _restorePostValue('admin_pwd'); ?> ></td> </tr> <tr> <th><?php echo $_lang['step.2.admin.pwd2']; ?> </th> <td><input type="password" name="admin_pwd2"<?php echo _restorePostValue('admin_pwd2'); ?> ></td> </tr> </tbody> </table> <table> <thead><tr><th colspan="2"><?php echo $_lang['step.2.db']; ?> </th></tr></thead> <tbody> <tr> <th><?php echo $_lang['step.2.db.server']; ?> </th> <td><input type="text" name="db_server"<?php echo _restorePostValue('db_server', 'localhost'); ?> ></td> </tr> <tr> <th><?php echo $_lang['step.2.db.name']; ?> </th> <td><input type="text" name="db_name"<?php echo _restorePostValue('db_name'); ?> ></td> </tr> <tr> <th><?php echo $_lang['step.2.db.user']; ?> </th> <td><input type="text" name="db_user"<?php echo _restorePostValue('db_user'); ?> ></td> </tr> <tr> <th><?php echo $_lang['step.2.db.pwd']; ?> </th> <td><input type="password" name="db_pwd"<?php echo _restorePostValue('db_pwd'); ?> ></td> </tr> <tr> <th><?php echo $_lang['step.2.db.prefix']; ?> </th> <td><input type="text" maxlength="24" name="db_prefix"<?php echo _restorePostValue('db_prefix', 'sunlight'); ?> ></td> </tr> <tr> <th><?php echo $_lang['step.2.db.tables']; ?> </th> <td><label><input type="checkbox" name="db_overwrite"<?php echo _checkboxActivate(isset($_POST['db_overwrite'])); ?> value="1" onchange="if (this.checked && !confirm('<?php echo $_lang['step.2.db.tables.overwrite.confirm']; ?> ')) this.checked = false"> <?php echo $_lang['step.2.db.tables.overwrite']; ?> </label></td> </tr> </tbody> </table> <p class="center"><input type="submit" value="<?php echo $_lang[$step != 3 ? 'step.2.submit' : 'global.continue']; ?> "></p> <?php //<p class="warning"><?php echo $_lang['step.2.warning']</p> break; } ?> <input type="hidden" name="step" value="<?php echo $step; ?> "> </form> <?php }
public static function CloseConnection() { self::$con = null; self::$initialized = false; }
public static function init($dbtype, $config) { self::$db = new $dbtype(); self::$con = self::$db->connect($config); }