#!/usr/local/bin/perl ############################################################################## # member_movie.cgi 2006/08 K.Houtatsu LW # 会員限定のムービー画面の表示を行います。 # ログイン済みの場合は、ムービー画面を表示します。 # ログインしていない場合は、メンバーズサイトのログイン画面にリダイレクトします。 # 行う処理の順番は以下の通りです。 # 1.cookieの判断 OK: ムービー画面表示 NG: メンバーズサイトのログイン画面にリダイレクト # # 本番環境用設定の例 # 設定に必要な項目は以下です。 # $login_url:ログインを行うcgiのURLを指定してください。 # $top_url :テンプレートが見つからない場合にリダイレクトするURLを指定してください。 # $this_url :このcgiのURLを指定してください。 # $template_dir :テンプレートの置いてあるディレクトリを指定してください。 # $template_file:テンプレートファイル名を指定してください。 # # 以下が例になります。 # my $login_url = 'https://member.square-enix.com/jp/pc/cgi-bin/aut_login.cgi'; # my $top_url = 'http://member.square-enix.com/jp/pc/cgi-bin/top_entrance.cgi'; # my $this_url = 'http://www.square-enix.com/jp/members/fanzone/newpv01/member_movie.cgi'; # my $template_dir = '/usr/local/apache/pc/htdocs/template'; # my $template_file = "$template_dir/作品名.html"; ############################################################################## use strict; #################### 初期設定 #################### #### ここは変更しないでください ################## #my $cookie_name = 't'; my $cookie_name = 'lid'; #### 環境に合わせて変更してください。 ############ # ログインを行うcgiのurl my $login_url = 'https://member.square-enix.com/jp/pc/cgi-bin/aut_login.cgi'; # トップページのurl my $top_url = 'http://member.square-enix.com/jp/'; # このcgiのurl my $this_url = 'http://www.square-enix.com/jp/members/special/ffv13_01/member_movie.cgi'; # テンプレートを置いてあるディレクトリ my $template_dir = '.'; # 読み込みムービーを表示するテンプレート名 my $template_file = "$template_dir/movie061208.html"; #################### 初期設定 #################### # クッキーの取得 my $cookie = &getCookie($cookie_name); # ログインしていない場合はログイン画面へリダイレクト #if( !defined($cookie) || $cookie ne '1'){ if( !defined($cookie) ){ # ログインに渡す用にこのcgiのurlをエスケープ my $encoded_this_url = &encodeURL($this_url); print "Location: $login_url?aut_action=$encoded_this_url\n\n"; exit; } # テンプレートファイルのオープン if( !open(IN, "< $template_file") ){ print "Location: $top_url\n\n"; exit; } # テンプレートの読み込み my $html_str = ''; while(){ $html_str .= $_; } close(IN); # テンプレートの表示 print "Content-type:text/html\n\n"; print $html_str; exit; ############################################################################## sub getCookie { my( $cookie_name ) = @_; my %cookie_hash; my @cookie_ary = split(/;\s*/, $ENV{'HTTP_COOKIE'}); foreach( @cookie_ary ){ my @c = split(/=/, $_, 2); $cookie_hash{$c[0]} = $c[1]; } return $cookie_hash{$cookie_name}; } ############################################################################## sub encodeURL { my $str = shift; $str =~ s/([^0-9a-zA-Z\-_\.\!\~\*\'\(\)])/'%' . unpack('H2', $1)/ge; return $str; }