其实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.示例代码如下

$files="data/config.php";

if(!is_writable($files)){

echo "不可写!!!";

}else{

echo "可写";

}

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 "数据库连接失败! 请返回上一页检查连接参数 返回修改";

} 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 "";

rename("install.php","install.lock");

}

}

?>


填写主机:

用 户 名:

密  码:

数据库名:

数据前缀:

下一步

php做网站步骤_PHP网站安装程序制作的原理、步骤、注意事项和示例代码相关推荐

  1. NSIS(Nullsoft Scriptable Install System)开源安装程序制作软件使用详细步骤(Windows系统下)

    NSIS(Nullsoft Scriptable Install System)开源安装程序制作软件使用详细步骤(Windows系统下)安装包制作 1.软件详情 软件版本 版本说明 翻译跟进 2.教程 ...

  2. .net Windows服务程序和安装程序制作图解

    最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作不成功,可能是开发环境或项目配置的不同,这里把自 ...

  3. PHP网站安装程序的原理及代码

    原文:PHP网站安装程序的原理及代码 原理: 其实PHP程序的安装原理无非就是将数据库结构和内容导入到相应的数据库中,从这个过程中重新配置连接数据库的参数和文件,为了保证不被别人恶意使用安装文件,当安 ...

  4. VC++ 安装程序制作

    VC++ 安装程序制作 2009-10-25 10:40 当用VC++完成应用程序的编制后,如果不为它制作一个安装程序,似乎感到缺少一点什么, 你也许急于到市面找制作安装程序的工具,如"Cr ...

  5. 关于安装程序制作的简明教程(一)

    关于安装程序制作的简明教程(一) Vitamin C[抗坏血酸].2002.3.11.ZJ.GD.CHI. 前段时间我完成了几个软件的汉化,想把它们打包起来,可是苦于我是一个很菜的鸟,很笨的瓜,只好上 ...

  6. 安装 SQL Sever 2000至最后步骤报错“安装程序配置服务器失败。 参考服务器错误日志和 C: \Windows\sqltsp.log 了解更多信息”

    在安装 SQL Sever 2000至最后步骤报错"安装程序配置服务器失败. 参考服务器错误日志和 C: \Windows\sqltsp.log 了解更多信息" ,如 图: 解决方 ...

  7. C# 安装程序制作,如何添加第三方DLL以及自定义的文件夹(如uploadFiles 文件夹)

    项目基本的安装程序制作,可参考: http://blog.csdn.net/kezhen/article/details/17732615 http://blog.csdn.net/kezhen/ar ...

  8. Java安装程序制作工具

    Java安装程序制作工具 IzPack 是一个 Java 安装程序制作工具,能够制作一些简单的安装程序.制作出来的安装程序能在 Unix-like, MacOS X, Windows 等系统平台上运行 ...

  9. 一键安装,双击运行——Java安装程序制作

    如果您喜欢这些文章,欢迎点击此处订阅本Blog <script type="text/javascript"></script> <script sr ...

最新文章

  1. tc-core-library-js学习笔记
  2. 现任明教教主共享胖AP与WLC安全配置录像.上半部分
  3. 面试官:谈谈equals() 和 == 的区别
  4. linux在shell中获取系统时间,linux在shell中获取时间
  5. [AtCoder-ARC073F]Many Moves
  6. 【kafka】kafka topic某些分区 副本落后leader太多
  7. LINQ体验(2)——C# 3.0新语言特性和改进(上篇)
  8. 开课吧python小课学了有用吗-这个神仙技能,让你为所欲为!速来 !
  9. 使用 Redis 实现一个轻量级的搜索引擎,牛逼啊!
  10. SqlTransaction事务和Response.Redirect
  11. JSP 新手入门理解教程(附带案例)
  12. 读书百客:《陋室铭》赏析
  13. 深入浅出即时通讯(1)_即时通讯协议对比
  14. Java程序员月薪20k的涨薪秘籍,没点绝活敢跳槽吗?
  15. php qq远程桌面共享,新手学堂:用VNC实现远程桌面共享的方法
  16. 自然语音处理(NLP)系列(四)——命名实体识别 (NER)
  17. 基于ip-iq变换的谐波检测算法,并联型APF 有源电力滤波器 谐波电流检测
  18. java 图片 内存溢出_Java修改图片尺寸,总是报内存溢出怎么解决?
  19. BFC(Block Formatting Context) 及其如何工作
  20. 第一次冲刺--查看活动详情用户场景分析

热门文章

  1. TensorFlow学习笔记02:使用tf.data读取和保存数据文件
  2. alertdialog怎么水平排列_网图骗人?别墅挂画怎么挂都不好看?答案在这里
  3. 预测 lncRNA-disease 关联的相关方法综述
  4. 双系统安装Win10 与 Ubuntu,开机直接进入win10不能进入 Ubuntu系统解决办法
  5. Tduck问卷系统的部署文档
  6. 【狼雨seo】新站关键词排名变动的真相
  7. 闲来无事系列-雨课堂抓包发包玩法(娱乐向)
  8. 计算机二级java考试内容,2015年计算机二级java考试内容
  9. 【FDM】开源免费的下载软件
  10. 1.定义一个Father和Child类,并进行测试。 要求如下: 1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。 2)Child