質問

私のサイトの管理領域で、サイトが使用するMySQLデータベースのホスト名、ユーザー名、およびパスワードのためのフォームがあります。現在これらの値はPHPクラスにハードコードされています。しかし、どのようにリンクをリンクさせることができるように、フォームはPHPクラス内の変数を編集できるようにします(言い換えれば、変数はハードコードされています)。私は通常このようなものをデータベースに保ちますが、明らかにこれはできません。

役に立ちましたか?

解決

設定ファイルに値を保持します。そしてそれがWebからアクセスできないことを確認してください。

最も簡単な解決策は、値を設定アレイに保つことです。ユーザーが値を入力し、それから配列を生成してからfile_put_contents("config.php", "<?php $config = " . var_export($config))を生成します。このメソッドを使用すると、Config Arrayが必要な場合はいつでも、include config.phpとそこにあるのはそこにあるのです。

これはテストされていないコードです。あなたの状況に応じて、あなたは競合状態を解決する必要があるかもしれません、file_put_contentsはそれに慣れていません。上記のコードのメインポイントは次のとおりです.var_export有効なPHPコードを返します。

他のヒント

設定ファイルを作成し、Webサーバーの書き込みアクセスを許可します。その後、DB設定をこのファイルに保存するスクリプトを書くことの簡単なことです。e.g.

$fh = fopen('config.php', 'w');
fwrite($fh, chr(60) . "?php\n");
fwrite($fh, sprintf("define('DB_HOST', '%s');\n", addslashes($_POST['DB_HOST'])));
fwrite($fh, sprintf("define('DB_USER', '%s');\n", addslashes($_POST['DB_USER'])));
fwrite($fh, sprintf("define('DB_PASS', '%s');\n", addslashes($_POST['DB_PASS'])));
fclose($fh);
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top