#!/usr/bin/perl

#┌─────────────────────────────────
#│ LOG IN v1.5 (2002/06/06)
#│ Copyright(C) Kent Web 2002
#│ webmaster@kent-web.com
#│ http://www.kent-web.com/
#└─────────────────────────────────
$ver = 'Login v1.5';
#┌─────────────────────────────────
#│ [注意事項]
#│ 1. このスクリプトはフリーソフトです。このスクリプトを使用した
#│    いかなる損害に対して作者は一切の責任を負いません。
#│ 2. 設置に関する質問はサポート掲示板にお願いいたします。
#│    直接メールによる質問は一切お受けいたしておりません。
#│ 3. methodプロパティ は POST 専用です
#└─────────────────────────────────
# 【 設置例 】
#
#  public_html / index.html (トップページ等)
#      |
#      +-- cgi-bin / login.cgi  [755]
#                    secret.cgi [644] ... 隠しファイル
#                                       (HTMLの拡張子を.cgi に変更)
#

#============#
#  設定項目  #
#============#

# パスワード（半角英数字）
$pass = '48325';

# スクリプト名
$script = "./indexip.cgi";

# 隠しファイル（HTMLの拡張子を .cgi に変える）
# 例 → secret.html だと secret.cgi に変更
#       もし隠しファイルが本来のCGIファイルであれば、http://からURLを指定
$secret = './ptrenseip.cgi';

# 認証ページからの戻り先 (index.htmlなど）
$home = "../index.html";

#============#
#  設定完了  #
#============#

# デコード処理
if ($ENV{'REQUEST_METHOD'} eq "POST") {
	read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
}
foreach (split(/&/, $buf)) {
	local($key, $val) = split(/=/);
	$val =~ tr/+/ /;
	$val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

	# セキュリティ対策
	$val =~ s/&/&amp;/g;
	$val =~ s/"/&quot;/g;
	$val =~ s/</&lt;/g;
	$val =~ s/>/&gt;/g;
	$val =~ s/\0//g;

	$in{$key} = $val;
}
if ($in{'pass'} ne "") { &login; }

# 認証画面を表示
&header;
print <<"EOM";
<div id="body"><div class="marginauto">

<div id="header">
<p><strong>おもいつき突発企画</strong><small>（10月19日公開）</small></p>
<h1>セカイカメラで宝探しをしてみよう！</h1>
</div>

<div id="lead"><p class="margin8">
面白そうと思ったらなんでも遊びに使ってみる。<br />
そんな古代ローマの堕落した貴族のような価値観をもつ私たちなので、さっそくやってみました！<br />
初めてのこころみなので、うまくいかなかったらごめんなさい。<br />
<br />（10月27日追記）<br />
<strong>さっぽろ駅周辺</strong>のローカルなあそびです。<br />
プレゼントにはまだ <strike> 若干の </strike> いっぱい余裕がございます。きたれプレイヤー！　<small>どうしても謎が解けないときはそっと<a href="mailto:info@smileboom.com">メール</a>してくれると、なにかしら便宜をはからなくもないかもしれません。</small><br />
</p></div>

<div id="notice" class="marginbottom8"><p class="padding4">注意：セカイカメラをのぞく時は安全な場所で、周囲に迷惑をかけないようにたのしく遊びましょう</p></div>

<div id="column">
<h3>STEP<span id="step">1</span></h3>
<p class="marginbottom8">iPhoneを用意します</p>
<h3>STEP<span id="step">2</span></h3>
<p class="marginbottom8">まだ『セカイカメラ』を持っていない人は、App Storeで『<a href="http://click.linksynergy.com/fs-bin/stat?id=UFWa131gHH4&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=http%253A%252F%252Fitunes.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewSoftware%253Fid%253D320987601%2526mt%253D8%2526uo%253D6%2526partnerId%253D30">セカイカメラ</a>』をダウンロードします</p>
<h3>STEP<span id="step">3</span></h3>
<p>ヒントが示す場所でセカイカメラをのぞいてみましょう！</p>
<div id="hint">
<img src="./image/img-mister_ip.jpg" id="mister" />
<div id="hintwords">
<p><span id="h">HINT:</span>ワシじゃワシワシ、具体的に誰というわけでもないがパッと見、秘密のカギを握っていそうなキャラのワシが諸君をナビゲートするぞ。<br />
では最初の場所のヒントじゃ。<br />
<strong>株式会社スマイルブーム</strong>……そのオフィスのある<strong>ビル</strong>を探すのじゃ！<br />
<strong>出入口周辺</strong>で浮遊しているヒントをさがせ！<br />
どうでもいいけど、スマイルブームって、なんだ？</p>
</div>
<br class="floatkill" />
</div>
<p class="marginbottom8">ヒントが示す場所に浮いたエアタグには、次の場所へのヒントとパスワードの１部が書いてあるはずです</p>
<h3>STEP<span id="step">4</span></h3>
<p>順にヒントが示す場所をめぐり歩いて、５文字のパスワードをそろえると素敵なプレゼントが……？</p>
<div id="present"><p>先着10名様に、iPhoneを持っていればちょっと嬉しい（はずの）プレゼント！</p></div>
</div><br clear="all" />

<form action="$script" method="POST" name="entry">
<div id="password">
<p>あつめたパスワードを入力！</p>
<p><input type="text" name="pass" /><input type="submit" value="送信"></p>
</div>
</form>

<div id="powered" class="marginbottom16">
<a href="http://smileboom.com/"><img src="./image/footage-sb.png" alt="Powered by SmileBoom" /></a>
</div>

<div id="bookmark" class="center">
<a href="http://twitter.com/home/?status=%E3%82%BB%E3%82%AB%E3%82%A4%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%A7%E5%AE%9D%E6%8E%A2%E3%81%97+http://bit.ly/4lVUO2"><img src="http://smileboom.com/image/page/bookmark/twit.png" alt="twitterでつぶやく" title="twitterでつぶやく" /></a>
<a href="http://b.hatena.ne.jp/entry/http://smileboom.com/special/treasure/index.cgi"><img src="http://smileboom.com/image/page/bookmark/hatena_bookmark.gif" width="16" height="12" alt="はてなブックマークに追加" title="はてなブックマークに追加" /></a>
<a href="http://clip.livedoor.com/redirect?link=http://smileboom.com/special/treasure/index.cgi&title=%E3%82%BB%E3%82%AB%E3%82%A4%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%A7%E5%AE%9D%E6%8E%A2%E3%81%97&ie=utf-8"><img src="http://parts.blog.livedoor.jp/img/cmn/clip_16_16_w.gif" width="16" height="16" alt="livedoorクリップに追加" title="livedoorクリップに追加" /></a>
<a href="#" onclick="window.open('http://bookmarks.yahoo.co.jp/bookmarklet/showpopup?t=%E3%82%BB%E3%82%AB%E3%82%A4%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%A7%E5%AE%9D%E6%8E%A2%E3%81%97&amp;u=http%3A%2F%2Fsmileboom.com%2Fspecial%2Ftreasure%2Findex.cgi&amp;opener=bm&amp;ei=UTF-8','popup','width=550px,height=480px,status=1,location=0,resizable=1,scrollbars=0,left=100,top=50',0); return false;"><img src="http://i.yimg.jp/images/sicons/ybm16.gif" width="16" height="16" alt="Yahoo!ブックマークに追加"></a>
<a href="javascript:url='http://smileboom.com/special/treasure/index.cgi';title='セカイカメラで宝探し';location.href='http://bookmark.fc2.com/user/post?url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)"><img alt="FC2ブックマークに追加" src="http://bookmark.fc2.com/images/add-16.gif" width="16" height="16" /></a>
<a href="http://del.icio.us/post?url=hhttp://smileboom.com/special/treasure/index.cgi&amp;title=セカイカメラで宝探し"><img src="http://smileboom.com/image/page/bookmark/delicious.gif" width="10" height="10" alt="del.icio.usに追加" title="del.icio.usに追加" /></a>
</div>

<div id="footer">
<p class="center"><a href="index.cgi">PC用表示</a>｜<strong>iPhone用表示</strong></p>
EOM
print "<!-- 著作権表\示 (削除不可) [ $ver ] -->";
print <<"EOM";
<p>&copy; <a href="http://www.kent-web.com" target="_blank">Log in</a>&nbsp;</p>
</div>

</div></div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script> 
<script type="text/javascript"> 
try {
var pageTracker = _gat._getTracker("UA-9054823-1");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>
EOM
exit;

#------------#
#  認証処理  #
#------------#
sub login {
	# 認証エラー表示
	if ($in{'pass'} ne $pass) {
		&header;
print <<"EOM";
<div id="body"><div class="marginauto">
<div id="column">
<div id="hint">
<img src="./image/img-mister_ip.jpg" id="mister" />
<div id="hintwords">
<p><span id="errorh">ERROR!</span>どうやらパスワードが違っておるがごとし雰囲気じゃ。<br />
<strong>半角で入力</strong>しておるか？　全角入力はミス扱いになるようじゃぞ。気のきかない仕様じゃぞ。<br />
<strong>パスワードの並び順</strong>は合っておるか？　「●」記号でよく確認するのじゃぞ。ぶっちゃけると合わせて５文字じゃぞ。<br /></p>
</div>
<br class="floatkill" />
</div>

&gt;&gt;&nbsp;<a href="" onClick="history.back()">パスワード入力画面に戻る</a>
</div>

<div id="powered" class="margin32">
<a href="http://smileboom.com/"><img src="./image/footage-sb.png" alt="Powered by SmileBoom" /></a>
</div>

<div id="footer">
<p class="center"><a href="index.cgi">PC用表示</a>｜<strong>iPhone用表示</strong></p>
EOM
print "<!-- 著作権表\示 (削除不可) [ $ver ] -->";
print <<"EOM";
<p>&copy; <a href="http://www.kent-web.com" target="_blank">Log in</a>&nbsp;</p>
</div>
EOM
		exit;
	}

	# ファイル指定が http://からであれば Locaionヘッダでジャンプ
	if ($secret =~ /^http\:\/\//) {
		if ($ENV{'PERLXS'} eq "PerlIS") {
			print "HTTP/1.0 302 Temporary Redirection\r\n";
			print "Content-type: text/html\n";
		}
		print "Location: $secret\n\n";
	} else {
		# 隠しファイルを表示
		unless (-e $secret) {
			&error("隠しファイルのパスが不正です : $secret");
		}
		print "Content-type: text/html\n\n";
		open(IN,"$secret") || &error("Open Error : $secret");
		while (<IN>) { print; }
		close(IN);
	}
	exit;
}

#--------------#
#  エラー処理  #
#--------------#
sub error {
	&header;
	print "<div align='center'><h3>ERROR !</h3>\n";
	print "<font color=red><b>$_[0]</b></font></div\n";
	print "</body></html>\n";
	exit;
}

#--------------#
#  HTMLヘッダ  #
#--------------#
sub header {
	print "Content-type: text/html\n\n";
print<<EOF;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width = 320" />
<link rel="stylesheet" href="./stylesip.css" type="text/css" />
<title>セカイカメラで宝探し</title>
</head>
<body id="frontpage">
EOF
}

