#!/usr/bin/perl
#============================================================
#
# PHOTO-GALLERY SYSTEM
# Main CGI Module
#
$ver="1"; $build="120";
#
# Copyright(C) DIGITALAND / Tetsuya Jo
# 2004 Allrights Reserved.
#
#============================================================
#■ご利用上のご注意とお願い■
#
#●1:この CGI ファイルはノーサポートで公開しています。
# 万一、ご利用に際して利用者の方に何らかの損害等が発生しても、
# DIGITALAND(城 哲也)は一切の責任を負いませんので、その旨
# くれぐれもご承知置き下さい。
#
#●2:この CGI に関する各種初期設定は、dll フォルダ内にある
# set.pl ファイルをメモ帳などで開いて行って下さい。
#
#●3:この CGI の改造・拡張はご自由に行って頂いて結構ですが、
# 改造の有無に関わらず、再配布はご遠慮下さい。
#
#●4:この CGI はカンパウェアとなっています。
# ご利用者の方は、この CGI のご利用に際して代金をお支払い
# 頂く義務は一切ございませんが、もし、気に入っていただけて、
# 開発に掛かる経費を少し負担してやってもよいと思われる方は、
# 下記宛までカンパ頂けると非常に嬉しいです。
#
# ■UFJ 銀行 光明池支店(コウミョウイケ 店番239)
# ■普通:0428311
# ■ジョウ テツヤ
# (金額はご自由です)
require "dll/set.pl";
require "dll/jcode.pl";
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach (@pairs) {
($name,$value) = split(/=/, $_);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*value, "sjis", "", "z");
$value =~ s/\</g;
$value =~ s/\>/>/g;
$value =~ s/\"/"/g;
$value =~ s/\#//g;
$value =~ s/\r\n/
/g;
$value =~ s/\r/
/g;
$value =~ s/\n/
/g;
$F{$name} = $value;
}
if (!-e "$log/idxcnt.dat"){
open FILE, ">$log/idxcnt.dat"; print FILE "1"; close(FILE);
if ($pms){ chmod $pms, "$log/idxcnt.dat"; }
open FILE, ">$log/idxcnt.dat"; print FILE "0"; close(FILE);
if (!-e "$log/idxcnt.dat"){
&error("ログファイルの生成に失敗しました
書き込みファイルのパーミッションを設定し直して下さい");
}
open FILE, ">$log/albumcnt.dat"; print FILE "0"; close(FILE);
if ($pms){ chmod $pms, "$log/albumcnt.dat"; }
open FILE, ">$log/albums.dat"; close(FILE);
if ($pms){ chmod $pms, "$log/albums.dat"; }
}
open FILE, "$log/albums.dat";
@abody=;
close(FILE);
$now=time;
if (!$F{'M'}){ $F{'M'}="index"; }
require "dll/$F{'M'}.pl";
exit;
sub f_lock{
$i=0;
while ($i < 5){
if (open(LOCK, ">$log/$_[0].dat")){
flock(LOCK, 2);
print LOCK "$now";
$i=10;
last;
} else { $i++; sleep 1; }
if ($i < 10){
open LOCK, "$log/$_[0].dat";
$Bnow=;
close(LOCK);
if ($Bnow + 60 < $now){ unlink("$log/$_[0].dat"); }
}
}
if ($i < 9) { &error("現在書き込みが混雑しています"); }
}
sub u_lock{
close(LOCK);
unlink("$log/$_[0].dat");
flock(LOCK, 8);
}
sub header(){
if (!$pagetitle){
$pagetitle='';
}
if ($subtitle eq 'def'){
$subtitle='';
}
print <
$webtitle