perlを使用しています。

 友達といっしょにジフを作っています。しかし、どちらの絵がユーザーに気に入ってもらえるか評価したいのですがその方法としてクリックした時のポイント制にしたいと思っています。 
 画像をクリックをした時点でDBに1クリックしたことをperlで作成するためにどのようなことをやればいいのか教えていただけないでしょうか?
 サンプル等があれば教えてください。お願いします。

A 回答 (2件)

#!/usr/bin/perl



use CGI;
$q = new CGI;

if ($q->param) {
open(FH, "+<report.txt");
@report=split/,/,<FH>;
seek(FH,0,0);
truncate(FH,0);
$report[$q->param("num")]++;
print FH join(',',@report);
close FH;
}
print<<HTML;
Content-Type: text/html

<a href='$0?num=0'><img src='0.GIF'></a><BR>
<a href='$0?num=1'><img src='1.GIF'></a><BR>
HTML

exit;



好きな名前を付けてアップ
report.txtは結果が入る一種のカウンタ。

あとは、自力でやらんとな。
    • good
    • 0

HTML から、CGI へリンクを張ればよいのでは・・・・?



例えば、

あなたはどっちが好き?
<a href="poll.cgi?num=1"><img src="1.GIF"></a><br>
<a href="poll.cgi?num=2"><img src="2.GIF"></a>

の様にして、poll.cgi で環境変数を GET してデータベースに加えれば
OK でしょう。
この URL に ? 以降を加える方法は、こういった場合に便利ですから、
覚えておくと何かと便利ですよ。

?[フィールド名]=[値]&[フィールド名]=[値]&......
の様にできます。

そうした場合、

$buffer = $ENV{'QUERY_STRING'};
@pairs = split(/&/,$buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$form{$name} = $value;
}

これで、$form{'num'} でどちらの画像がクリックされたか取得できます。
(1 か 2 か)
    • good
    • 0

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


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