データベースなしでPHP変数を恒久的に保存します
質問
私のサイトの管理領域で、サイトが使用する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);
. 所属していません StackOverflow