www.gusucode.com > baigo CMS PHP开源网站管理系统 v1.2.2源码程序 > baigocms_v1.2.2/bg_sso/core/model/opt.class.php

    <?php
/*-----------------------------------------------------------------
!!!!警告!!!!
以下为系统文件,请勿修改
-----------------------------------------------------------------*/

//不能非法包含或直接执行
if(!defined("IN_BAIGO")) {
    exit("Access Denied");
}

/*-------------设置项模型-------------*/
class MODEL_OPT {

    public $arr_const;

    /** 处理常量并生成配置文件
     * mdl_const function.
     *
     * @access public
     * @param mixed $str_type
     * @return void
     */
    function mdl_const($str_type) {
        if (!fn_token("chk")) { //令牌
            return array(
                "alert" => "x030206",
            );
        }

        $_str_content = "<?php" . PHP_EOL;
        foreach ($this->arr_const[$str_type] as $_key=>$_value) {
            if (is_numeric($_value)) {
                $_str_content .= "define(\"" . $_key . "\", " . $_value . ");" . PHP_EOL;
            } else {
                $_str_content .= "define(\"" . $_key . "\", \"" . str_replace(PHP_EOL, "|", $_value) . "\");" . PHP_EOL;
            }
        }

        if ($str_type == "base") {
            $_str_content .= "define(\"BG_SITE_SSIN\", \"" . fn_rand(6) . "\");" . PHP_EOL;
        }

        $_str_content = str_replace("||", "", $_str_content);

        $_num_size    = file_put_contents(BG_PATH_CONFIG . "opt_" . $str_type . ".inc.php", $_str_content);

        if ($_num_size > 0) {
            $_str_alert = "y030405";
        } else {
            $_str_alert = "x030405";
        }

        return array(
            "alert" => $_str_alert,
        );
    }


    /** 生成已安装文件
     * mdl_over function.
     *
     * @access public
     * @return void
     */
    function mdl_over() {
        if (!fn_token("chk")) { //令牌
            return array(
                "alert" => "x030206",
            );
        }

        $_str_content = "<?php" . PHP_EOL;
        $_str_content .= "define(\"BG_INSTALL_VER\", \"" . PRD_SSO_VER . "\");" . PHP_EOL;
        $_str_content .= "define(\"BG_INSTALL_PUB\", " . PRD_SSO_PUB . ");" . PHP_EOL;
        $_str_content .= "define(\"BG_INSTALL_TIME\", " . time() . ");" . PHP_EOL;

        $_num_size = file_put_contents(BG_PATH_CONFIG . "is_install.php", $_str_content);
        if ($_num_size > 0) {
            $_str_alert = "y030405";
        } else {
            $_str_alert = "x030405";
        }

        return array(
            "alert" => $_str_alert,
        );
    }


    /** 生成数据库配置文件
     * mdl_dbconfig function.
     *
     * @access public
     * @return void
     */
    function mdl_dbconfig() {
        $_str_content = "<?php" . PHP_EOL;
        $_str_content .= "define(\"BG_DB_HOST\", \"" . $this->dbconfigSubmit["db_host"] . "\");" . PHP_EOL;
        $_str_content .= "define(\"BG_DB_NAME\", \"" . $this->dbconfigSubmit["db_name"] . "\");" . PHP_EOL;
        $_str_content .= "define(\"BG_DB_PORT\", \"" . $this->dbconfigSubmit["db_port"] . "\");" . PHP_EOL;
        $_str_content .= "define(\"BG_DB_USER\", \"" . $this->dbconfigSubmit["db_user"] . "\");" . PHP_EOL;
        $_str_content .= "define(\"BG_DB_PASS\", \"" . $this->dbconfigSubmit["db_pass"] . "\");" . PHP_EOL;
        $_str_content .= "define(\"BG_DB_CHARSET\", \"" . $this->dbconfigSubmit["db_charset"] . "\");" . PHP_EOL;
        $_str_content .= "define(\"BG_DB_TABLE\", \"" . $this->dbconfigSubmit["db_table"] . "\");" . PHP_EOL;

        $_num_size = file_put_contents(BG_PATH_CONFIG . "opt_dbconfig.inc.php", $_str_content);
        if ($_num_size > 0) {
            $_str_alert = "y030404";
        } else {
            $_str_alert = "x030404";
        }

        return array(
            "alert" => $_str_alert,
        );
    }


    /** 数据库配置表单验证
     * input_dbconfig function.
     *
     * @access public
     * @param bool $is_token (default: true)
     * @return void
     */
    function input_dbconfig($is_token = true) {
        if ($is_token) {
            if (!fn_token("chk")) { //令牌
                return array(
                    "alert" => "x030206",
                );
            }
        }

        $_arr_dbHost = validateStr(fn_post("db_host"), 1, 900);
        switch ($_arr_dbHost["status"]) {
            case "too_short":
                return array(
                    "alert" => "x040204",
                );
            break;

            case "too_long":
                return array(
                    "alert" => "x040205",
                );
            break;

            case "ok":
                $this->dbconfigSubmit["db_host"] = $_arr_dbHost["str"];
            break;
        }

        $_arr_dbName = validateStr(fn_post("db_name"), 1, 900);
        switch ($_arr_dbName["status"]) {
            case "too_short":
                return array(
                    "alert" => "x040206",
                );
            break;

            case "too_long":
                return array(
                    "alert" => "x040207",
                );
            break;

            case "ok":
                $this->dbconfigSubmit["db_name"] = $_arr_dbName["str"];
            break;
        }

        $_arr_dbPort = validateStr(fn_post("db_port"), 1, 900);
        switch ($_arr_dbPort["status"]) {
            case "too_short":
                return array(
                    "alert" => "x040208",
                );
            break;

            case "too_long":
                return array(
                    "alert" => "x040209",
                );
            break;

            case "ok":
                $this->dbconfigSubmit["db_port"] = $_arr_dbPort["str"];
            break;
        }

        $_arr_dbUser = validateStr(fn_post("db_user"), 1, 900);
        switch ($_arr_dbUser["status"]) {
            case "too_short":
                return array(
                    "alert" => "x040210",
                );
            break;

            case "too_long":
                return array(
                    "alert" => "x040211",
                );
            break;

            case "ok":
                $this->dbconfigSubmit["db_user"] = $_arr_dbUser["str"];
            break;
        }

        $_arr_dbPass = validateStr(fn_post("db_pass"), 1, 900);
        switch ($_arr_dbPass["status"]) {
            case "too_short":
                return array(
                    "alert" => "x040212",
                );
            break;

            case "too_long":
                return array(
                    "alert" => "x040213",
                );
            break;

            case "ok":
                $this->dbconfigSubmit["db_pass"] = $_arr_dbPass["str"];
            break;
        }

        $_arr_dbCharset = validateStr(fn_post("db_charset"), 1, 900);
        switch ($_arr_dbCharset["status"]) {
            case "too_short":
                return array(
                    "alert" => "x040214",
                );
            break;

            case "too_long":
                return array(
                    "alert" => "x040215",
                );
            break;

            case "ok":
                $this->dbconfigSubmit["db_charset"] = $_arr_dbCharset["str"];
            break;
        }

        $_arr_dbTable = validateStr(fn_post("db_table"), 1, 900);
        switch ($_arr_dbTable["status"]) {
            case "too_short":
                return array(
                    "alert" => "x040216",
                );
            break;

            case "too_long":
                return array(
                    "alert" => "x040217",
                );
            break;

            case "ok":
                $this->dbconfigSubmit["db_table"] = $_arr_dbTable["str"];
            break;
        }

        $this->dbconfigSubmit["alert"] = "ok";

        return $this->dbconfigSubmit;
    }


    /** 表单输入处理
     * input_const function.
     *
     * @access public
     * @param mixed $str_type
     * @return void
     */
    function input_const($str_type) {
        $this->arr_const = fn_post("opt");

        return $this->arr_const[$str_type];
    }
}