PHP网站安装程序制作的原理、步骤、注意事项和示例代码
发布时间:2020-12-13 05:46:08 所属栏目:PHP教程 来源:网络整理
导读:1.制作PHP安装程序的原理 其实PHP程序的安装原理无非就是将数据库结构和内容导入到相应的数据库中,从这个过程中重新配置连接数据库的参数和文件,为了保证不被别人恶意使用安装文件,当安装完成后需要修改安装文件。 2. 制作PHP安装程序的步骤 step1 检查目
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.示例代码如下 代码如下: $files="data/config.php"; if(!is_writable($files)){ echo "不可写!!!"; }else{ echo "可写"; } if(isset($_POST[install])){ $config_str = "$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 "数据库连接失败! 请返回上一页检查连接参数 返回修改"; } 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, PRIMARY KEY (`id`) ) ;"; $sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log3` ( `id` int(8) unsigned NOT NULL auto_increment, PRIMARY KEY (`id`) ) ;"; foreach($sql_query as $val){ mysql_query($val); } echo ""; rename("install.php","install.lock"); } } ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |