ThinkPHP3.2寫一個簡單的install

Json______發表於2017-10-26

 

PHP交流群:294088839,

Python交流群:652376983

 

入口檔案中:

header("Content-Type: text/html;charset=utf-8");
// 應用入口檔案
// 檢測是否是新安裝
if(file_exists("./Public/install") && !file_exists("./Public/install/install.lock")){
    // 組裝安裝url
    $url=$_SERVER['HTTP_HOST'].trim($_SERVER['SCRIPT_NAME'],'index.php').'Public/install/index.php';
    // 使用http://域名方式訪問;避免./Public/install 路徑方式的相容性和其他出錯問題
    header("Location:http://$url");
    die;
}


// 檢測PHP環境
if(version_compare(PHP_VERSION,'5.3.0','<'))  die('require PHP > 5.3.0 !');


// 開啟除錯模式 建議開發階段開啟 部署階段註釋或者設為false
define('APP_DEBUG',True);


// 定義應用目錄
define('APP_PATH','./Application/');


// 引入ThinkPHP入口檔案
require './ThinkPHP/ThinkPHP.php';


// 親^_^ 後面不需要任何程式碼了 就是如此簡單

 

install檔案中:

<?php
/**
 * 安裝嚮導
 */
header('Content-type:text/html;charset=utf-8');
// 檢測是否安裝過
if (file_exists('./install.lock')) {
    echo '你已經安裝過該系統,重新安裝需要先刪除./Public/install/install.lock 檔案';
    die;
}
// 同意協議頁面
if(@!isset($_GET['c']) || @$_GET['c']=='agreement'){
    require './agreement.html';
}
// 檢測環境頁面
if(@$_GET['c']=='test'){
    require './test.html';
}
// 建立資料庫頁面
if(@$_GET['c']=='create'){
    require './create.html';
}
// 安裝成功頁面
if(@$_GET['c']=='success'){
    // 判斷是否為post
    if($_SERVER['REQUEST_METHOD']=='POST'){
        $data=$_POST;
        // 連線資料庫
        $link=@new mysqli("{$data['DB_HOST']}:{$data['DB_PORT']}",$data['DB_USER'],$data['DB_PWD']);
        // 獲取錯誤資訊
        $error=$link->connect_error;
        if (!is_null($error)) {
            // 轉義防止和alert中的引號衝突
            $error=addslashes($error);
            die("<script>alert('資料庫連結失敗:$error');history.go(-1)</script>");
        }
        // 設定字符集
        $link->query("SET NAMES 'utf8'");
        $link->server_info>5.0 or die("<script>alert('請將您的mysql升級到5.0以上');history.go(-1)</script>");
        // 建立資料庫並選中
        if(!$link->select_db($data['DB_NAME'])){
            $create_sql='CREATE DATABASE IF NOT EXISTS '.$data['DB_NAME'].' DEFAULT CHARACTER SET utf8;';
            $link->query($create_sql) or die('建立資料庫失敗');
            $link->select_db($data['DB_NAME']);
        }
        // 匯入sql資料並建立表
        $bjyadmin_str=file_get_contents('./ll.sql');
        $sql_array=preg_split("/;[\r\n]+/", str_replace('ll_',$data['DB_PREFIX'],$bjyadmin_str));
        foreach ($sql_array as $k => $v) {
            if (!empty($v)) {
                $link->query($v);
            }
        }
        $link->close();
        $db_str=<<<php
<?php
return array(


//*************************************資料庫設定*************************************
    'DB_TYPE'               =>  'mysqli',                 // 資料庫型別
    'DB_HOST'               =>  '{$data['DB_HOST']}',     // 伺服器地址
    'DB_NAME'               =>  '{$data['DB_NAME']}',     // 資料庫名
    'DB_USER'               =>  '{$data['DB_USER']}',     // 使用者名稱
    'DB_PWD'                =>  '{$data['DB_PWD']}',      // 密碼
    'DB_PORT'               =>  '{$data['DB_PORT']}',     // 埠
    'DB_PREFIX'             =>  '{$data['DB_PREFIX']}',   // 資料庫表字首
);
php;
        // 建立資料庫連結配置檔案
        file_put_contents('../../Application/Common/Conf/db.php', $db_str);
        @touch('./install.lock');
        require './success.html';
    }


}

 

相關文章