(CGI(perl)が表示したページ内の)リンク部分が、もし30秒以内にクリックされたときにはリンク先のページが表示され、そうでないときには(それ以上経過してからクリックされたときには)エラーメッセージが表示されるようにしたいのですが、恐れ入りますがどなたか方法を教えていただけないでしょうか。なお、当方、CGI初心者ですので、スクリプトのサンプルなどのURLも(もしもご存知でしたら)あわせて教えていただけると非常に助かります。お手数ですが何卒よろしくお願いいたします。

A 回答 (1件)

この場合は下記の手順でプログラミングすればOKです。


1:最初に開かれたCGIで現在時間を読み込みます。
2:リンク先に飛ぶ際に時間情報をリンク先のCGIに渡します。
3:リンク先のCGIで渡された時間情報と現在の時間情報を比較しエラーか通常かを判断します。

以上の手順で可能なのですが(一応一番単純な方法)、CGI初心者という事なので厳しいかも知れません!!

参考になる物は有りませんが勉強しながら頑張って作ってみて下さい。
    • good
    • 0
この回答へのお礼

有難うございました。実際にプログラミングできるか不安もございますが、がんばってみたいと思います。

お礼日時:2002/01/22 00:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qクリック数を表示できるcgiを探しています。

自分で撮影したお気に入りの写真をサイトで紹介しています。
画像をクリックすると詳細画像に飛ぶようになっています。
紹介している画像がどれだけクリックされたかを調べたいですのですが、
これが可能なフリーのcgiがなかなか見つかりません。
cgi用語もよくわからず、「out数 cgi」などで検索しているのですが
的外れなものばかりで時間ばかりが経っています。
こういったcgiがあるかどうかも分からないのでどうか教えていただけませんか?
よろしくお願いします。

※私はカウンタや掲示板などのcgi設置経験ありで超初心者ではありません。

Aベストアンサー

こんなのはどうでしょう
http://www.cgi-down.com/cgi/downcon.php
名前はダウンロードって付いてますが
要するにクリックしたリンクのカウンタを上げるものですから。

QCGIから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属性を付けて送るしかないのでしょうか?

リンクのテキストリンクでの送信方法(その後にやらなければいけないこと等)、もしくはフォームでテキストリンクでの送信方法を教えていただきたいです。無理でしたら出来る限りテキストリンクになるような方法でも構いません。どうかよろしくお願いします。

Aベストアンサー

GETではアドレスで値を渡します。
ですから、ttp://~/log_viewer.cgi?name=16.cgiでも構いません。
フォームからGET属性を付けて送っても結局は上と同じことになります。

結局、エラーの内容はなんですか?
500エラー(内部サーバーエラー)でしょうか。404エラー(そのファイルがない)でしょうか。それとも他のでしょうか?

上のようにエラー内容・Viewer.cgi(log_viewer.cgiかも?)と1.cgiの中身・使っているサーバーの名前の4つを教えていただけますか?

くれぐれも著作権に当たらないように。

あと、最初は
Viewer.cgi?name=hogehoge&…(略 なのにリンクは
log_viewer.cgi?name=16.cgi ですがそこらへんのミスとかではないのでしょうか?

QCGIでリンクさせたページを同一のページ内の iframe に表示させるには

CGIでリンクさせたページを同一のページ内の iframe に表示させるにはどうしたらいいでしょうか?

ちなみにCGIは
--------------------
#!/usr/bin/perl
$querybuffer = $ENV{'QUERY_STRING'};
@pairs = split(/&/,$querybuffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
if( $name eq "jumpto" ) {
$jumpto = $value;# 移動先
}
}

if( $jumpto ne "-" ) {
print "Location: $jumpto\n\n";
}
else {
print "Content-type: text/html\n\n";
print qq|<HTML>\n<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=Shift_JIS">\n<TITLE>移動先が未指定です</TITLE></HEAD>\n|;
print qq|<BODY><H1>移動先が選択されていません。</H1><P>移動先を選択してからボタンをクリックして下さい。</P></BODY>\n|;
}
exit;
------------------
です。
iframe部分は以下のようにしています。

<iframe src="index.html" height=200 width=460>
この部分は iframe 対応のブラウザで見てください。
</iframe>

CGIでリンクさせたページを同一のページ内の iframe に表示させるにはどうしたらいいでしょうか?

ちなみにCGIは
--------------------
#!/usr/bin/perl
$querybuffer = $ENV{'QUERY_STRING'};
@pairs = split(/&/,$querybuffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
if( $name eq "jumpto" ) {
$jumpto = $value;# 移動先
}
}

if( $jumpto ne "-" ) {
print "Location: $jumpto\n\n";
}
else {
print "Content-type: text/html\n\n";
print qq|<HTML>\n<HEAD><...続きを読む

Aベストアンサー

勘違いがあったら御免なさい。
targetでフレーム名を設定していれば出来ると思います。
<a ref="http://www.xxxx.html/" target="framename">リンク</a>

参考URL:http://tohoho.wakusei.ne.jp/html/frameset.htm

Qperl/cgiでjpeg画像のクリック座標をcgiパラメータに渡すには

perl/cgiで表示したjpegの画像のクリックした点の座標位置を次にジャンプするページにcgiパラメータとして渡したいのですがどのようにすれば良いでしょうか?画像全体を<input type="button" src="画像ファイル" name="$test" value="返答">のようにすればよいのかもしれませんが、座標をパラメータ渡しする方法がわかりません。perl/cgiだけでは無理であれば、javascriptでcgiに渡すためのヒントでも構わないのですが。。。
ご存知の方がいたらご教示ください。

Aベストアンサー

「画像ボタン」という手も。
<form ~>
<input type=image name="AAA" height=100 width=100 src="xxx.gif">
</form>

参考URL:http://tohoho.wakusei.ne.jp/html/input.htm

QCGI1からCGI2への変数の受け渡しと表示

他のご質問読んでもわからなくて笑
CGIの知識は、書いてあるとおりに設定を変えたりhtmlとか書き出すところの内容変えたり…いらないところに#を付けて、うごくかなぁってドキドキしている程度です(笑)わかりにく。

今回は、まず、キリ番のCGI-Aがあります。そのCGI-Aはキリ番GETしたら登録formが出てきます。登録があったらメールが管理人宛てにくるんです、その時、変数で、フォームで書いてもらった内容+その人の取ったカウント数・時間・エージェント・HOSTが、一緒に記載されてきます。
CGIではこんな感じ↓

print MAIL "時間 : $adate\n";
print MAIL "ホスト: $ahost\n";
print MAIL "使用PC: $kuag\n";
print MAIL "名前 : $aname\n";
print MAIL "カウント : $acount\n";
print MAIL "メール: $email\n";

ってちゃんと送られてきます。
で、この変数なんですが、同ディレクトリにあるメールフォームのCGI-Bに渡して(CGI-Aで登録したら必ずCGI-Bにくると)、CGI-Bが送るメールにも乗せたいのです。CGI-Bのなかのメールの雛型?の部分に
ここです↓
#メール内容
$body.="取得時間 : $adate\n";
$body.="ホスト : $ahost\n";
$body.="使用PC : $auag\n";
$body.="メール : $email\n";
$body.="内容 : $nowdate\n";

内容ってのはCGI-Bのメールフォームに書いてもらったことを表示します。でその上の4つなんですが、それがCGI-Aの変数で、これをCGI-Bのメールに一緒に送らせたいわけです。

そこで、CGI-Aの変数をCGI-Bに持ってくるにはどうするか、素人なりに考えて

#キリ番からの情報取得
require "./CGI-A.cgi";
とか考えて書いてみて、やったんですが、見事に失敗しました。どうすれば変数だけをわたせますか?教えてください。
不適切な表現とかありましたら勘弁してください。
補足など、待ってます。

他のご質問読んでもわからなくて笑
CGIの知識は、書いてあるとおりに設定を変えたりhtmlとか書き出すところの内容変えたり…いらないところに#を付けて、うごくかなぁってドキドキしている程度です(笑)わかりにく。

今回は、まず、キリ番のCGI-Aがあります。そのCGI-Aはキリ番GETしたら登録formが出てきます。登録があったらメールが管理人宛てにくるんです、その時、変数で、フォームで書いてもらった内容+その人の取ったカウント数・時間・エージェント・HOSTが、一緒に記載されてきます。
CGIではこんな...続きを読む

Aベストアンサー

#2です
>ごめんなさい・・・わかるようでまったくわかりません(笑)
のようですので、ピンとくるところがなかったようですね。
それにプログラムの修正個所を完全に書いた訳ではないでの
コピペしても全く動かないです。

で、別の方法です。
質問者さんのしたいことは、
 従来のcgi-aの処理のあと(メールを送った後)
 cgi-bでやっているメール送信も行いたい。
ですよね。

cgi-bの中で、実際にメールを送っている処理部分はどこか解りますか?
その部分をcgi-aに継ぎ足すのはどうでしょう。
当然、送る内容は変数から作っていますから
これにcgi-aの変数をコピーするなり、新たに値を設定してください。
 すなわち
 $body.="取得時間 : $adate\n";
 $body.="ホスト : $ahost\n";
 $body.="使用PC : $auag\n";
 $body.="メール : $email\n";
 $body.="内容 : $nowdate\n";
 の、$adateや、$ahostなどの変数のこと。

cgi-aに継ぎ足す際に、メールを送る処理以外を含めると
正しく動作しない可能性が高いです。
ですから、「この1行は何をしている?」がある程度
理解できないとやっぱり難しいです。

#2です
>ごめんなさい・・・わかるようでまったくわかりません(笑)
のようですので、ピンとくるところがなかったようですね。
それにプログラムの修正個所を完全に書いた訳ではないでの
コピペしても全く動かないです。

で、別の方法です。
質問者さんのしたいことは、
 従来のcgi-aの処理のあと(メールを送った後)
 cgi-bでやっているメール送信も行いたい。
ですよね。

cgi-bの中で、実際にメールを送っている処理部分はどこか解りますか?
その部分をcgi-aに継ぎ足すのはどうでしょう。
...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報