#!/usr/bin/env perl
#==============================================================================
# < index.cgi >
#
# ◇ 機能
# ・
#------------------------------------------------------------------------------
# ◇ 使用法:
#
#
# ◇ 例:
#
#
# ◇ 引数
# (なし)
#
#------------------------------------------------------------------------------
# Ver.1.0 00/00/00 by K.Shiraishi
#
#==============================================================================
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#
# I N I T I A L I Z E
#
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# ライブラリ読込み
#------------------------------------------------------------------------------
use strict;
use CGI qw(:standard);
#use CGI::Carp qw(fatalsToBrowser);
use Image::Magick;
use Jcode;
#use LWP::Simple;
#use GD;
#print "Content-type: text/html\n\n";
#==============================================================================
# 初期定義
#------------------------------------------------------------------------------
my($debug) = '';
# CGI初期化
my %in;
my($icnt, $procid);
&init_cgi;
# グローバル変数定義
my $TRUE = (1 == 1);
my $FALSE = (1 == 0);
my $wrkdir = "/tmp/mb";
my $wrkdir = "/home/wwclient/webdo.co.jp/release/webdo_public/uts/mb/tmp2";
my $wrkurl = "/uts/mb/tmp2";
my $path_convert = "/usr/bin/convert";
my $path_convert = "/usr/X11R6/bin/convert";
my $name_img_banner = "bn$procid.$icnt.jpg";
my $name_img_uploaded = "up$procid.jpg";
my $name_img_main = "ma$procid.$icnt.jpg";
my $prev_img_banner = "$wrkdir/bn$procid.$in{icnt}.jpg";
my $prev_img_main = "$wrkdir/ma$procid.$in{icnt}.jpg";
my $file_img_banner = "$wrkdir/$name_img_banner";
my $file_img_uploaded = "$wrkdir/$name_img_uploaded";
my $file_img_main = "$wrkdir/$name_img_main";
my $url_img_banner = "$wrkurl/$name_img_banner";
my $url_img_uploaded = "$wrkurl/$name_img_uploaded";
my $url_img_main = "$wrkurl/$name_img_main";
my $url_self = "/uts/mb/";
my $file_debug = "$wrkdir/debug";
my $def_banw = 200;
my $max_banw = 400;
my $min_banw = 20;
my $def_banh = 40;
my $max_banh = 200;
my $min_banh = 20;
my @list_banner_size = (
"user|ユーザ指定",
"88x31|88 x 31",
"120x90|120 x 90",
"120x60|120 x 60",
"125x125|125 x 125",
"234x60|234 x 60",
"400x60|400 x 60"
);
my(@img) = ();
my(@iparam) = ();
my($image_banner, $image_main, $banner_w, $banner_h, $img_filename);
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#
# M A I N R O U T I N E
#
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
&init;
&main;
exit 0;
#==============================================================================
# メイン関数
#------------------------------------------------------------------------------
sub main {
# ワークディレクトリ作成
&init_wrkdir;
&remove_old_files;
# バナーサイズ取得
($banner_w, $banner_h) = &get_banner_size;
unlink( $prev_img_banner ) if (-f $prev_img_banner);
unlink( $prev_img_main ) if (-f $prev_img_main);
# 画像が今回アップロード指定されていれば保存
#&store_uploaded_image if ($in{upload});
&store_uploaded_image if ($in{image});
# アップロード画像決定
$image_main = &get_image_main;
# バナー画像作成&保存
$image_banner = &get_image_banner;
# ページ出力
# $debug .= "
" . `env` . "
";
$debug = qq!
$debug
!;
$debug = '';
&put_html_all;
}
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#
# S U B R O U T I N E S
#
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# 初期設定
#------------------------------------------------------------------------------
sub init {
}
#==============================================================================
# CGI 初期化
#------------------------------------------------------------------------------
sub init_cgi {
%in = ();
foreach (param) {
my $t = param( $_ );
#$debug .= "($_:$t) ";
if (! /^string\d$/) {
$t =~ s/[^0-9A-Za-z_:\/\%\.\-\*\#]//g;
$t =~ s/\.\.//;
}
$in{$_} = $t;
}
$icnt = $in{icnt} + 1;
$procid = ($in{procid}) ? $in{procid} : $$;
$in{banner_size} = '234x60' if (! $in{banner_size});
}
#==============================================================================
# ページ表示
#------------------------------------------------------------------------------
sub put_html_all {
#&PrintHeader();
print header(-type => 'text/html', -charset => 'x-euc-jp');
&put_html_head;
if (! $in{expert_mode}) {
&put_html_beginer_mode;
}
else {
&put_html_expert_mode;
}
}
#==============================================================================
# 古いファイルを削除
#------------------------------------------------------------------------------
sub remove_old_files {
my @files = split( /\n/, `find $wrkdir -mtime +1 -print` );
$debug .= "(find $wrkdir -mtime +1 -print)\n";
foreach my $f (@files) {
$debug .= "($f) ";
next if ($f =~ /^\./);
chmod( 0666, $f );
unlink( $f );
}
}
#==============================================================================
# 共通 HTML ヘッダ表示
#------------------------------------------------------------------------------
sub put_html_head {
print <楽ばな 〜無料で使えるバナー作成ツール〜
EOT
}
#==============================================================================
# 初心者用 HTML 表示
#------------------------------------------------------------------------------
sub put_html_beginer_banner {
# 未使用!!!
print <