OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

ポイント制にしたい

  • すぐに回答を!
  • 質問No.194329
  • 閲覧数29
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 8% (10/125)

perlを使用しています。

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

回答 (全2件)

  • 回答No.1
レベル10

ベストアンサー率 21% (28/132)

HTML から、CGI へリンクを張ればよいのでは・・・・? 例えば、 あなたはどっちが好き? <a href="poll.cgi?num=1"><img src="1.GIF"></a><br> <a href="poll.cgi?num=2"><img src= ...続きを読む
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 か)


  • 回答No.2
レベル11

ベストアンサー率 61% (157/255)

#!/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" ...続きを読む
#!/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は結果が入る一種のカウンタ。

あとは、自力でやらんとな。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ