• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:1行分だけ表示(?))

日記用のCGIを作成しています

このQ&Aのポイント
  • 日記用のCGIを作成しており、フォームから入力した内容をログファイルに書き込んで表示する機能を実装しています。
  • さらに、$dayと$titleを一覧表示し、$titleをクリックすると$messegeも表示できるようにしたいと考えています。
  • $idを利用して$titleにリンクを貼ることは可能でしょうか?どのような処理を加えれば良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • the845t
  • ベストアンサー率33% (246/743)
回答No.2

デコード処理をやってますよね。 リンクで利用する場合はGETで取得した内容を利用します。

Terari
質問者

お礼

再びのアドバイスありがとうございます GETで取得した内容を利用する、っていうのはフォームからGETで送信するって事ですか?それともPOSTにしろGETにしろデコードしてしまってるので、URLエンコードってのをして使うって事ですか? 1日かけて実験してみたんですが、ちょっとよく分かりませんでした(泣)

Terari
質問者

補足

できました! 徹夜です‥‥うぅ でもできました! ありがとうございました。

その他の回答 (1)

  • the845t
  • ベストアンサー率33% (246/743)
回答No.1

最近Perlから遠ざかっているので、手順はともかく、 コマンドの方は間違ってるかもしれません。 - 例えば、hoge.cgi?id=12のような形で呼び出した場合、 grepで、「12:」で始まる行だけを抜き取ったり、 foreachで展開している中、「12:」で始まっている場合のみ表示するとか。 @id_message = grep(/^$F['id']:/,@log); とか、 foreach(@log){ if(/^$F['id']:/){ print <<"END"; メッセージ~~~ END break; } } コマンドはともかく作業としてはこういう形になると思います。

Terari
質問者

お礼

アドバイスありがとうございます。 そうです。そうです。やりたいのはそれなんです。 で、教えていただいた所までは私も何となくわかるんです(教えてもらって、わかってる事に気付いたんですが)。 1行だけプリントさせるのもできるんですが、それをどうやって$titleにリンクを貼るのかが分からないんです。 たぶんnikki.cgi?id=12とかいうのがよく分かってないんだと思うのですが‥‥ 例えばフォームから送信したりする時はボタンにname="mode" value="add"とかして、そのボタンを押せば、 if($form{'mode'} eq "add"){ &add; exit; } とかいう感じで、前もって書いておいたサブルーチン(add用のプリントページ)を表示させたりできますが、テキストにリンクを貼って<a href=nikki.cgi?id=$id>とした時?id=$idってのはどこで受けてどうやって判断してどう表示されるんでしょう??? 言ってる事が自分でもますます分からなくなってきたんですが‥‥‥ もし質問の内容がちょっとでも「こうかな?」とか理解していただけたら、またアドバイスお願いしたいです。 くぅ、表現がいたらなくてすみません。

Terari
質問者

補足

下の「1行だけプリントさせるのもできる」というのは、それだけをする別のプログラム上で、という事です。 (実験的にやってみたんです。はい。)

関連するQ&A