<?php if(!defined("MCR")){ exit("Hacking Attempt!"); } class module{ private $install, $cfg, $lng; public function __construct($install){ $this->install = $install; $this->cfg = $install->cfg; $this->lng = $install->lng; $this->install->title = $this->lng['mod_name'].' — '.$this->lng['step_1']; } public function content(){ if(!isset($_SESSION['start'])){ $this->install->notify('', '', 'install/'); } if(isset($_SESSION['step_1'])){ $this->install->notify('', '', 'install/?do=step_2'); } $_SESSION['f_host'] = (isset($_POST['host'])) ? $this->install->HSC($_POST['host']) : $this->cfg['db']['host']; $_SESSION['f_port'] = (isset($_POST['port'])) ? intval($_POST['port']) : $this->cfg['db']['port']; $_SESSION['f_base'] = (isset($_POST['base'])) ? $this->install->HSC($_POST['base']) : $this->cfg['db']['base']; $_SESSION['f_user'] = (isset($_POST['user'])) ? $this->install->HSC($_POST['user']) : $this->cfg['db']['user']; $_SESSION['f_pass'] = (isset($_POST['pass'])) ? $this->install->HSC($_POST['pass']) : $this->cfg['db']['pass']; $_SESSION['f_backend'] = (@$_POST['type']=='mysql') ? 'selected' : ($this->cfg['db']['backend']=='mysql') ? 'selected' : ''; if($_SERVER['REQUEST_METHOD']=='POST'){ $type = (isset($_POST['type']) && $_POST['type']=='mysql') ? 'mysql' : 'mysqli'; require_once(DIR_ROOT.'engine/db/'.$type.'.class.php'); $db = new db($_SESSION['f_host'], $_SESSION['f_user'], $_SESSION['f_pass'], $_SESSION['f_base'], $_SESSION['f_port']); $error = $db->error(); if(!empty($error)){ $this->install->notify($this->lng['e_connection'].' | '.$db->error(), $this->lng['e_msg'], 'install/?do=step_1'); } $this->cfg['db']['host'] = $_SESSION['f_host']; $this->cfg['db']['port'] = $_SESSION['f_port']; $this->cfg['db']['base'] = $_SESSION['f_base']; $this->cfg['db']['user'] = $_SESSION['f_user']; $this->cfg['db']['pass'] = $_SESSION['f_pass']; $this->cfg['db']['backend'] = $type; if(!$this->install->savecfg($this->cfg['db'], 'db.php', 'db')){ $this->core->notify($this->lng['e_msg'], $this->lng_m['e_write'], 'install/?do=step_1'); } $tables = file(DIR_INSTALL.'tables.sql'); $ctables = $this->cfg['db']['tables']; $ug_f = $ctables['ugroups']['fields']; $ic_f = $ctables['iconomy']['fields']; $logs_f = $ctables['logs']['fields']; $us_f = $ctables['users']['fields']; @$db->query("SET GLOBAL sql_mode='NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"); $string = ""; $search = array( '~ug~', '~ug_id~', '~ug_title~', '~ug_text~', '~ug_color~', '~ug_perm~', '~ic~', '~ic_id~', '~ic_login~', '~ic_money~', '~ic_rc~', '~ic_bank~', '~logs~', '~logs_id~', '~logs_uid~', '~logs_msg~', '~logs_date~', '~us~', '~us_id~', '~us_gid~', '~us_login~', '~us_email~', '~us_pass~', '~us_uuid~', '~us_salt~', '~us_tmp~', '~us_is_skin~', '~us_is_cloak~', '~us_ip_create~', '~us_ip_last~', '~us_color~', '~us_date_reg~', '~us_date_last~', '~us_fname~', '~us_lname~', '~us_gender~', '~us_bday~', '~us_ban_server~', '~base_url~', ); $replace = array( $ctables['ugroups']['name'], $ug_f['id'], $ug_f['title'], $ug_f['text'], $ug_f['color'], $ug_f['perm'], $ctables['iconomy']['name'], $ic_f['id'], $ic_f['login'], $ic_f['money'], $ic_f['rm'], $ic_f['bank'], $ctables['logs']['name'], $logs_f['id'], $logs_f['uid'], $logs_f['msg'], $logs_f['date'], $ctables['users']['name'], $us_f['id'], $us_f['group'], $us_f['login'], $us_f['email'], $us_f['pass'], $us_f['uuid'], $us_f['salt'], $us_f['tmp'], $us_f['is_skin'], $us_f['is_cloak'], $us_f['ip_create'], $us_f['ip_last'], $us_f['color'], $us_f['date_reg'], $us_f['date_last'], $us_f['fname'], $us_f['lname'], $us_f['gender'], $us_f['bday'], $us_f['ban_server'], URL_ROOT, ); foreach($tables as $key => $value){ $value = trim($value); if($value=='#line'){ $string = trim($string); @$db->query($string); $string = ""; continue; } $value = str_replace($search, $replace, $value); $string .= $value; } $query = $db->query("UPDATE `{$ctables['ugroups']['name']}` SET `{$ug_f['id']}`='0' WHERE `{$ug_f['id']}`='4'"); if(!$query){ $this->install->notify($this->lng['e_upd_group'], $this->lng['e_msg'], 'install/?do=step_1'); } $query = $db->query("ALTER TABLE `{$ctables['ugroups']['name']}` AUTO_INCREMENT=0"); if(!$query){ $this->install->notify($this->lng['e_upd_group'], $this->lng['e_msg'], 'install/?do=step_1'); } $_SESSION['step_1'] = true; $this->install->notify($this->lng_m['step_2'], $this->lng_m['db_settings'], 'install/?do=step_2'); } $data = array(); return $this->install->sp('step_1.html', $data); } } ?>