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
<?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>