クッキー[2]

 [その1] 掲示板のクッキー 


■ sample_1 実行

[保存する内容]
   @名前 (name)
   Aemailのアドレス (email)
   Bパスワード (passwd)
   C訪問回数 (count)

設定値 意味 実例(記入方法)
Name Cookieの内容 UB_COOKIES = ・・・・・・・

 上記の内容に複数のパラメーターを格納
 FORMに書かれた内容をクッキーに!


$DATA_COOKIES = "name\:$FORM{'name'}\,email\:$FORM{'email'}\,passwd\:$FORM{'passwd'}\,count\:$FORM{'count'}";
 
  名前1:内容1,名前2:内容2,名前3:内容3,名前4:内容4
  「:」や「,」をデータの区切りに使う

 [その2] 実際のサブルーチン 

クッキーの書き込み
$DATA_COOKIES = "name\:$FORM{'name'}\,email\:$FORM{'email'}\,passwd\:$FORM{'passwd'}\,count\:$FORM{'count'}";
$expires = &expires(1/24*1/60);
$cookiePath = "/cgi-bin/perl/j";
$cookieDomain = "127.0.0.1";

print "Set-Cookie: UB_COOKIES = $DATA_COOKIES; expires= $expires; domain=$cookieDomain; path= $cookiePath\n";



クッキーの読み込み
# ------------------------------------------------------
# クッキーの読み出し
# ------------------------------------------------------

sub getcookie {

# クッキーの全体の分解

@pairs = split(/;\s*/, $ENV{'HTTP_COOKIE'});

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_CC{$name} = $value;
}

# VALUEの分解

@pairs = split(/,/,$FORM_CC{$name} {UB_COOKIES});

foreach $pair (@pairs) {
($name, $value) = split(/:/, $pair);
$FORM_C{$name} = $value;
}

}
########## end of sub getcookie

#クッキーの全体の分解
  「;」や「=」でデータを分解
#VALUEの分解
  「,」や「:」でデータを分解

 $FORM_CC{*}は直接には使わないから,$dummyと書く場合がある