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

飘逸的风14年前 (2012-11-15)程序6835
本文讲解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、实例代码

01 <?php
02 $files="data/config.php";
03 if(!is_writable($files)){
04 echo "<font color=red>不可写!!!</font>";
05 }else{
06 echo "<font color=green>可写</font>";
07 }
08 if(isset($_POST[install])){
09 $config_str = "<?php";
10 $config_str .= " ";
11 $config_str .= $mysql_host = " . $_POST[db_host] . ";;
12 $config_str .= " ";
13 $config_str .= $mysql_user = " . $_POST[db_user] . ";;
14 $config_str .= " ";
15 $config_str .= $mysql_pass = " . $_POST[db_pass] . ";;
16 $config_str .= " ";
17 $config_str .= $mysql_dbname = " . $_POST[db_dbname] . ";;
18 $config_str .= " ";
19 $config_str .= $mysql_tag = " . $_POST[db_tag] . ";;
20 $config_str .= " ";
21 $config_str .= ?>;
22 $ff = fopen($files, "w ");
23 fwrite($ff, $config_str);
24 //=====================
25 include_once ("data/config.php"); //嵌入配置文件
26 if (!@$link = mysql_connect($mysql_host, $mysql_user, $mysql_pass)) { //检查数据库连接情况
27 echo "数据库连接失败! 请返回上一页检查连接参数 <a href=install.php>返回修改</a>";
28 } else {
29 mysql_query("CREATE DATABASE `$mysql_dbname`");
30 mysql_select_db($mysql_dbname);
31 $sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log1` (
32 `id` int(8) unsigned NOT NULL auto_increment,
33 `username` varchar(40) NOT NULL COMMENT 操作用户名称,
34 `types` varchar(60) NOT NULL,
35 PRIMARY KEY (`id`)
36 ) ;";
37 $sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log2` (
38 `id` int(8) unsigned NOT NULL auto_increment,
39 `username` varchar(40) NOT NULL COMMENT 操作用户名称,
40 `types` varchar(60) NOT NULL,
41 PRIMARY KEY (`id`)
42 ) ;";
43 $sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log3` (
44 `id` int(8) unsigned NOT NULL auto_increment,
45 `username` varchar(40) NOT NULL COMMENT 操作用户名称,
46 `types` varchar(60) NOT NULL,
47 PRIMARY KEY (`id`)
48 ) ;";
49 foreach($sql_query as $val){
50 mysql_query($val);
51 }
52 echo "<script>alert(安装成功!);location.href=index.php</script>";
53 rename("install.php","install.lock");
54 }
55 }
56 ?>
57 <hr size=1>
58 <form action="" method="POST">
59 填写主机:<input type="text" name="db_host" value=""/><br>
60 用 户 名:<input type="text" name="db_user" value="root"/><br>
61 密  码:<input type="text" name="db_pass" value=""/><br>
62 数据库名:<input type="text" name="db_dbname" value="php100_db"/><br>
63 数据前缀:<input type="text" name="db_tag" value="p_"/><br>
64 <button type=submit name=install>下一步</button>
文章来源:https://blog.51edm.org/

相关文章

emlog SyntaxHighlighter 代码高亮插件[提供下载,更新至1.2]

emlog SyntaxHighlighter 代码高亮插件[提供下载,更新至1.2]

emlog SyntaxHighlighter 代码高亮插件,可以把代码贴在代码框中,确定后自动生成高亮代码。 注:本插件已升级,修复在代码很长换行的时候左边的行数不增加问题;插入代码里有HTML标...

PHP购物车类,简单易用,移植CodeIgniter,并进行一些优化[附带实例]

个人感觉CodeIgniter用起来方便,但有时候做电子商城网站的时候,没有使用CodeIgniter框架,但想用CodeIgniter里的购物车程序,那么就需要对其购物车类进行修改。但CodeIgn...

thinkphp 使用U方法自动生成URL超链接

ThinkPHP U方法 U 方法是 ThinkPHP 内置的一个快捷方法,可以根据系统 URL 模式配置动态的生成智能的 URL 地址。 由于 ThinkPHP 支持各种不同的 URL...

可以让PHP编程事半功倍的类库

可以让PHP编程事半功倍的类库

在用php开发网站的时候,使用面向对象的方法确实可以提高代码复用率,减少代码冗余。而对初学者更友好的是,PHP开发网站所需要的大部分类库,网上都有十分优秀的类库存在了。作为一个程序猿当然不能重复制造轮...

PHP5+引进$GLOBALS延迟初始化概念

今天在使用$GLOBALS['_SERVER']来替代$_SERVER来访问相关的环境变量,总是会报“_SERVER undefined”错误。如下用例:    用例1: &n...

10个你可能从未用过的PHP函数

1. sys_getloadavg() sys_getloadavt()可以获得系统负载情况。该函数返回一个包含三个元素的数组,每个元素分别代表系统再过去的1、5和15分钟内的平均负载。...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。