CGIでcookieを使って、訪問回数を数えたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
たけのこ

CGIでcookieを使って、訪問回数を数えたい

#1

投稿記事 by たけのこ » 9年前

CGIでcookieによる訪問回数のカウントを行いたいのですが、うまくできません。
次が私の書いたプログラムです。

コード:

#!/usr/bin/perl

use strict;
use warnings;
use CGI;
my $cgi = new CGI;
my $cookie = $cgi->cookie(-name    =>  'count',
                          -value   =>  0,
                          -expires =>  '+3M');
$cookie->value++; #この行があると実行できません(構文エラー?)
                          
                          
print("Content-Type: text/plain\n");
print("Content-Length: 13\n");
print("\n");
print $cookie->value;

exit(0);
一応いろいろなサイトを参考にしてプログラムを書いたのですが、仕組みをまだよく理解できておらず、意味もわからずに書いたものです。

Cookieがなければまず発行をするという作業をどのようにコードで書いた良いのかがわかりません。
またCookieのどの部分がカウントする値となるのかがわかりません。

ブラウザを閉じたときに訪問回数をリセットするようなものを作りたいです。

よろしくお願いします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: CGIでcookieを使って、訪問回数を数えたい

#2

投稿記事 by h2so5 » 9年前

$cookie->valueは関数ですので直接値を操作することはできません。
expiresを指定しないとブラウザを閉じたときにリセットされます。

コード:

#!/usr/bin/perl
# your code goes here

use strict;
use warnings;
use CGI;
my $cgi = new CGI;
my $cookie = $cgi->cookie(-name    =>  'count',
                          -value   =>  0);
$cookie->value($cookie->value + 1);
                          
                          
print("Content-Type: text/plain\n");
print("Content-Length: 13\n");
print("\n");
print $cookie->value;
 
exit(0);

トントン
記事: 100
登録日時: 13年前

Re: CGIでcookieを使って、訪問回数を数えたい

#3

投稿記事 by トントン » 9年前

PerlでCGIモジュール(CGI.pm)を使ってcookieを操作する覚え書き

example

コード:

use strict;
use warnings;
use CGI;
my $q = CGI->new;
my $cookie = $q->cookie("foo");
my $new_cookie = $q->cookie(
		-name => "foo",
		-value => ++$cookie,
	);
print $q->header(-type => 'text/html', -cookie => $new_cookie);
print $new_cookie->value() || $cookie;
参考になりますか?

閉鎖

“C言語何でも質問掲示板” へ戻る