1.製作PHP安裝程式的原理
其實PHP程式的安裝原理無非就是將資料庫結構和內容導入到對應的資料庫中,從這個過程重新配置連接資料庫的參數和文件,為了保證不被別人惡意使用安裝文件,安裝完成後需要修改安裝文件。
2. 製作PHP安裝程式的步驟
step1 檢查目錄或檔案的權限
step2 修改或填加設定檔
step3 檢查設定檔正確性
step4 匯入資料庫
step3 檢查設定檔正確性
step4 匯入資料庫
step3 檢查設定檔正確性
step4 匯入資料庫
step3 檢查設定檔正確性
step4 匯入資料庫
step3 檢查設定檔正確性
step4 匯入資料庫
step3 檢查設定檔正確性
step4 匯入資料庫
step3 檢查設定檔正確性
step4 匯入資料庫
step3鎖定或刪除安裝檔
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,
`username` varchar(40) NOT NULL COMMENT '操作使用者名稱',
`types` varchar(60) NOT NULL,
MARY KEY (`id`)
) ;";
$sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log3` (
`id` int(8) unsigned NOT NULL auto_increment,
`types` varchar(60) NOT NULL,
PRIMARY KEY (`id`)
) ;";
foreach($sql_query as $val){
mysql_query($val);
}
echo "<script>alert('安裝成功!');location.href='index.php'< /script>"; <BR>rename("install.php","install.lock"); <BR>} <BR>} </script>