[ 新規 ] [ 検索 | 一覧 | FrontPage ] [ 履歴 (RSS) | 差分履歴 (RSS) ] [ ログイン ]
【PR】Amazon | SL-C3000 | SL-C1000(3/18発売!) | SL-C860 | SL-6000W | SL-6000L | SL-6000N

WalWiki/カスタマイズ/クッキーを使用する

差分表示


編集前の状態に戻します。
一行コメント欄の名前、および管理者パスワードをクッキーで保存します。
*[use cookie]
-2003-07-14 (Mon) 17:19:17 ちょっと実装を変更

**グローバル変数定義

クッキーに保存するフォームの変数名

 my @cookie_list = ('mypassword','myname');                  # yakty add [use cookie]

クッキーの保持期限

 my $cookie_expires = '+1M';                                 # yakty add [use cookie]

**init_form()内の変更

 sub init_form {
     if (param()) {
         foreach my $var (param()) {
             $form{$var} = param($var);
         }
     } else {
         $ENV{QUERY_STRING} = $FrontPage;
     }
 
     &init_cookie;            # yakty add[use cookie]

**embedded_to_html()内の変更

-2003-08-14 (Thu) 16:32:44 $form{myname}をエスケープするように修正

 sub embedded_to_html {
     my ($embedded) = @_;
     my $escapedmypage = &escape($form{mypage});
     my $escapedmyname = &escape($form{myname});                   # yakty add [use cookie]
     if ($embedded eq $embed_comment or $embedded eq $embed_rcomment) {
         my $lastmodified = &get_info($form{mypage}, $info_LastModified);
         $comment_no++; # yakty add [multi comment]
         return <<"EOD";
 @{[sprintf(qq(<a name="#c%d"> </a>), $comment_no)]}<!-- yakty add [jump to part] -->
 <form action="$url_xcg" method="post"><!-- yakty mod [for XREA] -->
     <input type="hidden" name="mycmd" value="comment">
     <input type="hidden" name="mypage" value="$escapedmypage">
     <input type="hidden" name="myLastModified" value="$lastmodified">
     <input type="hidden" name="mytouch" value="on">
     <input type="hidden" name="mycmtno" value="$comment_no"><!-- yakty add [multi comment] -->
     $resource{yourname}
     <input type="text" name="myname" value="$escapedmyname" size="10"><!-- yakty mod [use cookie] -->
     <input type="text" name="mymsg" value="" size="80">
     <input type="submit" value="$resource{commentbutton}">
 </form>
**init_cookie()追加

-2003-07-16 (Wed) 11:42:28 クッキーを削除できる様に処理を変更。
-2003-08-20 (Wed) 18:53:25 set_cookie()の実装変更に伴う変更。

 # yakty add [use cookie] start
 sub init_cookie {
     my $path = $ENV{'SCRIPT_NAME'};
     $path =~ s|[^/]+$||;
     foreach (@cookie_list){
         if(defined($form{$_})){
             &set_cookie($_, $form{$_}, path => $path);
         } else {
             $form{$_} = cookie(-name => $_);
         }
     }
 }
 # yakty add [use cookie] end
**set_cookie()追加

-2003-08-20 (Wed) 18:54:01 実装を変更。

 # yakty add [use cookie] start
 sub set_cookie {
     #my ($name, $value, $path) = @_;
     my ($name, $value, %option) = @_;
     my $path = $option{'path'};
     if(length($path) == 0){
         $path = $ENV{'SCRIPT_NAME'};
         $path =~ s|[^/]+$||;
     }
     my $expires = ($option{'expires'}) ? $option{'expires'} : $cookie_expires;
     my $ck = cookie(
         -name       =>  $name,
         -value      =>  $value,
         -expires    =>  $cookie_expires,
         -expires    =>  $expires,
         -path       =>  $path);
     print qq(Set-Cookie: $ck\n);
 }
 # yakty add [use cookie] end


03212