PHPで何かを作るときに、DBのパスワードや変数の定義をconfig.phpみたいな設定ファイルを作り、各ソースでrequire_once("config.php")等で読み込んで使うようにしています。設定ファイルの変更はテキストエディタでやっているのですが、これをブラウザで読み込んで表示し、登録はテキストファイルやXMLなどに書き出す方法を探しています。
要は、「各設定をブラウザでやって、実際のスクリプトではその設定を読む」みたいなことをやりたいのですが、どういう方法があるのでしょうか?
アドバイス下さい。お願いします。
No.4ベストアンサー
- 回答日時:
追記です
読み込みはparse_ini_fileという便利なものがありましたね。普段使わないのですっかり忘れてました。
http://jp.php.net/manual/ja/function.parse-ini-f …
これを使えばセクションも設定可能です。自前であれこれする必要がなくなります(書き込みは仕方ないですが・・)。
ありがとうございます。
何度も回答頂き感謝いたします。
parse_ini_file、はじめて知りました。
まさにコレって感じで使えそうです。
勉強しながらちょっと使ってみたいと思います。
No.5
- 回答日時:
質問の直接的な答えは他の回答者サンに任せます
あなたの仕様を満たしたものを作った場合、設定を変更するページへのアクセスする方法が何かしらのきっかけで漏洩してしまった場合は第三者がブラウザからパスワード等が簡単にばれてしまうことになりますがよろしいのでしょうか?
設定ファイルなんて一度書いてしまえばそうそう変更するような物でもないですし。わざわざそのような機能を作る意図が良く分からないです。
ありがとうございます。
まぁそうなんですけど、今回質問させて頂いたのは
1つのアプリを汎用というかサーバ環境、ユーザが変わっても簡単に設定が変更出来て、アップロードもあまり出来ないようなユーザにも設定が変更できる様にしたいなと思いまして。
確かにセキュリティはしっかり考えるべきだと思います。
なので、その辺を踏まえながらどのような物にするか考えたいと思います。
No.3
- 回答日時:
仕様をどうしましょうかねぇ・・と思いつつ、ざっくりと(あくまでもサンプルってことで)
<?php
$keys = array('db_host', 'db_nme', 'db_user', 'db_pass');
foreach ($keys as $key) { $$key = ''; }
if ($_POST) {
$fp = fopen("config.php", w);
foreach ($keys as $key) {
$$key = $_POST[$key];
fwrite($fp, $key . "=" . ${$key} . "\n");
}
fclose($fp);
}
?>
<form action="" method="post">
<?php
$array = file("config.php");
foreach ($array as $line) {
list($key, $value) = explode("=", trim($line));
if ($value == '') {continue; }
$$key = $value;
}
foreach ($keys as $key) {
print "{$key}<input type=\"text\" name=\"$key\" value=\"${$key}\"><br />\n";
}
?>
<input type="submit" value="submit">
</form>
慌てて書いたので文法ミスやtypoがあったら適宜修正してください(汗
No.2
- 回答日時:
すごく「ざっくりと」書くとこんな感じですかね・・。
あとは適宜アレンジしてみてください。<?php
if ($_POST) {
$config = $_POST['config'];
$fp = fopen("config.php", w);
fwrite($fp, $config);
fclose($fp);
}
?>
<form action="" method="post">
<textarea name="config">
<?php readfile("config.php"); ?>
</textarea>
<input type="submit" value="submit">
</form>
「textareaなどはみっともないので、項目ごとに入力を・・」となると(configファイルの)ある程度の設計が必要になります(汗
ありがとうございます。
そうなんですよね。1つの項目に<input type="text">とやりたくて、項目が100個くらいあるんです。
それを何か上手に出来ないかと思いまして。
configファイルの書式は限定されても全然いいんですけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pdfファイルの複数添付 引数の型
-
VB.NET で 二次元のハッシュは...
-
sqlのデーターを『あ行』『か行...
-
csvファイルの不定長フィールド...
-
pg_copy_fromの使い方について...
-
プルダウンメニューにDBの内容...
-
file_existsでファイル名の部分...
-
PHPのカッコ[ ]の使い方について
-
配列をループでたくさん宣言し...
-
array_intersectで空欄を比較し...
-
Resource id #3 と表示されま...
-
String だと「 ByRef引数の型が...
-
C言語の配列をPush(追加)する...
-
TEXTAREAに書いた改行コードを...
-
postgresql関数をつかったレコ...
-
別ファイルの構造体の値を読み...
-
foreachのなかで次のキーを参照...
-
漢字のソートについて
-
テキストボックスの日本語をロ...
-
VBAでcsvファイルもシートもあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチング処理(1:N)
-
PHPで変数名にハイフンを使うに...
-
foreachで上限回数指定方法また...
-
pdfファイルの複数添付 引数の型
-
Delphi XEの警告文を消したい
-
PHPでこのコード自体に意味は無...
-
元号の表示
-
phpでforeachの中にforeachがあ...
-
PHPの構文で間違えが分からない
-
PHPで連想配列のプルダウンメニ...
-
VB.NET で 二次元のハッシュは...
-
foreachとかの勝手な省略?
-
filter_input( INPUT_POST, 'va...
-
Excel VBAでフィルター後の対象...
-
foreach文
-
ulのネストをタブ区切りに変換...
-
3つの連想配列を交互に代入し...
-
フィールド(項目)を縦に設定...
-
PHPで、'=>'の意味が分かりませ...
-
textより$$にはさまれた文字列...
おすすめ情報