- ベストアンサー
ネット上で文章を差し替える方法
トップページの文章をネット上で更新したいのですが、 phpを使ってシステムを構築するにはどうしたらできますか? 具体的には、トップページのファイルとは別に、設定をするためのページを作り、 そこで文章を編集した内容を、ダイレクトでトップページに反映するような仕組みを考えています。 phpではお問い合わせフォームぐらいしか作ったことはなく、ほぼ素人なので、 全体のイメージが湧きません。 ざっくりで構わないので、構築するための流れを教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
単純な方法として、 ■トップページの当該部分では include("お知らせ.html"); などで別ファイルを読み込み ■編集用ページでは、 1. ID/パスワード 入力画面 >> 正しければ 編集用のformを表示 (その際、textarea 欄には現在の [お知らせ.html] を読込んで表示) 2. 送信ボタンで[お知らせ.html] を上書き、保存。 が基本かと。余力があれば、 ・複数の部分を編集できるようにする ( formに部分毎の textarea と送信ボタンをつければよいだけですね。) ・同様に設定ファイルを編集できるようにし、背景や文字色なども変更できるようにしてみる ・includeではなくトップページそのものを書き換えるようにしてみる。 などなど。 textareaには FCKEditor 等の WYSIWYGエディタを設置してみても面白いでしょう。 http://ckeditor.com/demo あるいはCMSを使うというのも手です(勉強にはなりませんが)
その他の回答 (1)
- JaneDue
- ベストアンサー率75% (263/350)
>Aを保存するとBが消えて、Bを保存するとAが消えます。 先の方法なら、A,B のtextareaにはそれぞれ別のnameをつけて判定し、もちろん別ファイルに保存することになります。送信された時に、どのデータをどのファイルに保存しているのか順を追ってみると原因が分かると思いますよ。 >一つのファイルに保存するはできないのでしょうか >ファイルに変数をそのままの形で($testのように)保存することはできますか いろいろな方法がありますが、簡単な例としては保存するときに 入力内容だけでなく、 <?php $textA = "入力内容A~"; $textB = "入力内容B~"; という形になるよう保存するだけです。 あるいは serializeを使ってもよいでしょう。 たとえば、ひとつの変数$configにまとめて $config['textA'] = "入力内容A~"; $config['textB'] = "入力内容B~"; とし、serialize($config) したものを設定ファイルとして保存。読み込み時には、 $config = unserialize( file_get_contents("設定ファイル")); として変数に戻してやればOKです。 連想配列$config['textA']ではなく、どうしても$textA として戻したいなら extract($config); すればよいでしょう。 http://jp2.php.net/manual/ja/function.serialize.php http://jp2.php.net/manual/ja/function.extract.php
お礼
自分の思う通りのものができました。 JaneDueさん、ありがとうございます。
お礼
回答ありがとうございます。 大筋流れは理解したので、実際に作ってみたのですが、 作りながら外部ファイルの保存のことで疑問に思ったことがあります。 たとえば、Aの部分、Bの部分と変えたい部分が複数あった場合、 Aを保存するとBが消えて、Bを保存するとAが消えます。 単純に複数外部ファイルを用意するばいい話なのですが、 一つのファイルに保存するはできないのでしょうか? それからもう一つ、今回の質問とは関係ないのですが、 ファイルに変数をそのままの形で($testのように)保存することはできますか? お時間があれば回答よろしくお願いします。