#!/usr/bin/perl require '../cgi-bin/cgi-lib.pl'; require '../cgi-bin/jcode.pl'; require '../cgi-bin/stdio.pl'; &decode; #methodの方式 $method = "POST"; #このスクリプト名 $script = "topics.cgi"; #TOP用データの格納先 $top_data = "../cgi-bin/data/topics.csv"; #画像ファイルの置き場所 $imgpath = "../cgi-bin/img/"; #画像の最大サイズ $MaxW = 140; $MaxH = 100; @list = (); $i = 0; open IN,"$top_data" or die &error("$top_dataが開けません"); while(){ $list[$i] = $_; $i++; } close IN; &header; print <<"EOH";
こちらでは、TEIMからの最新店舗情報やイベント情報、車関連ニュースをお届けします。
随時更新されますので、こまめにチェックしてお得な情報をお見逃しなく
 
EOH $j = 1; foreach(@list){ ($title,$comment,$pic) = split(/,/,$_); if((!$title)||(!$comment)){ $j++; next; } $picture = "$imgpath$pic"; print <<"EOH";
■$title
 
EOH if($pic){ ($type2,$width2,$height2) = stdio::getImageSize($picture); # 画像表示縮小 if ($width2 > $MaxW || $height2 > $MaxH) { $W2 = $MaxW / $width2; $H2 = $MaxH / $height2; if ($W2 < $H2) { $key = $W2; } else { $key = $H2; } $width2 = int ($width2 * $key) || 1; $height2 = int ($height2 * $key) || 1; } print "\n"; }else{ print "\n"; } print <<"EOH"; ■$comment

EOH $j++; } print <<"EOH";
EOH exit; ################################################################### # ヘッダー [ &header ] ################################################################### sub header { print "Content-type: text/html\n\n"; print <<"EOH"; TEIM :TOPICS お知らせ EOH } ########################################################### # エラー処理 [ &error ] ########################################################### sub error{ if ($lockflag) { &unlock; } print "Content-type: text/html\n\n"; print "ERROR\n"; print "

\n"; print "
ERROR!!
\n"; print "

$_[0]




\n"; if($_[1] eq "1"){ print "
\n"; }else{ print "\n"; } exit; } #----------------# # デコード処理 # #----------------# sub decode { &ReadParse; while (($key,$val) = each %in) { if ($key ne "upfile") { # シフトJISコードに変換 &jcode'convert(*val, "sjis", "", "z"); # $val =~ s/\://g; $val =~ s/\,//g; # タグ処理 $val =~ s/&/&/g; $val =~ s/"/"/g; # $val =~ s//>/g; # 改行処理 if ($key eq "comment") { $val =~ s/\r\n/
/g; $val =~ s/\r/
/g; $val =~ s/\n/
/g; } # else { # $val =~ s/\r//g; # $val =~ s/\n//g; # } } $in{$key} = $val; } $mode = $in{'mode'}; $page = $in{'page'}; $in{'url'} =~ s/^http\:\/\///; if ($in{'sub'} eq "") { $in{'sub'} = "無題"; } # 日時の取得 $ENV{'TZ'} = "JST-9"; $times = time; ($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime($times)); $year = $year + 1900; $mon++; if ($mon < 10) { $mon = "0$mon"; } if ($mday < 10) { $mday = "0$mday"; } if ($hour < 10) { $hour = "0$hour"; } if ($min < 10) { $min = "0$min"; } if ($sec < 10) { $sec = "0$sec"; } # 日時のフォーマット @week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); $date = sprintf("%04d/%02d/%02d(%s) %02d:%02d", $year,$mon,$mday,$week[$wday],$hour,$min); $date1 = "$year$mon$mday$hour$min$sec"; $date2 = "$year/$mon/$mday"; } #--------------# # ロック処理 # #--------------# sub lock { # 1分以上古いロックは削除する if (-e $lockfile) { local($mtime) = (stat($lockfile))[9]; if ($mtime < time - 60) { &unlock; } } local($retry) = 5; # symlink関数式ロック if ($lockkey == 1) { while (!symlink(".", $lockfile)) { if (--$retry <= 0) { &error('LOCK is BUSY'); } sleep(1); } # mkdir関数式ロック } elsif ($lockkey == 2) { while (!mkdir($lockfile, 0755)) { if (--$retry <= 0) { &error('LOCK is BUSY'); } sleep(1); } } $lockflag=1; } #--------------# # ロック解除 # #--------------# sub unlock { if ($lockkey == 1) { unlink($lockfile); } elsif ($lockkey == 2) { rmdir($lockfile); } $lockflag=0; } ########################################################### # エラー探し [ &info ] ########################################################### sub info { print "Content-type: text/html\n\n"; print"\n"; print"\n"; print"\n"; print"\n"; print"\n"; print"

$_[0]

\n"; print"\n"; print"\n"; exit; }