
下記フォームに必要事項を入力後、確認ボタンを押してください。
掲示板などで二度目に訪問した際に前回入力したデータ(名前/住所)があらかじめフォームに入っている場合があります。これはCookie(Cookie)という仕組みを使って、ユーザーのパソコンに書き込み情報を保存しておき、次に訪問した時にその情報を読みこみでフォームに表示させています。Cookieの書式は次のとおりです。
Cookie名=値lexpores=値;domain=値;path=値;secure@ Cookie名=値 Cookieに覚えさせるデータ部分です。Cookie名は自由につけてかまいません。覚えさせたCookieを呼び出す際には、このCookie名を使います。=の後に覚えさせたい値を書きます。Cookie名と値の区切り文字は=ですので、値の中に=を使うことはありません。 A expire=値 Cookieの有効期限を指定します。指定した有効期限がくるとそのCookieは無効とみなされ保存されなくなります。融合期限の書式は曜日、日-月-年 時:分:秒時間帯で、次のようになります。曜日の部分はMON、Wedのように省略形で書いてもかまいません。
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
# !/use/bin/perl
use lib::util;
use 'jcode.pl';
use CGI;
##メインプログラム
# !/use/bin/perl
use lib::util;
use 'jcode.pl';
use CGI;
##メインプログラム
if($ENV{'HTTP_COOKIE'}){
*data=getCookie($ENV{'HTTP_COOKIE'});
$count=$data{'Count'};
$count++;
}
else{
$count=0;
}
##ヘッダーに追加する書式
#set-cookie:count=$count/; expires=$ENV{'DATE}+1minutes/;
#path/; domani/; secure/
print <<EO;
Content-type:text/html
Set-Cookie:Count=$count;
<HTML>
<HEAD>
<title>テストCookieプログラム</title>
</head>
<body>
Count:$count<BR>
<Form ACTION>="/cgi-bin/cookie.cgi" method="post">
<input type="submit" value="next">
</form>
</body>
</html>
EO
exit(0);
sub getCookie
{
local($cookie)=$ENV{'HTTP_COOKIE'};
@cookie=split(//,$cookie);
foreach(@cookie){
local($name,$val)=split(/=/);
$data{$name}=$val;
}
return *data;
}
#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#
CGIでHTMLを表示する場合、Content-type:text/htmlヘッダの後に次の文を追加します。 ● Set-Cookie:Cookie文字列 Cookieを作成する流れは次のとおりです。 @ 変数名の値の文字列をセット まず書く変数名=値という文字列を作ります。この例では名前、メールアドレス、色番号の3種類です。
$c_name="name=$name"; $c_mail="mail=$mail"; $c_color="color=$color";A Enc_Sep_Code文字列を接続 次のこの3つをEnc_Sep_Codeという文字で接続します。ここのポイントはつなぐ記号は=ではなく、Enc_Sep_Codeという文字列であるという点です。
$C_line=join('Enc_Sep_Code',$c_name,$c_main,$c_color);
B =,と;記号をEnc_Ea_CodeとEnc_Colon_Codeに変換
=,と;記号をEnc_Ea_CodeとEnc_Colon_Codeに変換します。=はCookie名=値の区切り文字ですので、値の中では使用しません。また、;は次のexpireとの区切り文字ですのでこちらも別の文字列に変換しておきます。
$c_line=~ s/=/Enc_Eq_Code/g; #=をEnc_Eq_Codeに変換する。 $c_line=~ s/=/Enc_Colon_Code/g; #;をEnc_Colon_Codeに変換C Cookie名=値;expires=有効期限という文字列を作成します。
$c_line="cookietest=\c_line\;expires=sat,1-1-2018 00:00:00 GMT";
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
#!/usr/bin/perl
use CGI qw(:standard);
require 'jcode.pl';
$CgiURL='cookie.cgi';
#フォームから入力された値を得ます。
$name=param('name'); #名前
&jcode::convert(*name,'euc');#EUCコードに変換
$mail=param('mail');#メールアドレス
$color=param('color');#好きな色の番号
$color--;
if($color>=0){
#もし色番号が選択されていれば
@color=('赤','黄','青','緑','オレンジ');
$colorname=$COLOR[$color]; #色番号を色名に変換する
}
####Cookie文字列の作成
#変数名=値という文字列を作る
$c_name="name=$name";
$c_mail="mail=$mail";
$c_color="color=$color";
#各文字列をEnc_Sep_Codeという文字列でつなぐ
$c_line=join('Enc_Sep_Code',$c_name,$c_mail,$c_color);
#$c_lineに含まれる=,と;記号を別の文字列に変換する。
$c_line=~ s/=/Enc_Eq_Code/g; #=をEnc_Eq_Codeに変換
$c_line=~ s/;/Enc_Colon_Code/g; #;をEnc_Colon_Codeに変換
$c_line="cookietest=\c_line\;expires=sat,1-1-2018 00:00:00 GMT";
################################################
#HTML表示
print <<"IO";
Content-Type:text/html
Set-Cookie:$c_line
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="Set-Cookie" content="cookietest=visit_page:top;expires=sat,1-1-2016 00:00:00 GMT">
<link rel="stylesheet" href="../quest/stylesheet.css" >
<title>Cookieテストプログラム</title>
</head>
<body text="#000080" bgcolor="#FFFFFF">
<h1>Cookieテストプログラム version1.0.0</h1>
<form action="$CgiURL" method="post">
<table>
<tr>
<td>Name</td>
<td><input type="text" size="20" name="name"></td>
</tr>
<tr>
<td>Mail-Address</td>
<td><input type="text" size="20" name="mail">
</td>
</tr>
<td>Favoite Color</td>
<td>
<input type="radio" name="color" value="1">赤
<input type="radio" name="color" value="2">黄
<input type="radio" name="color" value="3">青
<input type="radio" name="color" value="4">緑
<input type="radio" name="color" value="5">オレンジ
</td>
</tr>
<td colospan="2" align="center">
<input type="submit" value="Cookieをセットします">
</td>
</tr>
</table>
</form>
次のCOOKIEがSETされました。<br><br>
IO
#入力されたデータを表示
print"名前:$name<br>\n" if($name);
print"メールアドレス:$mail<br>\n" if($mail);
print"好きな色は:$colorname<br>\n" if($colorname);
print<<"IO";
</body>
</html>
IO
exit;
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
CGI以外のページを閲覧した場合でも、Cookieを記憶させたい場合にはmetaタグを使います。metaタグの書式はヘッダー名にSet-Cookieを、値にCookie文字列を書きます。 ● metaタグでCookieを記入 <meta http-equiv="ヘッダ名" content="値">
HTMLにmetaタグを使ってCookieを記憶させる場合は常に同じ値しか与えることができません。JavaScriptを使うことで訪問時間など、動的にデータを記憶させることができるようになります。書式は、値の部分にCookie文字列を書きます。 ● document.cookie="値" visit_time:訪問時間というCookieを記憶させるプログラムです。
<script Language="JavaScript">
<!--
dd=new Data();
VisitTime=dd.getTime();
document.cookie="cookietest=visit_time;"+VisitTime+"\; expires=Sat,1-Mar-2017 00:00:00 GMT";
document.write("Cookie名:cookietest<br>値:visit_time:"+VisitTime+"<br><br>\n";
//--!>
</script>
ユーザーがCGIにアクセスすると、そのパス(URL)で有効なCookieがサーバーに送信されます。送信されたCookieは環境変数$ENV{'HTTP_COOKIE'}から取り出すことができます。 ● $ENV{'HTTP_COOKIE'}の値を読み込み
@pairs=split(/\;/,$ENV{'HTTP_COOKIE'});
foreach $pairs(@pairs){
($cname,$cvalue)=split(/\=/,$pair);
$cname=~ s/Enc_Eq_Code/\=/g;
$cvalue=~ s/Enc_Eq_Code/\=/g;
$cname=~ s/ //g;
$COOKIES{$cname}=$cvalue;
}
@ ハッシュに取り込み
ひとつのサイトにいくつものCookieがセットされている場合があるため、まずすべての有効なCookieを次のようなハッシュにいれます。
● $COOKIES{Cookie名}=値
A 配列に分割
各Cookieは、;区切りで$ENV{'HTTP_COOKIE'}に入ってますので次のようにまず;で分割し、@pairs配列にいれます。
● @pairs=split(/\;/,$ENV{'HTTP_COOKIE'});
B 名前と値を分割
CookieはCookie名=値という形式であるためCookie名と値に分割します。
● ($cname,$cvalue)=split(/\=/,$pair);
C 変換した文字列を元に戻す
Cookieに保存したときに=をEnc_Eq_Codeに変換したのでそれを元に戻します。
● $cname=~ s/Enc_Eq_Code/\=/g;
● $cvalue=~ s/Enc_Eq_Code/\=/g;
D 値を代入
$COOKIES{Cookie名}に値を代入します。
● $COOKIES{$cname}=$cvalue;
E COOKIEハッシュから値を取出す
次に%COOKIESハッシュから必要な値を取り出します。この例ではCookie名は'cookietest'であるため、必要な値は$COOKIES{'cookietest'}に入っています。Cookieの値は次のようになっています。
nameEnc_Eq_Code名前Enc_Sep_CodemailEnc_Eq_CodeメールアドレスEnc_Sep_CodecolorEnc_Eq_Code色番号名前に;が使われていればEnc_Colon_Codeに変換されています。これを元に戻します。
foreach (split(/Enq_Sep_Code/,$COOKIES{'cookietest'})){
($cname,$cvalue)=split(/\=/);
$cname=~ s/Enc_Colon_Code/\;/g;
$cvalue=~ s/Enc_Colon_Code/\;/g;
&jcode::convert(*cvalue,'euc');
$COOKIE{$cname}=$cvalue;
}
foreach(split(/Enc_Sep_Code/,$COOKIES{'cookietest'})){
F 変数と値に分割
$COOKIES{'cookietest'}をEnq_Sep_Codeで切り分けて、それぞれの変数名=値ごとに処理を行います。
● ($cname,$cvalue)=split(/\=/);
G Enc_Colon_Codeを;に変換
● $cname=~ s/Enc_Colon_Code/\;/g;
● $cvalue=~ s/Enc_Colon_Code/\;/g;
H文字コードをEUCに変換
● &jcode::convert(*cvalue,'euc');
I$COOKIE{変数名}に値を代入
● $COOKIES{$cname}=$cvalue;
この結果$COOKIE{'name'}に名前、$COOKIE{'mail'}にメールアドレス、$COOKIE{'color'}に色番号が入ります。次のプログラムは入力されたデータをCookieにセットし、現在のCookieを表示します。リロードすると前にセットしたCookieが表示されます。
CGI::Cookieを使うと簡単にCookieの値を設定することができます。
$NewCookie=new CGI::Cookie(-name=>'test',-value=>"$time",-expires=>'hursday,31-Dec-2018 00:00:00 JST');次の要素を指定します。
-name:Cookieの名前 -value:値 -expires:有効期限 -path:パス -domain:有効ドメイン名
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
#!/usr/bin/perl
use CGI::Cookie;
$time=time;
#-name:Cookieの名前
#-value:値
#-expires:有効期限
#-path:パス
#-domain:有効ドメイン名
$NewCookie=new CGI::Cookie(-name=>'CookieName',-value=>"$time",-expires=>'Thursday,31-Sep-2016 00:00:00 JST',-path=>'PATH',-domain=>'有効ドメイン');
print <<"IO";
Content-type:text/html
Set-Cookie:$NewCookie
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../quest/stylesheet.css" >
<title>Cookieテストプログラム</title>
</head>
<body>
<h1>Cookieテストプログラム version1.3.0</h1>
<br>
<p>
NewCookie(値をセットしたCookieセット) : $NewCookie<br>
NowCookie (現在のCookie)): $ENV{'HTTP_COOKIE'}
<br>
</p>
</body>
</html>
IO
exit;
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
%cookies=fetch CGI::Cookie;
$cookie=$cookies{'test'};
$cookieからvalueの値だけを取り出すには次のようにします。
$cookie->{'value'}->[0];
次の文はアクセスした時間をセットするプログラムです。NewValueがCookieにセットされる値、NowValueが前回Cookieにセットされた値です。
#!/usr/bin/perl
use CGI::Cookie;
$time=time;
#Cookieの値を取り出す。
%oldCookies=fetch CGI::Cookie;
$cookie=$OldCookies('test');
#Cookieからvalueの値をとりだす
<pre>$oldvalue=$cookie->{'value'}->{0};</pre>
#今回セットするCookieを作成
$newCookie=new CGI::Cookie(-name=>'test',-value->"$time",-expires->'Thursday,31-Dec-2016 00:00:00 JST');
print<<"IO";
Content-type:text/html
Set-Cookie:$NewCookie
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../quest/stylesheet.css" >
<title>Cookieテストプログラム</title>
</head>
<body>
<h1>Cookieテストプログラム version1.3.0</h1>
<br>
<p>
NewCookie(値をセットしたCookieセット) : $NewCookie<br>
NowCookie (現在のCookie)): $ENV{'HTTP_COOKIE'}
<br>
</p>
</body>
</html>
IO
exit;
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
#!usr/bin/perl
use CGI qw(:standard);
use CGI::Cookie;
require 'jcode.pl';
$time=time;
#フォームから文字列を得る
$text1=param('text1');
$text2=param('text2');
&jcode::convert(*text1,'euc');
&jcode::convert(*text2,'euc');
#Cookieの値を取り出す
%OldCookies=fetch CGI::Cookie;
$cookie=$OldCookies{'test'};
$ctext1=$cookie->{'value'}->[0];
$ctext2=$cookie->{'value'}->[1];
$ctime=$cookie->{'value'}->[2];
#今回セットするCookieを作成
$NewCookie=new CGI::Cookie(-name=>'test',-value=>["$text1","$text2","$time"],
-expires=>'Thursday,31-Sep-2016 00:00:00 JST');
print <<"IO";
Content-type:text/html
Set-Cookie:$NewCookie
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Cookieテストプログラム</title>
</head>
<body>
<h1>Cookieテストプログラム version1.5.0</h1>
<div class="profile" style="text-align:center;"><form action="cookie5.cgi" method="post">
text1:<input type="text" name="text1" size="20"><br>
text2:<input type="text" name="text2" size="20"><br>
<input type="submit" value="SET"style="width:100px;margin:2px;">
</form></div>
<form action ="cookie5.cgi" method="post" style="width:100px;margin:2px;">
<input type="submit" value="next" style="width:100px;margin:2px;">
</form>
NewCookie :$text1/$text2/$time
NowCookie : $ctext1/$ctext2/$ctime
</p>
</body>
</html>
IO
exit;
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
リピータ調査などの目的でサイト全体のページ用のCookieを設定しているとき、それとは別に掲示板用のCookieを使いたい場合はそれらを別々のCookieとして保存します。複数のCookieを保存させるには複数のCookie文字列を作成して、それぞれにSet-Cookieを行います。 ● 複数の名前のCookieを作成し、それらを全てセット
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
#!/usr/bin/perl
use CGI qw(:standard);
use CGI::Cookie;
require 'jcode.pl';
#Cookieの値を取り出す。
%OldCookies=fetch CGI::Cookie;
#Cookie1の値
$cookie1=$OldCookies{'Cookie1'};
$ctext11=$cookie1->{'value'}->[0];
$ctext12=$cookie1->{'value'}->[1];
$ctext13=$cookie1->{'value'}->[2];
#Cookie2の値
$cookie2=$OldCookies{'Cookie2'};
$ctext21=$cookie2->{'value'}->[0];
$ctext22=$cookie2->{'value'}->[1];
$ctext23=$cookie2->{'value'}->[2];
#Cookie3の値
$cookie3=$OldCookies{'Cookie3'};
$ctext31=$cookie3->{'value'}->[0];
$ctext32=$cookie3->{'value'}->[1];
$ctext33=$cookie3->{'value'}->[2];
#今回セットするCookieを作成
#フォームから入力文字列を得る
$text11=param('text11');
$text12=param('text12');
$text13=param('text13');
$text21=param('text21');
$text22=param('text22');
$text23=param('text23');
$text31=param('text31');
$text32=param('text32');
$text33=param('text33');
&jcode::convert(*text11,'euc');
&jcode::convert(*text12,'euc');
&jcode::convert(*text13,'euc');
&jcode::convert(*text21,'euc');
&jcode::convert(*text22,'euc');
&jcode::convert(*text23,'euc');
&jcode::convert(*text31,'euc');
&jcode::convert(*text32,'euc');
&jcode::convert(*text33,'euc');
$NewCookie1=new CGI::Cookie(-name=>'Cookie1',-value=>["$text11","$text12","$text13"],-expires=>'Thursday,31-Sep-2016 00:00:00 JST');
$NewCookie2=new CGI::Cookie(-name=>'Cookie2',-value=>["$text21","$text22","$text23"],-expires=>'Thursday,31-Nov-2020 00:00:00 JST');
$NewCookie3=new CGI::Cookie(-name=>'Cookie3',-value=>["$text31","$text32","$text33"],-expires=>'Thursday,31-Dep-2024 00:00:00 JST');
print <<"IO";
Content-type:text/html
Set-Cookie:$NewCookie1
Set-Cookie:$NewCookie2
Set-Cookie:$NewCookie3
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../quest/stylesheet.css" >
<title>CGI::Cookie</title>
</head>
<body>
<h1>Cookieテストプログラム version1.6.0</h1>
<form action="cookie6.cgi" method="post">
<div><div style="float:left;margin-left:10px;margin-bottom:15px;">
<h5>COOKIE SETTING1</h5>
NewCookie1{value[0]} : <input type="text" name="text11" size="20" style="margin:5px;width:180px;"><br>
NewCookie1{value[1]} : <input type="text" name="text12" size="20" style="margin:5px;width:180px;"><br>
NewCookie1{value[2]} : <input type="text" name="text13" size="20" style="margin:5px;width:180px;"><br></div>
<div style="float:left;margin-left:10px;margin-bottom:15px;">
<h5>COOKIE SETTING2</h5>
NewCookie2{value[0]} : <input type="text" name="text21" size="20" style="margin:5px;width:180px;"><br>
NewCookie2{value[1]} : <input type="text" name="text22" size="20" style="margin:5px;width:180px;"><br>
NewCookie2{value[2]} : <input type="text" name="text23" size="20" style="margin:5px;width:180px;"><br></div>
<div style="float:left;margin-left:10px;margin-bottom:15px;">
<h5>COOKIE SETTING3</h5>
NewCookie3{value[0]} : <input type="text" name="text31" size="20" style="margin:5px;width:180px;"><br>
NewCookie3{value[1]} : <input type="text" name="text32" size="20" style="margin:5px;width:180px;"><br>
NewCookie3{value[2]} : <input type="text" name="text33" size="20" style="margin:5px;width:180px;"><br></div>
</div>
<br>
<input type="submit" value="COOKIE SET" style="width:150px;">
</form></div>
<h5>COOKIE NOW</h5>
Cookie1 : $ctext11<br>
Cookie2 : $ctext21<br>
Cookie3 : $ctext31<br>
<br>
<h5>SET COOKIE</h5>
CookieSET1 : $NewCookie1<br>
CookieSET2 : $NewCookie2<br>
CookieSET3 : $NewCookie3<br>
<br>
</body>
</html>
IO
exit;
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
CGIモジュールを使ってCOOKIEの値をヘッダーにセットにします。次のようにオプションに指定します。 ● print header(-type=>'text/html',-charset=>'UTF-8',-cookie=>$NewCookie); Cookieが複数の場合は次のとおりです。 ● print header(-type=>'text/html',-charset=>'UTF-8',-cookie=>[$NewCookie1,$NewCookie2,$NewCookie3]);
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
#!/usr/bin/perl
use CGI qw(:standard);
use CGI::Cookie;
require 'jcode.pl';
$time=time;
#フォームからの入力文字列を得る
$text1=param('text1');
$text2=param('text2');
&jcode::convert(*text1,'euc');
&jcode::convert(*text2,'euc');
#COOKIEの値を取り出す
%OldCookies=fetch CGI::Cookie;
$cookie=$OldCookies{'COOKIE_PROGRAM'};
$ctext1=$cookie->{'value'}->[0];
$ctext2=$cookie->{'value'}->[1];
$ctime=$cookie->{'value'}->[2];
#今回セットするCookieを作成
$NewCookie=new CGI::Cookie(-name=>'COOKIE_PROGRAM',-value=>["$text1","$text2","$time"],-expires=>'Thursday,31-Sep-2018 00:00:00 JST');
#CGIモジュールを使ってヘッダを表示する
print header(-type=>'text/html',-charset=>'UTF-8',-cookie=>$NewCookie);
print <<"IO";
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../quest/stylesheet.css" >
<title>CGI::Cookie</title>
</head>
<body>
<h1>Cookieテストプログラム version1.7.0</h1>
<form action="cookie7.cgi" method="post">
<div><div style="float:left;margin-left:10px;margin-bottom:15px;">
<h5>COOKIE SETTING</h5>
NewCookie1{value[0]} : <input type="text" name="text1" size="20" style="margin:5px;width:180px;"><br>
NewCookie1{value[1]} : <input type="text" name="text2" size="20" style="margin:5px;width:180px;"><br>
</div>
<br style="clear:both;">
<input type="submit" value="COOKIE SET" style="width:150px;">
</form></div><br>
<h5>COOKIE SET</h5>
NewValues : $text1 / $text2 / $time <br><br>
NowValues : $ctext1 / $ctext2 / $ctime
<br>
</body>
</html>
IO
exit;
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
CGI環境変数を得るには%ENVの内容をブラウザに表示させます。ブラウザに表示させるには次の文で%ENVのキーをすべて得て値を表示させます。
@keys=keys %ENV; @key=sort @keys;
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
#/!usr/bin/perl
#環境変数一覧を表示する
@keys=keys $ENV; #%ENVのキーをすべて得る
@keys=sort @keys; #キーをソート
print header( -type=>'text/html',-charset=>'UTC-8');
print <<"IO";
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../quest/stylesheet.css" >
<title>環境変数プログラム</title>
</head>
<body>
<h1>環境変数プログラム version1.0.0</h1>
<table border=1>
IO
#キー順に%ENVの値を表示
foreach $key(@keys){
print <<"IO";
<tr>
<td>$key</td>
</tr>
IO
}
print <<"IO";
</table>
</body></html>
IO
exit;
#[CODE-SAMPLE]$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$