php-CMS安装代码逻辑

浏览:1865 发布日期:2015/05/07 分类:功能实现 关键字: php系统安装 php 系统安装 业务逻辑
实现php后台安装数据库等一些操作,代码简单的写的。很多东西还不完善,请大家多多支持,意见可以写在评论中。
install.php
---------------------------------------------------------------------------<!DOCTYPE html/>
<html>
<head>
    <style>
        *{margin:0;padding:0;}
        h2{margin:10px;background:#000000;width:100%;height:50px;line-height:50px;color:#fff;}
        .content{font-size:16px;border:2px solid #ccc;font-weight:bold;width:800px;height:500px;overflow:scroll;padding:10px;margin:0 auto;}
        h3{margin:10px;background:#CC0033;width:100%;height:50px;line-height:50px;color:#fff;}
        a{text-decoration: none;}
        a:hover{text-decoration: underline; }
        table tr td{font-weight: bold;font-size:20px;padding-top:20px;}
        table tr .input{width: 200px;height: 30px;}
        table tr td .bt{width: 80px;height: 30px;border: 1px solid #ccc;}
    </style>
</head>
<center><h2>系统安装界面</h2></center>
<center class="content">
<?php

    /******************************************************
    *                系统安装界面                          *
    *                所有者:allens stevon                  *
    *                日期:2015/5/6                          *
    ******************************************************/

    /**
    *@系统安装类 
    *@生成数据库,生成初始化数据
    */
    header("Content-type: text/html; charset=utf-8"); 
    $reg = false;

    class Install
    {

        private $con;            //数据库连接
        private $dbhost = 'localhost';    //数据库端口
        private $dbusername = 'root';    //数据库名称
        private $dbpw   = '';    //数据库密码
        public $db = 'cute'; //db名称

        //构造方法
        function __construct()
        {
            //判断数据库是否连接成功
            if (!($this->con = @mysql_connect($this->dbhost,$this->dbusername,$this->dbpw)))
                  die('Could not connect: ' . mysql_error());
              else{
                  echo "连接成功<br/>";
                $this->createdb();
              }
        }

        //销毁函数
        function __destruct(){

            //判断是否连接上数据库
            if($this->con){
                //在类结束的时候关闭数据库连接
                if(!$close = @mysql_close($this -> con))
                    die('<br/>Could not close db');
            }
        }

        //生成数据库
        private function createdb(){

            $i = 0;
            //数据库名称
            $queryinfo = array(
                0     =>     '创建'.$this->db,
                1   =>     '使用'.$this->db,
                2     =>      '创建'.$this->db . '_user',
                3     =>     '创建访问权限表'.$this->db.'_access',
                4    =>     '创建权限表' . $this->db . "_node",
                5     =>     '创建权限表' . $this->db . "_role",
                6   =>     '创建'.$this->db.'_role_user',
                7   =>   '创建栏目表'. $this->db .'_caid',
            );

            $filename = "data/testdata.sql";
            $sql=file_get_contents($filename); //把SQL语句以字符串读入$sql 
            $sql = str_replace('premax', $this->db, $sql);

            file_put_contents($filename, $sql);
            
            //设置分隔符
            $a=explode("-- **",$sql); //用explode()函数把‍$sql字符串以“;”分割为数组 
            
            foreach($a as $b){ //遍历数组 
                
                $c=$b; //分割后是没有“;”的,因为SQL语句以“;”结束,所以在执行SQL前把它加上 
                
                if(@mysql_query($c)){    //执行SQL语句 
                    echo $queryinfo[$i++]."操作成功..<br/>";
                }  else
                    echo $queryinfo[$i++].'操作失败..' . mysql_error() . "<br/>";

            }
            echo "<h3>完成所有操作</h3>";
            echo "<p style='margin-top:20px;'><a href='admin.php' style='margin-right:20px;'>进入后台</a><a href='index.php'>进入前台</a></p>";

        } 

        

    }
    if(array_key_exists('supermanager', $_POST) && array_key_exists('superpw', $_POST)){  
        if(!$_POST['supermanager'] == "" && !$_POST['superpw'] == ''){
            $reg = true;
            $install = new Install();
            mysql_select_db($install->db);
            $sql = 'insert into ' . $install->db . "_user(username,password)" . " values('" . $_POST["supermanager"] . "','".md5($_POST['superpw'])."')";

            if($result = mysql_query($sql))
                echo "创建超级管理员成功";
            else
                echo "创建超级管理员失败";
        } else
            echo "请输入帐号密码再提交";
    }
?>

<?php
    if(!$reg){
?>
<h3>注册超级管理用户</h3>
<form action="install.php" method="post">
<table style="margin-top:20px;">
    <tr>
        <td align="right">超级管理员:</td><td><input class="input" type="text" name="supermanager" /></td>
    </tr>
    <tr>
        <td align="right">管理员密码:</td><td><input class="input" type="password" name="superpw" /></td>
    </tr>
    <tr>
        <td align="right"></td><td>
            <input class="bt" type="submit" name="submit" value="提交" />
            <input class="bt" type="reset" name="submit" value="重置" />
        </td>
    </tr>
</table>
</form>
<?php
    }
?>
</center>
</html>
---------------------------------------------------------------------------
testdata.sql-- 创建数据库
CREATE DATABASE IF NOT EXISTS cute;
-- **
-- 使用此数据库
use cute;
-- **
-- 创建User表
CREATE TABLE IF NOT EXISTS cute_user (
    `id` smallint(10) unsigned NOT NULL AUTO_INCREMENT,
    `username` varchar(30) NOT NULL,
    `headpic`  varchar(100) DEFAULT null,
    `password` varchar(30) NOT NULL,
    `status` tinyint(10) NOT NULL DEFAULT 1,
    `remark` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- **
-- 创建访问权限表
CREATE TABLE IF NOT EXISTS `cute_access` (
  `role_id` smallint(6) unsigned NOT NULL,
  `node_id` smallint(6) unsigned NOT NULL,
  `level` tinyint(1) NOT NULL,
  `module` varchar(50) DEFAULT NULL,
  KEY `groupId` (`role_id`),
  KEY `nodeId` (`node_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- **
CREATE TABLE IF NOT EXISTS `cute_node` (
  `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `title` varchar(50) DEFAULT NULL,
  `status` tinyint(1) DEFAULT '0',
  `remark` varchar(255) DEFAULT NULL,
  `sort` smallint(6) unsigned DEFAULT NULL,
  `pid` smallint(6) unsigned NOT NULL,
  `level` tinyint(1) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `level` (`level`),
  KEY `pid` (`pid`),
  KEY `status` (`status`),
  KEY `name` (`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
-- **
CREATE TABLE IF NOT EXISTS `cute_role` (
  `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `pid` smallint(6) DEFAULT NULL,
  `status` tinyint(1) unsigned DEFAULT NULL,
  `remark` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `pid` (`pid`),
  KEY `status` (`status`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;
-- **
CREATE TABLE IF NOT EXISTS `cute_role_user` (
  `role_id` mediumint(9) unsigned DEFAULT NULL,
  `user_id` char(32) DEFAULT NULL,
  KEY `group_id` (`role_id`),
  KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- **
-- 后台主体栏目表 --
CREATE TABLE IF NOT EXISTS `cute_caid` (
  `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `title` varchar(50) DEFAULT NULL,
  `status` tinyint(1) DEFAULT '0',
  `remark` varchar(255) DEFAULT NULL,
  `sort` smallint(6) unsigned DEFAULT NULL,
  `href`  varchar(150) not null,
  `pid` smallint(6) unsigned NOT NULL,
  `level` tinyint(1) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `level` (`level`),
  KEY `pid` (`pid`),
  KEY `status` (`status`),
  KEY `name` (`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
下载代码在下方

附件 Install.rar ( 3.4 KB 下载:38 次 )

评论( 相关
后面还有条评论,点击查看>>