現在Perlをつかって掲示板(bbs.cgiとします)を作っています.
別ページ(top.cgi)からボタンを押すと掲示板に飛ぶようになっているのですが,
top.cgiでボタンを押したときにbbs.cgiへ任意の値を渡すようにしています.
top.cgiの中で
<form method="POST" action="bbs.cgi">
<input type="hidden" name="to" value="1">
<input type="submit" value="1">
</form>
とし
bbs.cgiの中で
use CGI;
my $form=new CGI;
my $to = $form->param('to');
としているのですが,
このように書いたとき,値は渡すことができますが,
掲示板に書き込みをすると反映されません.
ほかに値を渡す方法はありますか?
ちなみにGETは今回使いません.
それとも掲示板のプログラム自体がおかしいのでしょうか?
かなり考えたのですがわからなかったので質問させていただきます.
よろしくお願い致します.
No.1ベストアンサー
- 回答日時:
仕様の確認をさせてください。
top.cgiを表示させると、bbs.cgiへページ遷移するボタンがある。
ボタンを押すと、POSTでto=1が送られる。
それはbbs.cgiで受け取ることができる。
で、問題は掲示板に書き込みをすると反映されないとのことですが、
・反映されないのは、上記top.cgiから遷移したときのtoの値
・書き込みはbbs.cgiで行っている
ということでしょうか?
「掲示板に書き込みをすると反映されない」の反映されない値と書き込みをどこでどう行っているのかという部分が質問からはわかりません。
とりあえず以下のようによみとりました。
1.top.cgiからbbs.cgiへ画面遷移する
2.上記画面遷移の際に任意の変数を送信する
3.bbs.cgiに画面遷移すると普通の掲示板
4.bbs.cgiで掲示板に書き込みをしたときに2の値も書き込みたい
もしこういうことであるなら、2で受け取った値をどう保管していますか?
bbs.cgiを表示したときに初めて受け取るとして、bbs.cgiの中で画面遷移がある場合、その画面遷移で毎回値を送信するようにするなり、クッキーにセットして毎回送ってもらうなりしないと。
top.cgi →1→ bbs.cgi →2→ bbs.cgi →3→ bbs.cgi
こんな感じで画面遷移していくとして、
1ではbbs.cgiのデフォルト画面の表示、
2では特定のレスの表示、
3では2のレスへの返信を送信
とした場合、明示的に2および3でも1で送った値を送るようにしなければ、1で送った値は1が終わったところでなくなりますよ
さっそくのお返事ありがとうございます.
少し言い方が伝わりにくかったですね.すみません.
値をbbs.cgiに渡すことはできています.
私がここで言いたかった「掲示板が反映しない」というのは,
掲示板自体に書き込みができないということです.
値を渡さなければ掲示板はきちんと動くことは確認できていますが,
値を渡すとコメントを書いて投稿しても新しいコメントとして残らないんです.
なので掲示板と値を渡す(受け取る)cgiって一緒に使えないのかな,と思って質問させていただきました.
こんなんで伝わるでしょうか…?
No.2
- 回答日時:
んーやっぱりまだよくわかりません(苦笑
掲示板へ反映されないとのことですが、
掲示板への投稿フォームからPOSTで送信して、
それを掲示板のスクリプトで受け取り、
ログファイルに書き込むわけですよね。
ログファイルにきちんと書き出していれば反映されるとおもいますが。
やりたいことを順を追って箇条書きとかで書いてみてもらえるとわかりやすいかもしれません。
たとえば、
1.topからbbsを表示させる(このとき特定の値をbbsに送信する)
2.1で送られた値を受け取り、それを元に掲示板を表示させる
3.2で表示された掲示板のフォームに書き込んで、POSTで投稿する(受け取るのはbbs.cgi)
4.3で送信された値をbbs.cgiが受け取り、ログファイルに書き出す。
5.ログファイルからデータを読み込み表示する
のような感じですね。
こうやって、何がどの動作でどうできていないのかを考えてみるとよいかとおもいます。
bbs.cgiでは、
・送信されたデータを受け取り、それをログに書き出す機能(関数)
・ログファイルからデータを読み取り、それを表示させる機能(関数)
が仮にあるとして、
前者ができていないのか、後者ができていないのか。
補足にも、
bbs.cgiで値をうけとり、変数に格納はできる。
しかし、それを反映させて表示ができない。
としか書かれていません。
実際の処理としては、変数に格納した後に、その値をログファイルなどに保存する工程があるはずです。
(でないと、受け取ったときに呼び出されたCGIが終了すると変数に格納した値が消えてしまいますからね)
ログファイルにはちゃんと保存できているのでしょうか?
すみません、わかりにくかったですね。
送信された値はbbs.cgiのHTMLで表示させるだけなので
ログには書き込みません。
私が言いたかったのは値を渡すプログラムを書くことによって
掲示板が機能を果たさなくなるということです。
でも本を読みあさってなんとか解決することができました。
アドバイスありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- CGI 一番簡単なCGI,掲示板の設置教えてください 4 2023/08/22 10:47
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Quantifier follows nothing in...
-
よくある 『 第○(1・2・3・4・...
-
月の第一週とは
-
エクセルで毎月第2週日の水曜日...
-
エクセルで相対パスの書き方を...
-
6月の第2 第4火曜日は何日...
-
DBを10件毎に表示ページング...
-
燃えるゴミの日は何曜日ですか?
-
CGIで出力するhtmlの<!DOCTYPE ...
-
Excel VBA 第〇△曜日の場合休日...
-
[Excel] ある日の曜日が当月の"...
-
ヘッダのinclude順
-
apacheでPerl CGIが作動せず、5...
-
[C#]ListView一覧表示時の幅設...
-
指定曜日にMsgBox表示は可能で...
-
AccessVBAで「このフィールドに...
-
クライアントのIPとマシン名を...
-
入力した日は何曜日か
-
ユーザー定義の(aaa)
-
関数ヘッダ?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cgiとplとpm
-
perlのrequireの動き方について...
-
jcode.plが読み込めない
-
Quantifier follows nothing in...
-
require文が実行できない
-
ファイル書込時にPermission de...
-
useとrequireでエラー
-
htmlからテキストを返すperlを...
-
Perlのデバッグ方法って。。。...
-
PDFJが動作しない
-
画像のURLの変数を別のCG...
-
perlのcgiで、変数の中身を表示...
-
perlをインストールしたのに使...
-
CGIの中にinclude
-
gifcat.pl:助言お願い致します
-
phone.plというモジュールを使...
-
Perlの作動不具合、missing bra...
-
プログラムを書き足すことについて
-
Not Found 404エラー時のCGI出力
-
バイナリファイルのアップロード
おすすめ情報