クッキー

  背景色をクッキーに記憶させる



#!/usr/local/bin/perl

# **********************************************************
# 標準入力より生データを入力
# **********************************************************
read( STDIN, $data, $ENV{"CONTENT_LENGTH"} );

# **********************************************************
# 生データを "&" を区切り文字にして、配列へ保存
# **********************************************************
@Fields_Data = split(/&/, $data);

# **********************************************************
# データのセットを連想配列に保存
# **********************************************************
foreach ( @Fields_Data ) {
	($Name, $Value) = split( /=/, $_ );
	$Value =~ tr/+/ /;
	$Value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
#	&jcode'convert(*Value, "sjis");
 	$Form{$Name} = $Value;
}

# **********************************************************
# クッキーの処理
# **********************************************************
if ( $ENV{'HTTP_COOKIE'} ne "" ) {
	@ccolor = split( /=/, $ENV{'HTTP_COOKIE'} );
	$color = $ccolor[1];
}

# **********************************************************
# HTTP ヘッダの出力
# **********************************************************
print "Content-Type: text/html; Charset=shift_jis\n";
if ( $Form{"command"} eq '色設定' ) {
	$color = $Form{"Color"};
	print "Set-Cookie: color=$Form{'Color'}; Fri, 31-Dec-2010 23:59:59;\n";
}
print "\n";


# **********************************************************
# データ受信処理
# **********************************************************
if ($ENV{'REQUEST_METHOD'} eq "POST" ) {

	if ( $Form{"command"} eq '送信' ) {
	
		open(IN,"lightbox.log");
		@lines = <IN>;
		close(IN);
	
		($sec,$min,$hour,$mday,$mon) = localtime(time);
		$date = sprintf("%02d/%02d-%02d:%02d:%02d",$mon+1,$mday,$hour,$min,$sec);
	
		open(OUT,">lightbox.log");
		$Form{"Data"} =~ s/\r//g;
		$Form{"Data"} =~ s/\n//g;
		unshift ( @lines, "$Form{'Handle'}\t$date\t$Form{'Data'}\n" );
		print OUT @lines;
		close(OUT);

		&Reload;

	}

}


# **********************************************************
# デバッグ用の出力
# **********************************************************
if ( 1 ) {
	print "<table  cellpadding=5>";
	while ( ($key,$val) = each %Form ) {
		print "<tr>\n";
		print "<td>$key</td>\n";
		print "<td>$val</td>\n";
		print "</tr>\n";
	}
	print "</table>";
}

# **********************************************************
# HTMLの出力(ヒアドキュメント)
# **********************************************************
print <<INPUT;
<HTML>

<HEAD>

<STYLE type="text/css">

	.doumi { background-color:$color }

</STYLE>

<META HTTP-EQUIV="Content-Type" Content="text/html; charset=shift_jis">
</HEAD>
<BODY class=doumi>
<FORM method="POST" target="Input" action="input.cgi">
	<TEXTAREA name="Data" cols="80" rows="10"></TEXTAREA>
	<INPUT type=hidden name=Handle value="$Form{'Handle'}">
	<INPUT type="submit" name="command" value="送信">
</FORM>

<FORM method="POST" target="Input" action="input.cgi">
	<INPUT type=text name=Handle value="$Form{'Handle'}">
	<INPUT type="submit" name="command" value="名前">
</FORM>

<FORM method="POST" target="Input" action="input.cgi">
	<SELECT name=Color value="$color">
	<OPTION>blue
	<OPTION>red
	<OPTION>pink
	<OPTION>black
	</SELECT>
	<INPUT type=hidden name=Handle value="$Form{'Handle'}">
	<INPUT type="submit" name="command" value="色設定">
</FORM>

</BODY>
</HTML>
INPUT


# **********************************************************
# ログ再表示用スクリプト出力関数
# **********************************************************
sub Reload {

print <<RELOAD;
<SCRIPT language=JavaScript>

	parent.Output.location.reload(true);

</SCRIPT>
RELOAD

}












   SQLの窓    create:2002/11/12  update:2014/09/07   管理者用(要ログイン)





フリーフォントWEBサービス

SQLの窓WEBサービス

SQLの窓フリーソフト

写真素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ