install.php
Posted csjoz11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了install.php相关的知识,希望对你有一定的参考价值。
<?php if ( ! defined(‘BASEPATH‘)) exit(‘No direct script access allowed‘);
/**
* 帐户控制器
*/
class Install extends MY_Controller {
public function __construct() {
parent::__construct();
if(file_exists("./data/install.lock")){
header("location:/");
}
// $this->load->model(‘party_model‘, ‘party‘);
$this->load->model(‘common_model‘, ‘common‘);
}
//首页
public function index() {
$this->display(‘install/index‘);
}
public function step4(){
if($_POST){
//创建数据库
$dbconfig[‘DB_TYPE‘]="mysql";
$dbhost=$dbconfig[‘DB_HOST‘]=$_POST[‘dbhost‘];
$dbuser=$dbconfig[‘DB_USER‘]=$_POST[‘dbuser‘];
$dbpw=$dbconfig[‘DB_PWD‘]=$_POST[‘dbpw‘];
$dbname=$dbconfig[‘dbname‘]=strtolower($_POST[‘dbname‘]);
$data=‘<?php if ( ! defined(\‘BASEPATH\‘)) exit(\‘No direct script access allowed\‘);
$active_group = \‘default\‘;
$active_record = TRUE;
//DB
$db[\‘default\‘][\‘hostname\‘] = \‘‘.$dbhost.‘\‘;
$db[\‘default\‘][\‘port\‘] = \‘3306\‘;
$db[\‘default\‘][\‘username\‘] = \‘‘.$dbuser.‘\‘;
$db[\‘default\‘][\‘password\‘] = \‘‘.$dbpw.‘\‘;
$db[\‘default\‘][\‘database\‘] = \‘‘.$dbname.‘\‘;
$db[\‘default\‘][\‘dbdriver\‘] = \‘mysql\‘;
$db[\‘default\‘][\‘dbprefix\‘] = \‘\‘;
$db[\‘default\‘][\‘pconnect\‘] = TRUE;
$db[\‘default\‘][\‘db_debug\‘] = FALSE;
$db[\‘default\‘][\‘cache_on\‘] = FALSE;
$db[\‘default\‘][\‘cachedir\‘] = \‘\‘;
$db[\‘default\‘][\‘char_set\‘] = \‘utf8\‘;
$db[\‘default\‘][\‘dbcollat\‘] = \‘utf8_general_ci\‘;
$db[\‘default\‘][\‘swap_pre\‘] = \‘\‘;
$db[\‘default\‘][\‘autoinit\‘] = TRUE;
$db[\‘default\‘][\‘stricton\‘] = FALSE;
‘;
$file_path=APP."/application/config/database.php";
file_put_contents($file_path, $data);
// die;
// [email protected]_connect($dbconfig[‘DB_HOST‘],$dbconfig[‘DB_USER‘],$dbconfig[‘DB_PWD‘]);
// $sql = "CREATE DATABASE IF NOT EXISTS `{$dbname}` DEFAULT CHARACTER SET utf8";
// mysql_query($sql);
//
//// echo "<pre>";var_dump($res);exit;
//
// $this->sp_execute_sql($dbconfig,"ych3.sql");
$_SESSION[‘_install_step‘]=4;
//
// sleep(1);
go2("congratulations,you has success!","/install/step5");
}else{
exit;
}
}
function sp_execute_sql($dbconfig,$file){
[email protected]_connect($dbconfig[‘DB_HOST‘],$dbconfig[‘DB_USER‘],$dbconfig[‘DB_PWD‘]);
mysql_select_db($dbconfig[‘dbname‘],$con);
//读取SQL文件
$sql = file_get_contents(WEBROOT . ‘/data/‘.$file);
$sql = str_replace("\r", "\n", $sql);
$sql = explode(";\n", $sql);
//echo "<pre>";var_dump($sql);exit;
//替换表前缀
// $default_tablepre = "cmf_";
// $sql = str_replace(" `{$default_tablepre}", " `{$tablepre}", $sql);
//开始安装
// sp_show_msg(‘开始安装数据库...‘);
foreach ($sql as $item) {
$item = trim($item);
if(empty($item)) continue;
@preg_match(‘/CREATE TABLE `([^ ]*)`/‘, $item, $matches);
mysql_query($item);
// if($matches) {
// $table_name = $matches[1];
// $msg = "创建数据表{$table_name}";
// if(false !== mysql_query($item)){
// sp_show_msg($msg . ‘ 完成‘);
// } else {
// sp_show_msg($msg . ‘ 失败!‘, ‘error‘);
// }
// } else {
// mysql_query($item);
//// $db->execute($item);
//
// }
}
mysql_close($con);
}
public function step5(){
if($_SESSION[‘_install_step‘]==4){
@touch(‘./data/install.lock‘);
// $this->view(‘install/step5‘);
$this->display(‘install/step5‘);
}else{
echo "<script>alert(‘非法安装!‘);history.go(-1);</script>";
// history_back();
// $this->error("非法安装!");
}
}
public function testdbpwd()
{
if ($_POST) {
$dbconfig = I("POST.");
$dbconfig[‘DB_TYPE‘] = "mysql";
$db = Db::getInstance($dbconfig);
try {
$db->query("show databases;");
} catch (\Exception $e) {
die("");
}
exit("1");
} else {
exit("need post!");
}
}
}
以上是关于install.php的主要内容,如果未能解决你的问题,请参考以下文章