【分享】PHP制作安装程序的原理与步骤详细讲解

本文讲解PHP制作安装程序的原理与步骤
1、制作PHP安装程序的原理
        PHP程序的安装原理就是将数据库结构和内容导入到相应的数据库中,从这个过程中重新配置连接数据库的参数和文件,为了保证不被别人恶意使用安装文件,当安装完成后需要修改安装文件。
2、制作PHP安装程序的步骤
        step1 检查目录或文件的权限
        step2 修改或填加配置文件
        step3 检查配置文件正确性
        step4 导入数据库
        step5 锁定或删除安装文件
3、制作安装用到的PHP函数
        检查文件是否可写,返回布尔值:is_writable("data/config.php");
        检查文件是否可读,返回布尔值:is_readable("data/config.php");
        fopen() 文件操作函数,打开一个文件或新建
        fwrite() 文件操作函数,写入内容到文件
        rename() 文件操作函数,给文件改名
4、注意事项
        (1).对文件和相关文件夹权限进行检查,如缓存,生成文件,配置文件
        (2).安装文件尽可能独立,可删除,可改名。
        (3).数据库导入时,需检查:
                a.检查是否有建立数据库的权限
                b.是否同名数据库的存在
                c.考虑到数据库导入的大小是否分段处理
         (4).检查配置环境,各种模块的支持情况,如:gd2, pdo,rewirte等
5、实例代码
  1. <?php
    $files="data/config.php";
    if(!is_writable($files)){
    echo "<font color=red>不可写!!!</font>";
    }
    else{
    echo "<font color=green>可写</font>";
    }
    if(isset($_POST[install])){
    $config_str = "<?php";
    $config_str .= "\n";
    $config_str .= '$mysql_host = "' . $_POST[db_host] . '";';
    $config_str .= "\n";
    $config_str .= '$mysql_user = "' . $_POST[db_user] . '";';
    $config_str .= "\n";
    $config_str .= '$mysql_pass = "' . $_POST[db_pass] . '";';
    $config_str .= "\n";
    $config_str .= '$mysql_dbname = "' . $_POST[db_dbname] . '";';
    $config_str .= "\n";
    $config_str .= '$mysql_tag = "' . $_POST[db_tag] . '";';
    $config_str .= "\n";
    $config_str .= '?>';
    $ff = fopen($files, "w ");
    fwrite($ff, $config_str);
    //=====================
    include_once ("data/config.php"); //嵌入配置文件
    if (!@$link = mysql_connect($mysql_host, $mysql_user, $mysql_pass)) { //检查数据库连接情况
    echo "数据库连接失败! 请返回上一页检查连接参数 <a href=install.php>返回修改</a>";
    }
    else {
    mysql_query("CREATE DATABASE `$mysql_dbname`");
    mysql_select_db($mysql_dbname);
    $sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log1` (
    `id` int(8) unsigned NOT NULL auto_increment,
    `username` varchar(40) NOT NULL COMMENT '操作用户名称',
    `types` varchar(60) NOT NULL,
    PRIMARY KEY (`id`)
    ) ;
    ";
    $sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log2` (
    `id` int(8) unsigned NOT NULL auto_increment,
    `username` varchar(40) NOT NULL COMMENT '操作用户名称',
    `types` varchar(60) NOT NULL,
    PRIMARY KEY (`id`)
    ) ;
    ";
    $sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log3` (
    `id` int(8) unsigned NOT NULL auto_increment,
    `username` varchar(40) NOT NULL COMMENT '操作用户名称',
    `types` varchar(60) NOT NULL,
    PRIMARY KEY (`id`)
    ) ;
    ";
    foreach($sql_query as $val){
    mysql_query($val);
    }
    echo "<script>alert('安装成功!');location.href='index.php'</script>";
    rename("install.php","install.lock");
    }
    }
    ?>
    <hr size=1>
    <form action="" method="POST">
    填写主机:
    <input type="text" name="db_host" value=""/><br>
    用 户 名:
    <input type="text" name="db_user" value="root"/><br>
    密  码:
    <input type="text" name="db_pass" value=""/><br>
    数据库名:
    <input type="text" name="db_dbname" value="php100_db"/><br>
    数据前缀:
    <input type="text" name="db_tag" value="p_"/><br>
    <button type=submit name=install>下一步</button>
    </form>
希望本文能对你有所收获。
本文引用地址:http://www.2cto.com/kf/201009/73584.html
posted @ 2011-07-08 23:11  Credo Chen  阅读(598)  评论(0编辑  收藏  举报
无觅相关文章插件,快速提升流量