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等
文章来源:https://blog.51edm.org/ 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> |