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

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

1行分だけ表示(?)

日記用のCGIを作ってます。 ただ単純にフォームから入力したものをログファイルに書き込んで、それを表示するだけのものです。 で、上記の事はできているのですが、今度はちょっとレベルアップさせて  ■まず$dayと$titleを一覧表示(これはできてる)  ■$titleをクリックすると$messegeも読める という事をしたくて色々考えてみたのですが、何がなんやらさっぱり分からなくなってきました。 ログファイルには、ただそのまま  $id:$day:$title:$messege \n と保存してあります。 $idは削除用に私が勝手にフォームからナンバーをふってるんですが、この$idを利用して$titleにリンクを貼る事は可能ですか? 自分でも何を質問したらいいのかよくわかってないのですが、もし上記のような事が可能であれば、この後どういった流れで処理を加えていけばいいのかなど教えて下さい。 補足すべき事があれば補足します。 よろしくお願いします。

  • Perl
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • 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

  • CGIログファイルから1行分ずつ表示。

    ログファイルが以下のように、 NAME=***&TITLE=***&HIDUKE=***= NAME=***&TITLE=***&HIDUKE=***= NAME=***&TITLE=***&HIDUKE=***= となっています。 このログファイルの中身を表示させようとしたのですが、1番上のデータ(1番古いデータ)しか表示されません。 これを数行分(できれば最新5件、など)表示させたいのですが、どのようにすればいいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • SSIで表示させるときの各ファイルのパス

    SSIで日記をトップページに表示させようとしています。 CGIは./cgi-bin/day/に保存してます。 トップでSSI表示(<!--#exec cmd="cgi-bin/day/day.cgi" -->)させるためには各ファイルもそこからのパスが必要ですよね。 (require './cgi-bin/day/jcode.pl';) しかし、こうすると記事を入力するときにエラーが出てしまいます。 (./cgi-bin/day/day.cgiから見るとjcode.plは./cgi-bin/day/cgi-bin/day/の場所になってしまう。その他datファイルも同じ) これを解消する何か良い方法は無いでしょうか? 例えば、「cgi-bin/day/」の位置に指定ファイルが無ければ「./」の位置を探すとか、SSI表示部分は切り離して別ファイルにするとか… 良い方法があったら教えてください。

    • ベストアンサー
    • CGI
  • リロードすると、何度も書き込まれる

    htmlのフォームに書き込まれた内容をログファイルに保存してCGIで表示する(しょぼしょぼな掲示板or日記みたいなやつ) というのを勉強しています。 上記の事はうまくいきました。 でもCGIへ表示したあと、リロードボタンを押すと、最後(最新)に書き込んだ内容が追加書き込みされてしまいます。 うまく説明できないのですが、掲示板で言うなら「お前何回も同じ事書き込むなよー」っていう感じになります。 これを回避するプログラムを追加するために、私が次に勉強するべき事は何でしょうか? 自分でも、何をどう質問していいのかわからなかったのですが、にっちもさっちもいかないのできてみました。 Cookieについて勉強するがよい とかでいいので、何か教えて下さい(^^; もう少し情報が必要でしたら、補足要請下さい。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • フォルダ内の一番新しいファイルだけ表示。

    上記CGIを探しています。 やりたいことは単に日記帳のようなことなのですが、日記帳CGIでは、その表示方法が異なるため使用できませんでした。 したいことは、以下のことです。 iframeに毎月更新するデータを表示したいと思っています。 そこで、あるCGIを使って連番のhtmlファイルを吐き出させます。ファイルが出来た順に1.html,2.html~~という風に。(これは、ある日記帳CGIで出来ました) それが1つのフォルダに保存されます。そのなかで、最新の(一番数が大きい)物のみを表示させるというCGIを探しています。(上記日記帳CGIはフレーム表示のためiframe内で使用出来ない・最新の物を最初からプレビュー表示が出来ない状態でした) 素人的に考えると、探すフォルダを指定して、***.htmlの中で一番大きい数字の物を探し表示させるだけという簡単な作業のように思えるのですが、いざ自分でそれを作れといわれても、どうすることも出来ません。 どなたかこのようなCGIをご存知ではないでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • div内にcgiを表示する方法

    たびたびお世話になっております。 日記のCGIをdiv内に表示させたいのですが上手く行きません。 手打ちで日記を書く方法も考えたのですがログや画像のアップが面倒な事を考えるとやはりCGIが便利かな、と思っています。 フレームは出来るだけ使いたくないのでこの方向性でなんとかしたいのですがお力を貸して頂けないでしょうか?

    • ベストアンサー
    • CSS
  • 日記の指定日のみ表示

    200908.txt 01,2009/08/01,2009,08,日記タイトル,日記本文,302 02,2009/08/02,2009,08,日記タイトル,日記本文,303 03,2009/08/03,2009,08,日記タイトル,日記本文,304 上記のようなログがあり 「日,日付,年,月,タイトル,本文,通しナンバー」の順に並んでいます。 たとえば、8/1なら「8/1のみ表示」するには、どのように条件付けすれば宜しいのでしょうか? 色々やってみましたが、出来ませんでした。どなたか教えて下さい。

  • CGIからCGIへの(GET属性)リンクについて

    CGI(Perl)ゲームを作っていて個人名での戦闘ログを一覧表示するプログラムを作っていて下記の表示になるように作りました。 「Viewer.cgi?name=hogehoge&…(略」 ファイル名 攻、守 1.cgi   守備側 7.cgi   攻撃側 16.cgi   攻撃側     :     : (1~16.cgiはログファイルで読み込み専用です) これからさらに1.cgi、7.cgi・・・とリンクで単体ファイル毎のログを表示させたいと思い、<a href=http://~/log_viewer.cgi?name=16.cgi>と書いてリンクしてみたのですが、うまくいきませんでした。GET属性のように送るにはフォームからGET属性を付けて送るしかないのでしょうか? リンクのテキストリンクでの送信方法(その後にやらなければいけないこと等)、もしくはフォームでテキストリンクでの送信方法を教えていただきたいです。無理でしたら出来る限りテキストリンクになるような方法でも構いません。どうかよろしくお願いします。

    • ベストアンサー
    • CGI
  • ダウンロードをした人の一覧を表示するCGI

    色々ホームページを見てまわったのですが、 欲しいフリーのCGIが見つからなかったので、 もし「このHPにあるよ」など、情報を頂けたら幸いです。 私が欲しいCGIは、 あらかじめ登録されたメンバーが居て、 そのメンバーが、管理者の指定した圧縮ファイルなど、ファイルのダウンロードをしたかしてないか、一覧で表示できる様なCGIを探しています。 ダウンロード済みの方の行にはダウンロード済みと表示されて、日時も表示されるようなシステムです。 もしくは、「ダウンロード完了登録フォーム」を用意して、そこからコンボなどで自分の名前を選び、登録すると、一覧に「ダウンロード済み」「日時」が表示されるような仕組みでもかまいません。どちらかというとこちらの方が欲しいシステムです。 CGIの知識がほとんどないので、設置するくらいしかできません。 一から作ることが出来ないので、フリーで探しています。 凄くわがままな要望なんですが、過去にこういった事をした事がある方、いらっしゃいましたら情報を下さい。宜しくお願いします。

    • ベストアンサー
    • CGI
  • 最終更新日自動取得のようなCGIは難しいでしょうか

    お世話になります。 掲示板のログを、CGIにアクセスしただけで表示させたいと思っています。 掲示板CGIの中に下記の記述を加えているため、掲示板の中で表示させたい箇所に$allnumberと記述する事で、投稿記事の総数を表示できるようになっています。 -------------------- #総投記事数を表示 open(FH, "$room/log.cgi") or die; my $line = <FH>; my( $allnumber ) = $line =~ /^(?d*)/; close(FH); -------------------- マルチ掲示板CGIを使用しているので、$roomには各掲示板のIDが入力されます。 各掲示板の投稿数を表示する、単独のCGIスクリプトは難しいでしょうか。 最終更新日を自動的に取得して、表示するCGIのイメージです。 これらのCGI(仮に「lastup.cgi」とします)は、http://hogehoge.jp/lastup.cgi?./bbs/log.cgiと最終更新日を取得したいファイルを指定して、htmlファイルの表示させたい箇所に記述すると、指定したファイルの最終更新日が表示できるようになっているCGIがあります。 (※「./bbs/log.cgi」は、lastup.cgiから見た対象ファイルまでのパスです) (※「log.cgi」は、掲示板のログが保存されているファイルとします) このように、「http://hogehoge.com/~.cgi?./(掲示板ID)/log.cgi」と記述するだけで、htmlの好きな箇所に指定した掲示板の記事数を表示させるようなCGIはできないでしょうか。 私はこれまでにCGIをいくつか設置した経験や、改造した経験はありますが、いつもネットで検索して分かる範囲で簡単な改造しかできません。 お手数ではありますが、できる限り詳しく教えて頂けると嬉しく思います。 お力添えを頂けると助かります。 何卒、よろしく御願い致します。

  • カレンダー部分に画像が表示される日記CGI探しています。

    日記のCGIを探しています。 カレンダー型になっており、そのカレンダーに画像(写真)が表示されるものです。 写メ日記の写メをカレンダーで一覧表示したいのです。 説明がヘタですが、そういうCGIを知っている方よろしくお願いしますm(__)m

    • ベストアンサー
    • CGI

専門家に質問してみよう