/** * construct * * @uses sets all parameters required by mysql class */ public function __construct() { if (!empty($this->table)) { mysql::init(); mysql::$table = $this->table; } if (!empty($this->hasOne)) { mysql::$hasOne = $this->hasOne; } if (!empty($this->hasMany)) { mysql::$hasMany = $this->hasMany; } }
$environement = !empty($_POST['connect']) && ($_POST['connect'] == 'dev' || $_POST['connect'] == 'prod') ? $_POST['connect'] : 'dev'; # Tentative de connexion à la base de données $con_id = mysqli_connect(${$environement . '_host'}, ${$environement . '_user'}, ${$environement . '_password'}); if (!$con_id) { $errors->set('MySQL: ' . mysqli_connect_errno() . ' ' . mysqli_connect_error()); } else { mysqli_query($con_id, "CREATE DATABASE IF NOT EXISTS " . ${$environement . '_database'}); $db = mysqli_select_db($con_id, ${$environement . '_database'}); if (!$db) { $errors->set('MySQL: ' . mysqli_errno($con_id) . ' ' . mysqli_error($con_id)); } mysqli_close($con_id); } if ($errors->isEmpty()) { $db = new mysql(); $db->init(${$environement . '_user'}, ${$environement . '_password'}, ${$environement . '_host'}, ${$environement . '_database'}); if ($db->error()) { $errors->set($db->error()); } else { # Création du fichier de configuration $configfile = OKT_CONFIG_PATH . '/connexion.php'; $config = implode('', (array) file($configfile . '.in')); $config = str_replace('%%DB_PROD_HOST%%', $prod_host, $config); $config = str_replace('%%DB_PROD_USER%%', $prod_user, $config); $config = str_replace('%%DB_PROD_PASS%%', $prod_password, $config); $config = str_replace('%%DB_PROD_BASE%%', $prod_database, $config); $config = str_replace('%%DB_PROD_PREFIX%%', $prod_prefix, $config); $config = str_replace('%%DB_DEV_HOST%%', $dev_host, $config); $config = str_replace('%%DB_DEV_USER%%', $dev_user, $config); $config = str_replace('%%DB_DEV_PASS%%', $dev_password, $config); $config = str_replace('%%DB_DEV_BASE%%', $dev_database, $config);
$_PHP = array(); $_PHP['magic_quotes_qpc'] = get_magic_quotes_gpc(); //PHP環境處理 if ($_PHP['magic_quotes_qpc']) { foreach ($_GET as $k => $v) { $_GET[$k] = stripslashes($v); } foreach ($_POST as $k => $v) { $_POST[$k] = stripslashes($v); } } if (!Cache::init($config['cache'])) { die('快取讀取失敗'); } $db = new mysql(); if (!$db->init($config['dbhost'], $config['dbuser'], $config['dbpass'], $config['dbname'])) { die('資料庫連線失敗'); } $user = false; if (isset($_COOKIE['uid']) && isset($_COOKIE['sid'])) { if ($query = $db->get_one('SELECT `online_user`.*, `user`.* FROM `online_user`, `user` WHERE `online_user`.`sid`=\'' . mysql_real_escape_string($_COOKIE['sid']) . '\' AND `online_user`.`uid`=`user`.`uid`;')) { if ($query['lastactiontime'] <= $time + $config['loginexpire'] && $query['uid'] && $query['uid'] == $_COOKIE['uid'] && $_SERVER['REMOTE_ADDR'] == $query['ip']) { $user = array('uid' => $query['uid'], 'sid' => $query['sid'], 'username' => $query['username'], 'channel' => $query['channel'], 'ip' => $query['ip'], 'lastmsgid' => $query['lastmsgid']); setcookie('uid', $_COOKIE['uid'], $time + $config['loginexpire']); setcookie('sid', $_COOKIE['sid'], $time + $config['loginexpire']); $db->query('UPDATE FROM `online_user` SET `lastactiontime`=' . $time . ' WHERE `sid`=\'' . $query['sid'] . '\';'); } } } function update_actiontime() {