PHPサイトインストーラの作成
4369 ワード
1.PHPインストーラを作成する原理PHPプログラムのインストール原理は、データベースの構造と内容を対応するデータベースにインポートすることにほかならない.この過程からデータベースに接続するパラメータとファイルを再構成し、他人に悪意を持ってインストールファイルを使用されないように、インストールが完了した後にインストールファイルを修正する必要がある. 2. PHPインストーラを作成するにはstep 1ディレクトリまたはファイルをチェックする権限step 2プロファイルを修正または記入するstep 3プロファイルの正確性をチェックstep 4データベースstep 5にインポートしてインストールファイルをロックまたは削除する.インストールに使用するPHP関数を作成してファイルが書けるかどうかをチェックし、ブール値を返します:is_writable("data/config.php");ファイルが読み取り可能かどうかを確認し、ブール値を返します:is_readable("data/config.php");fopen()ファイル操作関数、ファイルを開くか、fwrite()ファイル操作関数を新規作成し、ファイルrename()ファイル操作関数に内容を書き込み、ファイルに名前を変更します.注意事項(1).キャッシュ、生成ファイル、プロファイル(2)など、ファイルと関連フォルダの権限をチェックする.インストールファイルはできるだけ独立して、削除することができて、名前を変えることができます. (3).データベースをインポートする場合は、a.データベースを作成する権限があるかどうかをチェックするb.同じ名前のデータベースがあるかどうかをチェックするc.データベースのインポートのサイズを考慮してセグメント化処理(4)する.構成環境、gd 2、pdo、rewirteなど、さまざまなモジュールのサポート状況を確認します.サンプルコードは次のとおりです.
config.php
install.php
config.php
<?php
$mysql_host = "localhost";
$mysql_user = "root";
$mysql_pass = "111111";
$mysql_dbname = "php_db";
$mysql_tag = "p_";
?>
install.php
<?php
$files="data/config.php";
if(!is_writable($files)){
echo "<font color=red> !!!</font>";
}else{
echo "<font color=green> </font>";
}
if(isset($_POST[install])){
$config_str = "<?php";
$config_str .= "
";
$config_str .= '$mysql_host = "' . $_POST[db_host] . '";';
$config_str .= "
";
$config_str .= '$mysql_user = "' . $_POST[db_user] . '";';
$config_str .= "
";
$config_str .= '$mysql_pass = "' . $_POST[db_pass] . '";';
$config_str .= "
";
$config_str .= '$mysql_dbname = "' . $_POST[db_dbname] . '";';
$config_str .= "
";
$config_str .= '$mysql_tag = "' . $_POST[db_tag] . '";';
$config_str .= "
";
$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 " ! <a href=install.php> </a>";
} 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 "<script>alert(' !');location.href='index.php'</script>";
rename("install.php","install.lock");
}
}
?>
<hr size=1>
<form action="" method="POST">
:<input type="text" name="db_host" value=""/><br>
:<input type="text" name="db_user" value="root"/><br>
:<input type="text" name="db_pass" value=""/><br>
:<input type="text" name="db_dbname" value="php_db"/><br>
:<input type="text" name="db_tag" value="p_"/><br>
<button type=submit name=install> </button>
</form>