PHP网站安装程序制作的原理、步骤、注意事项和示例代码
作者:bea
1.制作PHP安装程序的原理 其实PHP程序的安装原理无非就是将数据库结构和内容导入到相应的数据库中,从这个过程中重新配置连接数据库的参数和文件,为了保证不被别人恶意使用安装文件,当安装完成后需要修改安装文件。 2. 制作PHP安装程序的步骤 step1 检查目录或文件的权限 step2 修改或填加配置文件 step3 检查配置文件正确性 step4 导入数据库 step5 锁定或删除安装文件 3.制作安装用到的PHP函数 检查文件是否可写,返回布尔值:is_writable
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 .= "
";
$config_str .= '$mysql_host = "' . $_POST[db_host] . '";';
$config_str .= "
";
$config_str .= '$mysql_user = "' . $_POST[db_user] . '";';
$config_str .= "
";
$config_str .= '$mysql_pass = "' . $_POST[db_pass] . '";';
$config_str .= "
";
$config_str .= '$mysql_dbname = "' . $_POST[db_dbname] . '";';
$config_str .= "
";
$config_str .= '$mysql_tag = "' . $_POST[db_tag] . '";';
$config_str .= "
";
$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>
有用 | 无用
代码如下:
<?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 .= "
";
$config_str .= '$mysql_host = "' . $_POST[db_host] . '";';
$config_str .= "
";
$config_str .= '$mysql_user = "' . $_POST[db_user] . '";';
$config_str .= "
";
$config_str .= '$mysql_pass = "' . $_POST[db_pass] . '";';
$config_str .= "
";
$config_str .= '$mysql_dbname = "' . $_POST[db_dbname] . '";';
$config_str .= "
";
$config_str .= '$mysql_tag = "' . $_POST[db_tag] . '";';
$config_str .= "
";
$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>
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- PHP通过header实现文本文件下载的代码
- php下保存远程图片到本地的办法
- 用PHP实现递归循环每一个目录
- 为IP查询添加GOOGLE地图功能的代码
- PHP下对数组进行排序的函数
- PHP 冒泡排序算法的实现代码
- php下关于Cannot use a scalar value as an array的解决办法
- 在PHP中实现Javascript的escape()函数代码
- PHP下escape解码函数的实现方法
- ubuntu 编译安装php 5.3.3+memcache的方法
- PHP MemCached高级缓存配置图文教程
- PHP Array交叉表实现代码
- php垃圾代码优化操作代码
- PHP MemCached 高级缓存应用代码
- phpMyAdmin 链接表的附加功能尚未激活的问题
- PHP合并数组+与array_merge的区别分析
- PHP自定义函数收代码
- 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
- PHP5中使用PDO连接数据库的方法