开发完成后如何写Install.php文件【连载】
一般来说,当写好PHP动态网站后,要将写好的phpweb安装到其他服务器上时,很多时候都是直接修改原代码中的参数,这样好处在于减少工作量,但是代价确实比较麻烦(要根据不同服务器的参数调整);如果你的程序不希望任何人都能随意使用,你该怎么处理呢?估计你马上会说,加密代码!没错,这是一个好办法,用zend加密他。但是麻烦又来了,写好的程序,安装一次你就要加密一次配置文件。麻烦吧?
i138原创文章,由于比较粗糙,不能登大雅之堂,禁止转载
PHPer新手很多都不懂得如何写安装(install.php)程序,在google中也很难找到相关的资料或教程。这里,我抛砖引玉,将一些我自己写install的办法,经验拿出来给大家分享。
首先,我们知道,一般来说,php web一般都会用到Mysql作为数据库(免费嘛),整个php web能够运行起来,也是需要有链接mysql的 php函数或类(如phplib中的mysql.ini等),使用这些,我们至少需要知道
引用:
数据库所在地址:一般来说,mysql数据库也是和php安装在同一个服务器上的(localhost),但是安全因素考虑也有安装在其他服务器的时候(如:192.168.18.200)。
数据库服务端口:一般都是默认的3306,但是有时为了安全,管理员会换成其他端口。如果是默认的端口,此项可以忽略
数据库用户名:mysql管理员分配给你的操作数据库的用户名
数据库密码:mysql管理员分配给你的用户名对应的密码
数据库名称:mysql管理员分配给你的数据库名称,有些时候,这个是没有提供给你的,需要你自己创建数据库
一般的php web系统,phper都会写一个config.php的文件来记录这些数据,然后每一个php页都包含这个页面。
经典的config.php内容如下:
<?
//config.php
$mysql_add = 'localhost'; //数据库地址
$mysql_user = 'user_xiaomao'; //用户名
$mysql_pass = '88888888';//密码
$mysql_dbname = 'blog_db';//数据库名称
?> ;
当我们知道这些参数后,我们可以直接修改config.php文件中的链接mysql参数。
i138原创文章,由于比较粗糙,不能登大雅之堂,禁止转载
如果我们想做一个友好的界面给用户,不让用户去修改我们的程序。那么我们需要做一个程序来实现生成config.php:
1,显示表单。表单中包含有4个输入框。
<FORM METHOD=POST>
数据库地址:<INPUT TYPE="text" NAME="local"><BR>
数据库名称:<INPUT TYPE="text" NAME="dbname"><BR>
数据库用户名:<INPUT TYPE="text" NAME="user"><BR>
数据库密码:<INPUT TYPE="password" NAME="pswd"><BR>
<INPUT TYPE="submit" value="确定"><INPUT TYPE="reset" value="重填">
</FORM> ;
2,对表单进行处理。得到用户从表单中post过来的数据。
<?php
$dbadr =trim($_POST['local']);
$dbname =trim($_POST['dbname']);
$dbuser =trim($_POST['user']);
$dbpswd =trim($_POST['pswd']);
?> ;
3,将数据写入config.php中。
代码如下:
<?
$file="config.php"; //要写入的文件,路径与此段程序一样
if(is_writeable($file)) { //判断文件是否允许写入.
echo "此文件$file可以写入.";
$fp=fopen($file,"w"); //打开$file文件
$write_data = "<?php"
."\n"
."//参数配置文件config.php"
."\n\n"
."/* Mysql Server */\n"
."var \$mysql_add\t\t\t= "
."'".$dbadr."';"
."\n\n"
."/* Mysql User */\n"
."var \$mysql_user\t\t\t= "
."'".$dbuser."';"
."\n\n"
."/* Mysql Password */\n"
."var \$mysql_pass \t\t\t= "
."'".$dbpswd."';"
."\n\n"
."/* Mysql Database Name */\n"
."var \$mysql_dbname\t\t= "
."'".$dbname."';"
."\n\n?>";
//这段是你要写到config.php里面的东西
if(!fwrite($fp, $write_data)) { //如果写入失败,die掉程序,输出错误
die("数据库链结配置文件建立失败!");
}else{
echo "数据库链接配置文件建立成功!";
}
}else{
echo "此文件无法写入,请检查是否有'写'权限.";
}
?> ;
至此,上面三个步骤完成,实现了根据输入的数据写到config文件。
当然了,这只是个例子,而且写法也很简单,少了很多中间校验和处理如果无法写入时如何操作权限部分。如果真正使用,请务必做好各种安全措施,而且,运行提交完后要del掉此文件,不让其他用户有意无意的使用到他,因为一旦使用,有可能导致config.php文件错乱,那么你的网站也就OVER了。