php实现安装程序的 安装
install.php
只要填写数据库就可以把数据插入到数据库中,实现安装
<?php
header("Content-type:text/html;charset=utf-8"); //看你用的是什么编码,要保持一致。
$files="config.inc.php"; //要写入的配置文件。
if(!is_writable($files)){ //判断是否有可写的权限,linux操作系统要注意这一点,windows不必注意。
echo "<font color=red>文件不可写</font>";
exit();
}
if($_POST['install']){ //获取用户提交的数据。
$host=$_POST['host'];
$user=$_POST['user'];
$password=$_POST['password'];
$dbname=$_POST['dbname']; $config="<?php return array("; //$config的内容就是要写入配置文件的内容。
$config.="\n"; // /n是用来换行的。
$config.="'DB_TYPE'=>'mysql',";
$config.="\n";
$config.="'DB_HOST='>'".$host."',";
$config.="\n";
$config.="'DB_NAME'=>'".$dbname."',";
$config.="\n";
$config.="'DB_USER'=>'".$user."',";
$config.="\n";
$config.="'DB_PWD'=>'".$password."',";
$config.="\n";
$config.="'DB_PORT'=>'3306',";
$config.="\n";
$config.="'DB_PREFIX'=>'zz_',";
$config.="\n";
$config.="'SHOW_PAGE_TRACE' =>false,";
$config.="\n";
$config.=");?>"; $file = fopen($files, "w"); //以写入的方式打开config.php这个文件。
fwrite($file,$config); //将配置信息写入config.php文件。
fclose($file);
if(!$conn=@mysql_connect($host,$user,$password)){
echo '连接数据库失败!请返回上一页检查连接参数 <a href="javascript:history.go(-1)" mce_href="javascript:history.go(-1)"><font color=#ff0000>返回修改</font></a>';
exit();
}else{
mysql_query("set names utf8;"); //设置数据库的编码,注意要与前面一致。
if(!mysql_select_db($dbname,$conn)){ //如果数据库不存在,我们就进行创建。
//$dbsql="CREATE DATABASE `$dbname`";
$dbsql="CREATE DATABASE `$dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
if(!mysql_query($dbsql)){
echo '创建数据库失败,请确认是否有足够的权限!<a href="javascript:history.go(-1)" mce_href="javascript:history.go(-1)"><font color=#ff0000>返回修改</font></a>';
exit();
}
}
//下面根据你实际的表的结构跟初始化表的数据来写,这些sql语句,我们在导出时可以找到。 include_once("public/sql.php");
foreach($sql_query as $sql){
if(!mysql_query($sql)){ //依次执行以上的sql语句,就是创建表和初始化数据。
echo "<font color=red>已准备好安装,请刷新安装继续!!!!</font>";
exit();
} }
mysql_close();
echo "安装成功";//可以做一个跳转到首页。
exit();
}
} ?>
<html>
<head><title>php安装程序的基本原理</title></head>
<body>
<form action="install.php" method="post">
<br/>
<font color="blue">填写主机:</font><input type="text" name="host" value="localhost">本地主机为localhost<br />
<br/><font color="blue">连接数据库的用户名:</font><input type="text" name="user" value="root"><br />
<br/><font color="blue">连接数据库的密码:</font><input type="text" name="password" value="123456"><br />
<br/><font color="blue">要创建的数据库名:</font><input type="text" name="dbname" value="testinstall"><br />
<br/><input type="submit" name="install" value="安装">
</form>
</body>
</html>
php实现安装程序的 安装的更多相关文章
- Winform打包安装程序覆盖安装的实现
1.修改项目程序集版本号. 2.设置Version,使当前版本号大于前一个版本号. 3.RemovePreviousVersions属性设置为true. 以上三步后,生成安装程序即可实现覆盖安装. P ...
- 【Inno Setup】 Inno Setup 64位安装程序默认安装路径
在脚本中加入: ArchitecturesInstallIn64BitMode=x64 ArchitecturesAllowed=x64
- 解决msi文件在XP上安装未完成(提示安装程序被中断,未能安装app。需要重新启动该安装程序进行重试)的问题。
如图所示,我利用Visual Studio 2015制作了一个小程序.基于.Net 4.0.用VS的Install扩展,新建Install项目进行打包.打包为.msi文件.该安装文件在已经安装了 .N ...
- Linux下通过源码编译安装程序
本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...
- 转 : 用Delphi编写安装程序
http://www.okbase.net/doc/details/931 还没有亲自验证过,仅收藏 当你完成一个应用软件的开发后,那么你还需要为该软件做一个规范化的安装程序,这是程序设计的最后一步 ...
- Window程序的安装与部署
步骤: 1.新建项目—选择安装与部署—安装项目或使用安装向导,再这里我用的是安装向导 2.点击确定—下一步 3.点击下一步,选择主输出 4.点击下一步,添加文件 5.点击完成 设置: 右击安装项目 出 ...
- vb6.0安装程序制作图解教程
如何制作vb安装程序,是在学习Vb6.0过程中比较常见的一个入门问题. 在此笔者介绍一个最简单的安装方法,就是用VB自带的打包程序进行打包,虽然比较普通,不过内部却有不少窍门,相信这一点知道的人可能不 ...
- 【转】C#程序打包安装部署之添加注册表项
今天为大家整理了一些怎样去做程序安装包的具体文档,这些文档并不能确保每个人在做安装包的时候都能正确去生成和运行,但是这些文档的指导作用对于需要的朋友来说还是很有必要的,在实际产品的安装部署过程中可能有 ...
- c#自动更新+安装程序的制作 (转)
c#自动更新+安装程序的制作 (转) http://blog.csdn.net/myhuli120/article/details/6927588 一.自动更新的实现 让客户端实现自动更新,通常做法 ...
随机推荐
- oradebug工具使用(转载)
在之前的HangAnalyze 中有使用oradebug命令,在这篇文章里,我们主要是重点看一下这个oradebug命令: Oracle HANGANALYZE 功能诊断 DB hanging htt ...
- yum速查
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包, 能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖 ...
- jupyter常用快捷键
Jupyter Notebook 有两种键盘输入模式.即命令模式和编辑模式,这与 vim有些类似. 在编辑模式下,可以往单元中键入代码或文本,此时单元格被绿色的框线包围,且命令模式下的快捷键不生效. ...
- cdojQ - 昊昊爱运动 II
地址:http://acm.uestc.edu.cn/#/contest/show/95 题目: Q - 昊昊爱运动 II Time Limit: 3000/1000MS (Java/Others) ...
- POJ - 3662 Telephone Lines (Dijkstra+二分)
题意:一张带权无向图中,有K条边可以免费修建.现在要修建一条从点1到点N的路,费用是除掉免费的K条边外,权值最大的那条边的值,求最小花费. 分析:假设存在一个临界值X,小于X的边全部免费,那么此时由大 ...
- Hbase 布隆过滤器BloomFilter介绍
转载自:http://blog.csdn.net/opensure/article/details/46453681 1.主要功能 提高随机读的性能 2.存储开销 bloom filter的数据存在S ...
- redis 笔记05 Sentinel、集群
Sentinel 1. Sentinel只是一个运行在特殊模式下的Redis服务器,它使用了和普通模式不同的命令表,所以Sentinel模式能够使用的命令和普通的Redis服务器能够使用的命令不同. ...
- How to create a notification with NotificationCompat.Builder?AAAA
Ask Question up vote 49 down vote favorite 19 I need to create a simple notification which will be s ...
- ubuntu16.04 虚拟机 安装win7/win10
http://www.xitongcheng.com/jiaocheng/xtazjc_article_26588.html https://blog.csdn.net/sunyao_123/arti ...
- 《React-Native系列》RN与native交互与数据传递
RN怎么与native交互的呢? 下面我们通过一个简单的Demo来实现:RN页面调起Native页面,Native页面选择电话本数据,将数据回传给RN展示. 首先是 Native侧 1.MainAct ...