- ベストアンサー
ホームページの画像表示と変更方法を教えてください
- ホームページに画像をアップロードせずに管理画面から変更する方法を教えてください
- index.htmlでの画像表示とPHPでの画像のアップロードはできるが、画像の変更方法がわからない
- PHPのfopen関数を使用してテキストファイルに書き込むことはできるが、具体的な使用方法がわからない
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、そちらの書いたものを、書き直したものだけにしたいと思います。 kanri01.htmlは そのままでいいです。 これは ともかくとして。 > <option value="c004">c005</option> kanri02.phpは 結構 書き直しました。 そちらの書いたものと見比べて参考になれば幸いです。 -------------------------------------------------- <html> <head> <title>kanri02</title> </head> <body> <?php $me = $_SERVER['PHP_SELF']; $bcode = $_REQUEST["fname"]; $body = $_REQUEST["body"] . "\n"; $fn = "./" . $bcode . ".txt"; if($_REQUEST["write"] != ""){ $fp = fopen($fn,"a"); fputs($fp,$body); fclose($fp); } ?> ファイルは、<font color='#FF0000'><b><?= $bcode; ?></b></font>を 選択しました。<hr> 書き込む内容を入力してください。<hr> <form name="form" action="<?= $me; ?>" method="POST"> <input name="body" type="text" size="40"> <input name="fname" type="hidden" value="<?= $bcode; ?>"> <input name="write" type="submit" value="書込"><hr> <?php print "[$fn] このファイルの内容 <hr>\n"; if (file_exists($fn)) { $data = file($fn); foreach($data as $i => $dat) { print "NO." . $i . ":" . $dat . "<hr>\n"; } } else { print "ファイル自体がありません。"; } ?> <a href=kanri01.htm>戻る</a> </form> </body> </html> -------------------------------------------------- ちなみに、$fp = fopen($fn,"a"); だと ファイルの終端に追加されるようですので、 > index.htmlにてc001などを開いて1行目を読み取ってやれば これは、最終行という事になります。 俺は JavaScriptでファイルを扱ったことはありませんので、 詳細は不明で申し訳ないです。 > まだ読み取る部分は出来ておりませんが考え方自体は折っておりますでしょうか? そうですね。ばっきばきに折れてますね。冗談です。 とりあえず、全体的には そちらのやろうとしていくことは実現できるとは思います。 ただ、そちらの実行環境がよく分かりませんので、最善と思える方法かどうかは判断できかねます。
その他の回答 (6)
- bm_hiro
- ベストアンサー率51% (200/388)
えーっと。。。何度もすみません。 > 「自分で選んだファイル名をつけたテキストファイルに、 > コメントを書き込みたい。」と言う事でよろしいでしょうか? ↑これは これで いいんですよね? あと、いまスクリプト中にある コメントを保存しているファイルdata.txt を c001~c004.txt にしたい。って事ですよね?
補足
ご対応有難う御座います。 > 「自分で選んだファイル名をつけたテキストファイルに、 > コメントを書き込みたい。」と言う事でよろしいでしょうか? >あと、いまスクリプト中にある コメントを保存しているファイルdata.txt を >c001~c004.txt にしたい。って事ですよね? はいそうなります。後はindex.htmlにてc001などを開いて1行目を読み取ってやればオンマウスの部分が表示できるかなと思っております。 まだ読み取る部分は出来ておりませんが考え方自体は折っておりますでしょうか? 宜しくお願い致します。
- bm_hiro
- ベストアンサー率51% (200/388)
#4の件です。 んーーーーーー。。。。 ん? んんん??? んーーーーー??? ってな感じで、だいぶ頭を悩ませましたが、 スクリプトを読んで、おおよそ やりたい事が分かりましたので、 確認させてください。 「自分で選んだファイル名をつけたテキストファイルに、 コメントを書き込みたい。」と言う事でよろしいでしょうか? そちらの書いたものに合わせたスクリプトと、 こちらの説明しやすいように書くスクリプト、どちらを希望されますか?
補足
ご返事有難う御座います。 肝心な部分の説明が不足しており申し訳御座いませんでした。余計なお手間を取らせてしまったようです。 >そちらの書いたものに合わせたスクリプトと、 >こちらの説明しやすいように書くスクリプト、どちらを希望されますか? 完成度としてはbm_hiro様の作製された物の方が良いと思いますが、やっと今回作製しているものの流れが大まかですが把握できた状態ですので自分の書いた物に合わせて頂けますと大変助かります。またずうずうしいお願いではありますがbm_hiro様の作製した物も拝見させて頂けましたらなお参考になります。 こちらはbm_hiro様のお手間にならない方でお願いできればと思います。 宜しくお願い致します。
- bm_hiro
- ベストアンサー率51% (200/388)
#3です。 > PHPにてfopenに変数は使えないのでしょうか? > $fp = fopen("./$file.txt","a") %fileとしてもファイルが開けませんでした。 すみません。言いたいことが分かりません。。。 ファイルを読むだけであれば、 file() と言う関数もあります。 オンマウス時に表示されるテキストの変更ですが、 そちらであれば、これの応用で出来るんじゃないかと思います。 http://questionbox.jp.msn.com/qa5650335.html
補足
度々申し訳御座いません。また参考URL有難う御座います。 参考URLは拝見させて頂きましたが余計私には難しいようです。 今度、質問させて頂いたのは、HTMLから変数にてPHPに送りその変数にてレンタルサーバー上のファイルを開きたいと思い補足させて頂きました。 kanri01.html <html> <head> <title>kanri01</title> </head> <body> <p>ファイルを選択して下さい</p> <p> <form name="kanri01" method="post" action="./kanri02.php"> <select name="fname"> <option>選択してください</option> <option value="c001">c001</option> <option value="c002">c002</option> <option value="c003">c003</option> <option value="c004">c005</option> </select> <input type="submit" name="Submit" value="決定"> </form> </p> </body> </html> kanri02.php <?php $bcode = $_REQUEST["fname"]; ?> <html> <head> <title>kanri02</title> </head> <body> ファイルは、<font color="#FF0000"><b><?= $fname; ?></b></font>選択しました。 </body> </html> ?> <?php $body = $_REQUEST["body"]; $body = $body."\n"; if($_REQUEST["write"] != ""){ $fp = fopen("./data.txt","a"); fputs($fp,$body); fclose($fp); } ?> <html> <head> <title></title> </head> <body> <h1></h1> 書き込む内容を入力してください。<hr> <form name="form" action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST"> <input name="body" type="text" size="40"> <input name="write" type="submit" value="書込"><hr> <?php $data = file("./data.txt"); for($i=0; $i<sizeof($data); $i++){ print "NO.${i}:${data[$i]}<br>\n<hr>"; } ?> </form> </body> </html> 上記PHPにてdata.txtと言うファイルには書き込み(追加)出来るのですがdata.txtをhtmlで選択したc001が変数$fnameに入っていると思いますので$fnameに拡張子TXTをつけたファイルに$fname.txtに保存できないかと色々試しています。print文にて表示してみますと$fnameにはc001とはいっておりました。 参考になりそうなHPからの引用ですので使い方が違う点はあるかと思いますが宜しくお願い致します。
- bm_hiro
- ベストアンサー率51% (200/388)
とりあえず、そちらの言っている「オンマウス時に表示される文字」が、何を指しているのか、よく分からないのですが、 「画像の上にマウスを持っていったときにフキダシのように表示される文字」と言うことでよろしいでしょうか? > イメージタグの部分の画像ファイル名は固定にして これは、アリだと思います。 確かに、これだと HTMLの書き換えは必要ありません。 「オンマウス時に表示される文字」は対応できませんが。 画像ファイル名が固定なら、アップロード時に一緒に指定してあげれば、 管理画面で変更する必要はなくなると思います。 かなり はしょってますが、↓みたいな感じに。 <form action="" method="post" enctype="multipart/form-data"> <select name="filename"> <option>選択してください</option> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> </select> <input type="file" name="attachment"> <input type="submit"> </form> んで、アップロードされたファイルを処理する部分で、 そのファイル名をつけて 保存してあげれば良いかと。 copy() か move_upload_file() で。 ただ、正直、補足に書いてもらった部分だけだと、分からないことも多く、 ここだけで 説明するのは 厳しいかもしれない。と思ってます。
補足
ご回答いただき有難う御座います。またご返事が遅くなり大変失礼いたしました。 アドバイスは大変参考になりました有難う御座います。 アドバイス頂きました様に画像ファイル名は固定で作成しようと思います。 オンマウス部分なのですが <a href="index.html" _ onmouseover="up('<span class=big>[ テスト ]</span><br /><span class=middle>テスト文字</span><br /><span class=mini>テスト文字2<br />テスト文字3<br />テスト文字4</span>')"; onMouseout="kes()"><img src="images/A.jpg" index.htmlにてテスト文字の部分にファイルから読み込んで表示できないかと思っています。 htmlにてテスト文字を変数にする。 $fp = fopen("./$file.txt","a")にてファイルを開き1行目を表示すれば出来そうに思いました。 PHPにてfopenに変数は使えないのでしょうか? $fp = fopen("./$file.txt","a") %fileとしてもファイルが開けませんでした。 お時間がありましたら宜しくお願い致します。
- inu2
- ベストアンサー率33% (1229/3720)
管理画面みたいなものを作るってことは可能です。 どう作ればいいか。 ここでは説明しきれないし、本1冊とか2冊になるようなものです。 そういったシステムを作る仕事をして生活できている人が居るってことを考えると、お金をもらえるほど難しいってことです。 ちょっとやそっとでは作れないってことです。 オンマウスは基本的にはPHPとは関係ない。 HTMLやJavaScriptで行います。
お礼
アドバイスいただき誠に有難う御座いました。
補足
ご回答誠に有難うござ緒ます。 専門書が1~2冊必要なほど難しいのですね、オンマウスの使い方、変数と言う物があるのは色々調べて解ったのですがHTML,PHPでは使い方がまるで違っているようで戸惑っております。 No1の方の補足にも書かせて頂いたのですが何とか画像のアップロードは出来たのですがINDEX.HTMLのどの画像を変更するかやオンマウスの表示文字をどこに保存するかなど解らない部分が多々あります。 変更画像選択の部分は特に難しそうです。管理画面のプルダウンメニューやクリックで画像選択をして変更できないかと考えております。 私のような初心者がいきなり作るには敷居が高すぎたかもしれませんが作ろうと思ったきっかけがこのような仕組みが出来ないかと思ったしだいですので作ってみたいと思います。 ご教授いただければ幸いです。
- bm_hiro
- ベストアンサー率51% (200/388)
> 上記のような機能はHTMLとPHPでは出来ないのでしょうか? できますよ。多分。 > またオンマウス時に表示される文字も変更できないかと思い これは、 <img src='hoge.jpg' alt='オンマウス時に表示される文字'> って事でしょうか? 何通りかの方法はありますが、 俺なら、とりあえず、画像をアップロードする時に、 「オンマウス時に表示される文字」をテキストボックスに入力して、一緒にデータを送ります。 それを、PHP側で 画像のファイル名と、その文字をテキストファイルに一覧として、残します。 それを元に、管理画面で、indexに表示する画像を選択し、 決定したら、indexの必要な箇所を書き換えます。 かなりアバウトな説明ですが、俺なら こんな感じにしますかね~。
補足
早々のアドバイス誠に有難う御座います。 HTMLとPHPで可能とのご回答で何通りかの方法があるとの事で色々考えてみました。indexを書き換えるのは自分には難しそうですので出来そうな範囲で考えてみました。 INDEX.HTMLのイメージタグの部分の画像ファイル名は固定にして管理画面で画像をアップロードする時にファイル名をつけてやれば出来そうに思えました。 INDEX.HTML <a href=""><img src="images/A.jpg" /> 以下省略 kanri.PHP <select name="bcode"> <option>選択してください</option> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> </select> <? $bcode = $_REQUEST["bcode"]; $copy_name = "./img/A.jpg"; $flag = $_POST["flag"]; 以下省略 WEBのサイトを参考にさせて頂きました。 何とか画像のアップロードと表示は出来るのですが画像選択の方法ががわかりません。PHPで変数を使って画像ファイル名を指定できないかと思っています。 $copy_name = "./img/A.jpg"; 上記を $copy_name = "./img/$bcode.jpg"; とするとprint "$bcode"では文字が入っているのですが動作はしませんでした。 変数の使い方が違うのでしょうか? WEBの参考になりそうなページをまねしただけですので良くは解っていませんがこのようなやり方でも問題ないでしょうか? オンマウスの方はいまだに解決しておりません(かなり難しいですね) 長文になってしまいましたが宜しくお願い致します。
お礼
お礼が遅くなり大変失礼いたしました。 アドバイス頂きました方法にて無事動作できました。今後はアドバイス頂きましたサンプルをもとに作製していきたいと思います。 この度は誠に有難う御座いました。大変参考になりました。