本文讲解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、实例代码
-
<?
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