#!/usr/local/bin/perl5 # setcookie.cgi # 1997/11/10 Ver.0.00 # 1997/11/14 Ver.0.01 # 1997/11/16 Ver.0.02 # # (C) 1997 がま # e-mail addr : gama@mvg.biglobe.ne.jp # --------------------------------------------------------------------- # NAME # 変数名 ここでは、NickName を設定しています。 $varname ="NickName"; # --------------------------------------------------------------------- # expire # 有効期限を GMT で設定します。 # ここでは 1000 日後に設定しています。(60秒*60分*24時間*1000日) $expire=gmtime(time+60*60*24*1000); # --------------------------------------------------------------------- # path # MSIE 3.02 ではチルダが ~ と %7E でうまく処理できようです。 # しかたがないので、最初の / だけ入れておきます。 $path="/"; $|=1; # --------------------------------------------------------------------- $ct = $ENV{"CONTENT_TYPE"}; $cl = $ENV{"CONTENT_LENGTH"}; read(STDIN, $in, $cl); ($name,$email,$hp) = split("&",$in); # ---------------------------------------------------------------------- $name = &str_cnvcode($name); $email = &str_cnvcode($email); $hp = &str_cnvcode($hp); # Set-Cookie --------------------------------------------- $cookie ="Set-Cookie: " ."$varname=$name&$email&$hp; " ."expires=$expire; " ."path=$path; " ."\n"; print $cookie; # HTML --------------------------------------------------- $cookie=~ s/&/&/g; # & $cookie=~ s/</</g; # < $cookie=~ s/>/>/g; # > $cookie=~ s/\r//g; #LF を削除 print "Content-type: text/html\n\n"; print "<HTML>"; print "<HEAD><TITLE>COOKIE の書き込みが完了しました</TITLE></HEAD>"; print "<BODY BGCOLOR=\"#FFFFFF\">\n"; print "<H2>COOKIE の書き込みが完了しました</H2>"; print "<HR>\n"; print "COOKIE に設定した内容は以下のとおりです<BR>"; print "<B>$cookie</B><BR>"; print "<HR>\n"; print "それでは、戻って 更新(RELOAD)してください。<BR>"; print "<HR>\n"; print "<CENTER>\n"; print "<A HREF=\"ssi.cgi?cookie.htm\">戻る</A>"; print "</CENTER>\n"; print "<HR>\n"; print "</BODY>\n"; print "</HTML>\n"; exit; # -------------------------------------------------------- sub str_cnvcode { local($str)=$_[0]; # サブルーチンの引数を $str=~ /=/; # = をさがして・・・ $str= $'; # その後ろ $str=~ s/\+/ /g; # + を space へ $str=~ s/%(..)/pack("c",hex($1))/ge; # decode $str=~ s/ /%20/g; # encode $str=~ s/,/%2C/g; # encode $str=~ s/;/%3B/g; # encode $str=~ s/&/%26/g; # encode return($str); }