#! /usr/local/bin/perl ############################################# # 各種設定 # ############################################# ### ライブラリ取込み require './jcode.pl'; require './common_mb2.cgi'; require './common2_mb2.cgi'; ############################################# # メインプログラム # ############################################# &decode; &axs_check; if ($mode eq "enter") { &enter; } elsif ($mode eq "edit1") { &edit1; } elsif ($mode eq "edit2") { &edit2; } elsif ($mode eq "touroku") { &touroku; } elsif ($mode eq "print" || $mode eq "print2") { &print; } elsif ($mode eq "wait") { &wait; } elsif ($mode eq "entry") { &entry; } elsif ($mode eq "info") { &info; } elsif ($mode eq "kana_sort" ||$mode eq "new_sort") { &meibo; } elsif ($mode eq "mf") { &mf; } elsif ($mode eq "mf2") { &mf2; } elsif ($mode eq "welcome" || $mode eq "p_welcome") { &welcome; } elsif ($mode eq "wel_edit") { &wel_edit; } elsif ($mode eq "admin") { &admin; } &admin; exit; ############################################# # サブルーチン # ############################################# ############## オフ案内表示 ################## sub info{ &kihon; # ロック処理 &lock if ($lockkey); # メールアドレス収集ソフト対策 $etc =~ s/\@/@/g; if ($tei1 == 9999){$tei1 = "無制限";} else {$tei1 = "$tei1名";} if ($tei2 == 9999){$tei2 = "無制限";} else {$tei2 = "$tei2名";} if ($tei3 == 9999){$tei3 = "無制限";} else {$tei3 = "$tei3名";} if ($tei4 == 9999){$tei4 = "無制限";} else {$tei4 = "$tei4名";} if ($tei5 == 9999){$tei5 = "無制限";} else {$tei5 = "$tei5名";} if (!$nichiji){$nichiji = "
";} if (!$kanji){$kanji = "
";} if (!$jikan){$jikan = "未定";} if (!$shime){$shime = "
";} if (!$karishime){$karishime = "
";} if (!$basho){$basho = "
";} if (!$toiawase){$toiawase = "
";} if (!$kanji){$kanji = "
";} if (!$basho1){$basho1 = "
";} if (!$yosan1){$yosan1 = "
";} if (!$biko1){$biko1 = "
";} if (!$basho2){$basho2 = "
";} if (!$yosan2){$yosan2 = "
";} if (!$biko2){$biko2 = "
";} if (!$basho3){$basho3 = "
";} if (!$yosan3){$yosan3 = "
";} if (!$biko3){$biko3 = "
";} if (!$basho4){$basho4 = "
";} if (!$yosan4){$yosan4 = "
";} if (!$biko4){$biko4 = "
";} if (!$basho5){$basho5 = "
";} if (!$yosan5){$yosan5 = "
";} if (!$biko5){$biko5 = "
";} if (!$jikan1b){$jikan1b = "未定";} if (!$jikan1e){$jikan1e = "未定";} if (!$jikan2b){$jikan2b = "未定";} if (!$jikan2e){$jikan2e = "未定";} if (!$jikan3b){$jikan3b = "未定";} if (!$jikan3e){$jikan3e = "未定";} if (!$jikan4b){$jikan4b = "未定";} if (!$jikan4e){$jikan4e = "未定";} if (!$jikan5b){$jikan5b = "未定";} if (!$jikan5e){$jikan5e = "未定";} if (!$finish){$finish = "未定";} $toiawase =~ s/([^=^\"]|^)(http\:\/\/[\w\.\~\-\/\?\&\=\;\#\:\%\+]+)/$1こちら<\/a>/g; $toiawase =~ s/([^=^\"^\w]|^)([\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,3})/$1こちら<\/a>/g; $toiawase =~ s/\@/@/g; $etc =~ s/([^=^\"]|^)(http\:\/\/[\w\.\~\-\/\?\&\=\;\#\:\%\+]+)/$1$2<\/a>/g; $title = "$offmeisho;参加募集案内"; &header; &oshirase; print "
\n"; print "\n"; print "★オフ案内★\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
【開 催 日】$nichiji【幹 事 】$kanji
【集 合 時 間】$jikan【募 集 締 切】$shime
【解 散 時 間】$finish※【仮取り締切】$karishime
【集 合 場 所】$basho【問い合わせ先】$toiawase
\n"; print "※参加の意志はあるが,参加できるかどうかわからない場合,「仮参加」での登録となります。
その後,参加か不参加かを確定することを「仮取り」といいます。
\n"; print "※記載事項以外の詳細は参加者宛メールにてお知らせいたします。\n"; print "

\n"; print "★タイムテーブル★\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; if ($off1){ $data_no = $data_no +1; $dc = $data_no % 2; if ($dc == 1){$d_color = $wscolor;} else {$d_color = $wcolor;} print "\n"; } if ($off2){ $data_no = $data_no +1; $dc = $data_no % 2; if ($dc == 1){$d_color = $wscolor;} else {$d_color = $wcolor;} print "\n"; } if ($off3){ $data_no = $data_no +1; $dc = $data_no % 2; if ($dc == 1){$d_color = $wscolor;} else {$d_color = $wcolor;} print "\n"; } if ($off4){ $data_no = $data_no +1; $dc = $data_no % 2; if ($dc == 1){$d_color = $wscolor;} else {$d_color = $wcolor;} print "\n"; } if ($off5){ $data_no = $data_no +1; $dc = $data_no % 2; if ($dc == 1){$d_color = $wscolor;} else {$d_color = $wcolor;} print "\n"; } $data_no = $data_no +1; $dc = $data_no % 2; if ($dc == 1){$d_color = $wscolor;} else {$d_color = $wcolor;} print "\n"; print "
【時間】【内容】【場所】【定員】※【予\算】【備考】
〜$jikan集合$basho


$jikan1b〜$jikan1e$off1$basho1$tei1$yosan1$biko1
$jikan2b〜$jikan2e$off2$basho2$tei2$yosan2$biko2
$jikan3b〜$jikan3e$off3$basho3$tei3$yosan3$biko3
$jikan4b〜$jikan4e$off4$basho4$tei4$yosan4$biko4
$jikan5b〜$jikan5e$off5$basho5$tei5$yosan5$biko5
$finish〜解散



\n"; print "※予\算はあくまでも目安なので,多少の変動があります。ご了承ください。\n"; print "

\n"; if ($etc){ print "★連絡事項★\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "
$etc
\n"; } print "

\n"; &footer; # ファイルロック解除 &unlock if ($lockkey); exit; } ############## 登録フォーム ################## sub entry{ &kihon; # ロック開始 &lock if ($lockkey); # 参加人数取得 &sanka; $title = "$offmeisho:参加登録フォーム"; &header; &oshirase; print "\n"; print "\n"; if ($mshoki == 0){print "\n";} elsif ($mshoki == 1){print "\n";} print "■お連れ様がいらっしゃる場合,お手数ですが1人ずつ登録作業を行ってください。

\n"; print "ハンドルネーム:(読み[全角ひらがな]:)
\n"; print "※ハンドルネームとはインターネット上での呼び名のことで,本名である必要はありません。

\n"; print "メールアドレス: 公開 非公開\n"; if ($mfmailing eq "on" && $send == 0){print " 非公開&メールフォーム利用\n";} print "
\n"; if ($in_email eq "off"){print "※オフ連絡メールを送信する必要があるので,初参加の方やアドレスを変更された方は必ずご記入ください。
\n";} elsif ($in_email eq "on1"){print "※メールアドレスの入力は必須です。
\n";} elsif ($in_email eq "on2"){print "※メールアドレスの入力は必須です。なお、携帯アドレスでは登録できません。
\n";} print "※非公開にチェックすると,幹事/管理人以外にはアドレスが知られません。
\n"; if ($mfmailing eq "on" && $send == 0){print "※メールフォームを利用すると,相手にメールアドレスを知られることなくメールを受け取ることができます。
\n";} print "
\n"; print "ホームページ:
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; if ($off1){ print "\n"; } if ($off2){ print "\n"; } if ($off3){ print "\n"; } if ($off4){ print "\n"; } if ($off5){ print "\n"; } print "\n"; print "\n"; print "\n"; print "
参加
形態
 $off1:
\n"; print "
$off2:
\n"; print "
$off3:
\n"; print "
$off4:
\n"; print "
$off5:
\n"; print "
 ・遅刻(登場時刻)から
\n"; print "・早退(退出時刻)まで
\n"; print "※参加の意志はあるが,参加できるかどうかわからない場合は,「仮参加」で登録してください。参加か不参加かが確定したら,変更フォームで登録内容を修正してください。
\n"; if ($cxlh1 || $cxlh2 || $cxlh3 || $cxlh4 || $cxlh5 ){ print "※ただいま,$cxlh1$cxlh2$cxlh3$cxlh4$cxlh5は定員超過のため,キャンセル待ちとなります。キャンセルが発生すると,「●参加」での登録が早い方から自動でキャンセル待ちが解除されます。
\n"; } print "
\n"; print "オフに向けて一言どうぞ:
\n"; print "\n"; print "
\n"; if($hidden eq "on"){ print "
幹事宛メッセージ:(幹事/管理人以外には閲覧されません)
\n"; if($hidden_m ne ""){ print "※$hidden_m
\n"; } print "\n"; } print "

\n"; print "変更パスワード(仮取り/出欠変更に使用。英数字で8文字以内)\n"; print "

\n"; if($member eq "on"){ print "会員パスワード
\n"; print "※このオフ会は会員制です。会員の方は事前にお知らせしているパスワードを入力してください。\n"; print "

\n"; } print "この登録内容は,自動で参加者名簿に登録されます。登録内容に修正があれば,
参加者名簿の画面から登録者自身で修正できます。\n"; if ($hidden eq "on"){ print "ただし、幹事宛メッセージは修正できませんので、何か連絡事項がありましたら直接メールしてください。\n"; } print "
\n"; if (!$closed){ print "
\n"; print "
\n"; } print "
\n"; &footer; # ファイルロック解除 &unlock if ($lockkey); exit; } ################ 新規登録 #################### sub touroku { # POST限定 if ($MethPost && !$post_flag) { &error("不正なアクセスです"); } &kihon; # 締切チェック if ($shimeflag eq "on"){ &error("新規の参加受付は終了いたしました"); } if ($off1 eq "" && $off2 eq "" && $off3 eq "" &&$off4 eq "" && $off5 eq ""){ &error("ただいま準備中のため登録できません"); } # パスワードチェック if (!$in{'pwd'}){ &error("変更パスワードが入力されていません"); } if ($member eq "on") { $match = &decrypt("$in{'m_pwd'}", "$member_pass"); if ($match ne "yes"){ &error("会員パスワードが違います"); } } # フォームチェック if ($in{'email'} && !$in{'smail'}){ &error("メールアドレスの公開/非公開を選択してください"); } if (!$in{'email'} && $in{'smail'} eq "on2"){ &error("メールアドレスを入力してください"); } if ($in{'smail'} eq "on2" && $in{'email'} !~ /[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,3}/){ &error("E-Mailの入力が不正です"); } if ($in_email eq "on1" && $in{'email'} !~ /[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,3}/){&error("E-Mailの入力が不正です");} elsif ($in_email eq "on2"){ $em = $in{'email'}; &mail_check; if ($mail_ad eq "−"){&error("E-Mailを正しく入力してください");} if ($mail_ad ne "PC"){&error("携帯のE-Mailでは登録できません");} } if (!$mfmailing && $in{'smail'} eq "on2"){ &error("メールフォームは利用できません"); } if (!$in{'name'} || !$in{'yomigana'}){ &error("ハンドルネームか読みがなに記入モレがあります"); } &yomi_check; # 参加形態チェック if ($off1 && $in{'offa'} eq "×" ){$check = 1;} elsif (!$off1){$check = 1} else {$check = 0;} if ($check == 1){ if ($off2 && $in{'offb'} eq "×" ){$check = 1;} elsif (!$off2){$check = 1;} else {$check = 0;} } if ($check == 1){ if ($off3 && $in{'offc'} eq "×" ){$check = 1;} elsif (!$off3){$check = 1;} else {$check = 0;} } if ($check == 1){ if ($off4 && $in{'offd'} eq "×" ){$check = 1;} elsif (!$off4){$check = 1;} else {$check = 0;} } if ($check == 1){ if ($off5 && $in{'offe'} eq "×" ){$check = 1;} elsif (!$off5){$check = 1;} else {$check = 0;} } if ($batsu == 0 && $check == 1){&error("参加形態が全て×(不参加)になっています");} # ロック処理 &lock if ($lockkey); # ログファイル読み込み &logopen; close(IN); # カウントファイルをアップ $top =~ s/\n//; if ($top == 99999) { $top = 1; } else { $top++; } # 二重投稿の禁止 $flag=0; foreach (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/); if ($in{'name'} eq $nm) { &error("同じハンドルネームの方が既に登録されています"); } if ($offa eq "○"){$sanka_a1 = $sanka_a1 + 1;} if ($offb eq "○"){$sanka_b1 = $sanka_b1 + 1;} if ($offc eq "○"){$sanka_c1 = $sanka_c1 + 1;} if ($offd eq "○"){$sanka_d1 = $sanka_d1 + 1;} if ($offe eq "○"){$sanka_e1 = $sanka_e1 + 1;} } # キャンセル待ち処理 $cxlno = $top; $offac = $in{'offa'};$offbc = $in{'offb'};$offcc = $in{'offc'};$offdc = $in{'offd'};$offec = $in{'offe'}; if ($sanka_a1 >= $tei1){if ($in{'offa'} eq "○"){$offa = "●"; $offac = "●";$cxl = 1;} else {$offa = $in{offa};} } else {$offa = $in{offa};} if ($sanka_b1 >= $tei2){if ($in{'offb'} eq "○"){$offb = "●";$offbc = "●"; $cxl = 1;} else {$offb = $in{offb};} } else {$offb = $in{offb};} if ($sanka_c1 >= $tei3){if ($in{'offc'} eq "○"){$offc = "●";$offcc = "●"; $cxl = 1;} else {$offc = $in{offc};} } else {$offc = $in{offc};} if ($sanka_d1 >= $tei4){if ($in{'offd'} eq "○"){$offd = "●";$offdc = "●"; $cxl = 1;} else {$offd = $in{offd};} } else {$offd = $in{offd};} if ($sanka_e1 >= $tei5){if ($in{'offe'} eq "○"){$offe = "●";$offec = "●"; $cxl = 1;} else {$offe = $in{offe};} } else {$offe = $in{offe};} if ($in{'offa'} eq "●"){$cxlf1 = 1;} if ($in{'offb'} eq "●"){$cxlf2 = 1;} if ($in{'offc'} eq "●"){$cxlf3 = 1;} if ($in{'offd'} eq "●"){$cxlf4 = 1;} if ($in{'offe'} eq "●"){$cxlf5 = 1;} # パスワード暗号化 if ($in{'pwd'} ne "") { $ango = &encrypt($in{'pwd'}); } # 時間を取得 $times = time; $date1 = &get_time("$times", "log"); push (@lines,"$in{'offno'}<>$top<>$in{'name'}<>$in{'yomigana'}<>$in{'hp'}<>$in{'email'}<>$in{'smail'}<>$offa<>$offb<>$offc<>$offd<>$offe<>$times<>$times<>$times<>$times<>$times<>$in{'from'}<>$in{'to'}<>$date1<>$times<><>$in{'comment'}<>$in{'hidden_co'}<>0<>$newmark<>$ango<>\n"); # キャンセル解除処理 @new = @lines; &cxl; # ログを更新 unshift(@new5,"$top\n"); open(OUT,">$sfile") || &error("Write Error : $sfile"); print OUT @new5; close(OUT); # メール通知 if ($mailing1 eq "on" && $send == 0) { $msub = "新規"; &mail_to; } if ($mailing4 && $send == 0 && $check == 0) { $msub = "登録"; if($mailing4 eq "on2"){$mailpc = "";$mailmo = "";} elsif($mailing4 eq "on1"){$mailflag = 1;} &mail_to2; } # キャンセル待ち案内表示 if ($cxl == 1 ){&canxel; } # ファイルロック解除 &unlock if ($lockkey); &meibo; } ######### キャンセル待ち案内表示 ############# sub canxel { foreach $line (@new5) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/,$line); if ($cxlno eq $no){ $title = "$offmeisho 只今キャンセル待ちです"; &header; &oshirase; print "
\n"; print "所定の人数を超えているため,キャンセル待ちになります。
\n"; print "キャンセルが出ると,自動で登録順にキャンセルが解除されますので,参加者名簿にて確認してください。
\n"; print "キャンセル待ち順の名簿はこちらでご確認いただけます。
\n"; print "
\n"; print "$nm さんは以下の参加形態で登録されました。

\n"; print "
\n"; print "\n"; print "\n"; if ($off1){ print "\n"; } if ($off2){ print "\n"; } if ($off3){ print "\n"; } if ($off4){ print "\n"; } if ($off5){ print "\n"; } print "\n"; print "\n"; if ($off1){ print "\n"; } if ($off2){ print "\n"; } if ($off3){ print "\n"; } if ($off4){ print "\n"; } if ($off5){ print "\n"; } print "
$off1$off2$off3$off4$off5
$offa$offb$offc$offd$offe
\n"; print "

\n"; print "○:参加 ●:参加(キャンセル待ち) 仮:仮参加 ×:不参加
\n"; print "

\n"; &footer; } } # ファイルロック解除 &unlock if ($lockkey); exit; } ################ 名簿表示 #################### sub meibo { # 時間を取得 $times = time; if ($krnew == 1 || $krnew == 2){$kjun = "登録/更新";} elsif ($krnew == 0){$kjun = "新規登録";} #オフ基本設定読み込み &kihon; # ロック処理 &lock if ($lockkey); # 参加人数取得 &sanka; # 名簿の並び順 if ($shoki == 1 && !$in{'entry'}){ if ($mshoki == 0){$jun = "kana";} elsif ($mshoki == 1){$jun = "new";} } if ($mode eq "kana_sort" || $in{'entry'} eq "kana"){$jun = "kana";} elsif ($mode eq "new_sort" || $in{'entry'} eq "new"){$jun = "new";} if ($jun eq "kana"){$title = "$offmeisho 参加者名簿:50音順";} elsif ($jun eq "new"){$title = "$offmeisho 参加者名簿:登録日時順";} &header; &oshirase; print "
\n"; print "○:参加 ●:参加(キャンセル待ち) 仮:仮参加 ×:不参加\n"; if($total == 1){print " 総計:○●仮×計\n";} if($total == 2){print " 総計:○●仮計\n";} print "\n"; print "
\n"; print "\n"; print "\n"; if ($total){print " \n \n";} else{print " \n \n";} if ($off1){ print " \n"; } if ($off2){ print " \n"; } if ($off3){ print " \n"; } if ($off4){ print " \n"; } if ($off5){ print " \n"; } if ($total){ if ($welcome eq "on"){print " \n";} else{print " \n";} } else{ if ($welcome eq "on"){print " \n";} else{print " \n";} } print "\n"; print " \n"; if ($off1) { print " \n"; } if ($off2) { print " \n"; } if ($off3) { print " \n"; } if ($off4) { print " \n"; } if ($off5) { print " \n"; } print "\n"; if ($total != 0){ $sanka_a4 = 0; $sanka_b4 = 0; $sanka_c4 = 0; $sanka_d4 = 0; $sanka_e4 = 0; $sanka_a4 = $sanka_a1 + $sanka_a2; $sanka_b4 = $sanka_b1 + $sanka_b2; $sanka_c4 = $sanka_c1 + $sanka_c2; $sanka_d4 = $sanka_d1 + $sanka_d2; $sanka_e4 = $sanka_e1 + $sanka_e2; if ($total == 1){ $sanka_a4 = $sanka_a3 + $sanka_a4; $sanka_b4 = $sanka_b3 + $sanka_b4; $sanka_c4 = $sanka_c3 + $sanka_c4; $sanka_d4 = $sanka_d3 + $sanka_d4; $sanka_e4 = $sanka_e3 + $sanka_e4; } print "\n"; print " \n"; if ($off1) { print " \n"; } if ($off2) { print " \n"; } if ($off3) { print " \n"; } if ($off4) { print " \n"; } if ($off5) { print " \n"; } print "\n"; } print "\n"; if ($jun eq "kana") {print "\n";} elsif ($jun eq "new"){print "\n";} print "\n"; print "\n"; print "\n"; print "\n"; if ($off1){ print " \n"; } if ($off2){ print " \n"; } if ($off3){ print " \n"; } if ($off4){ print " \n"; } if ($off5){ print " \n"; } print " \n"; if ($welcome eq "on"){print " \n";} print " \n"; print " \n"; if ($jun eq "kana") { $kanaf1 = ""; $kanaf2 = ""; $kanaf3 = ""; $kanaf4 = ""; $kanaf5 = ""; $kanaf6 = ""; $kanaf7 = ""; $kanaf8 = ""; $kanaf9 = ""; $kanaf10 = ""; $kana = ""; $la = "ぁ"; $ka = "か"; $sa = "さ"; $ta = "た"; $na = "な"; $ha = "は"; $ma = "ま"; $ya = "や"; $ra = "ら"; $wa = "わ"; # 50音順で登録 @tmp = (); @tmp = map {(split /<>/)[3]} @lines; @lines = @lines[sort {$tmp[$a] cmp $tmp[$b]} 0 .. $#tmp]; } $co_length = $co_length * 2; foreach $line (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/,$line); if ($jun eq "kana") { # ○行調査 if ($kanaf1 == 1){$kana = "
";} else {if ($ym ge $la){$kana = "あ"; $kanaf1 = 1;}} if ($kanaf2 == 1){$kana = "
";} else {if ($ym ge $ka){$kana = "か"; $kanaf2 = 1;}} if ($kanaf3 == 1){$kana = "
";} else {if ($ym ge $sa){$kana = "さ"; $kanaf3 = 1;}} if ($kanaf4 == 1){$kana = "
";} else {if ($ym ge $ta){$kana = "た"; $kanaf4 = 1;}} if ($kanaf5 == 1){$kana = "
";} else {if ($ym ge $na){$kana = "な"; $kanaf5 = 1;}} if ($kanaf6 == 1){$kana = "
";} else {if ($ym ge $ha){$kana = "は"; $kanaf6 = 1;}} if ($kanaf7 == 1){$kana = "
";} else {if ($ym ge $ma){$kana = "ま"; $kanaf7 = 1;}} if ($kanaf8 == 1){$kana = "
";} else {if ($ym ge $ya){$kana = "や"; $kanaf8 = 1;}} if ($kanaf9 == 1){$kana = "
";} else {if ($ym ge $ra){$kana = "ら"; $kanaf9 = 1;}} if ($kanaf10 == 1){$kana = "
";} else {if ($ym ge $wa){$kana = "わ"; $kanaf10 = 1;}} } # 所定時間以内の登録/更新は[NEWマーク]表示 if (($times - $tim) > $new_time*3600) { $newsign = ""; } else { $newsign = "$new"; } $co1 = $co; $co1 =~ s/
/\r/g; $co =~ s/
/ /g; $co =~ s//>/g; $nm =~ s//>/g; if (length($co) > $co_length) { $co = substr($co,0,$co_length); if ($co =~ /\x8F$/ or $co =~ tr/\x8E\xA1-\xFE// % 2) { $co_length = $co_length - 1; $co = substr($co,0,$co_length); } $co .= '・・・'; } # メールアドレス収集ソフト対策 $em =~ s/\@/@/g; if (!$offa){$offa = "
";} if (!$offb){$offb = "
";} if (!$offc){$offc = "
";} if (!$offd){$offd = "
";} if (!$offe){$offe = "
";} $data_no = $data_no + 1; $dc = $data_no % 2; if ($dc == 0){$d_color = $wscolor;} else {$d_color = $wcolor;} print "\n"; if ($jun eq "kana") {print "\n";} elsif ($jun eq "new"){print "\n";} print "\n"; print "\n"; if ($smail eq "off" && $em) {print "\n";} elsif ($mfmailing eq "on" && $smail eq "on2" && $em && $send == 0) {print "\n";} else {print "\n";} if (!$hp){print "\n";} else {print "\n";} if ($off1){ print "\n";} if ($off2){ print "\n";} if ($off3){ print "\n"; } if ($off4){ print "\n"; } if ($off5){ print "\n"; } if ($co eq "") { print " \n"; } else { print "\n"; } if ($welcome eq "on"){print " \n"; } if (!$fr && !$to && !$biko) { print " \n"; } elsif (!$fr && !$to) { print " \n"; } elsif (!$fr && $to) { print " \n"; } elsif ($fr && !$to) { print " \n"; } elsif ($fr && $to) { print " \n"; } print "\n"; } print "

○計
○計$sanka_a1$sanka_b1$sanka_c1$sanka_d1$sanka_e1



●仮計$sanka_a2$sanka_b2$sanka_c2$sanka_d2$sanka_e2
総計$sanka_a4$sanka_b4$sanka_c4$sanka_d4$sanka_e4

No.ハンドルネーム変更MailHP$off1$off2$off3$off4$off5一 言WM備考登録/更新日時
$kana$data_no$nm変更MailMail

HP$offa$offb$offc$offd$offe
$co$wm
$biko早退=$to $biko遅刻=$fr $biko遅刻=$fr,早退=$to $biko$date$newsign
\n"; print "
\n"; # メールアドレス収集ソフト対策 $kanjiem =~ s/\@/@/g; if ($jun eq "kana"){ print "\n"; } &footer; # ロック解除 &unlock if ($lockkey); exit; } ############ 印刷用名簿を表示 ################ sub print { &kihon; # ロック処理 &lock if ($lockkey); # 参加人数取得 &sanka; $title = "$offmeisho 印刷用簡易名簿"; &header; print "
○:参加 ●:参加(キャンセル待ち) 仮:仮参加 ×:不参加\n"; if($total == 1){print " 総計:○●仮×計\n";} if($total == 2){print " 総計:○●仮計\n";} print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print " \n"; if ($off1){print " \n"; } if ($off2){print " \n"; } if ($off3){print " \n"; } if ($off4){print " \n"; } if ($off5){print " \n"; } if ($total){print " \n";} else{print " \n";} print "\n"; print " \n"; if ($off1){ print " \n"; } if ($off2){ print " \n"; } if ($off3){ print " \n"; } if ($off4){ print " \n"; } if ($off5){ print " \n"; } print "\n"; if ($total == 1){ print "\n"; print " \n"; if ($off1) { print " \n"; } if ($off2) { print " \n"; } if ($off3) { print " \n"; } if ($off4) { print " \n"; } if ($off5) { print " \n"; } print "\n"; } if ($total == 2){ print "\n"; print " \n"; if ($off1) { print " \n"; } if ($off2) { print " \n"; } if ($off3) { print " \n"; } if ($off4) { print " \n"; } if ($off5) { print " \n"; } print "\n"; } print "\n"; if ($mode eq "print"){print "\n";} elsif ($mode eq "print2"){print "\n"; if ($off1){ print " \n"; } if ($off2){ print " \n"; } if ($off3){ print " \n"; } if ($off4){ print " \n"; } if ($off5){ print " \n"; } print " \n"; if ($mode eq "print"){ $kanaf1 = ""; $kanaf2 = ""; $kanaf3 = ""; $kanaf4 = ""; $kanaf5 = ""; $kanaf6 = ""; $kanaf7 = ""; $kanaf8 = ""; $kanaf9 = ""; $kanaf10 = ""; $kana = ""; $la = "ぁ"; $ka = "か"; $sa = "さ"; $ta = "た"; $na = "な"; $ha = "は"; $ma = "ま"; $ya = "や"; $ra = "ら"; $wa = "わ"; # 50音順にソート @tmp = (); @tmp = map {(split /<>/)[3]} @lines; @lines = @lines[sort {$tmp[$a] cmp $tmp[$b]} 0 .. $#tmp]; } foreach $line (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/,$line); if($mode eq "print"){ if ($kanaf1 == 1){$kana = "
";} else {if ($ym ge $la){$kana = "あ"; $kanaf1 = 1;}} if ($kanaf2 == 1){$kana = "
";} else {if ($ym ge $ka){$kana = "か"; $kanaf2 = 1;}} if ($kanaf3 == 1){$kana = "
";} else {if ($ym ge $sa){$kana = "さ"; $kanaf3 = 1;}} if ($kanaf4 == 1){$kana = "
";} else {if ($ym ge $ta){$kana = "た"; $kanaf4 = 1;}} if ($kanaf5 == 1){$kana = "
";} else {if ($ym ge $na){$kana = "な"; $kanaf5 = 1;}} if ($kanaf6 == 1){$kana = "
";} else {if ($ym ge $ha){$kana = "は"; $kanaf6 = 1;}} if ($kanaf7 == 1){$kana = "
";} else {if ($ym ge $ma){$kana = "ま"; $kanaf7 = 1;}} if ($kanaf8 == 1){$kana = "
";} else {if ($ym ge $ya){$kana = "や"; $kanaf8 = 1;}} if ($kanaf9 == 1){$kana = "
";} else {if ($ym ge $ra){$kana = "ら"; $kanaf9 = 1;}} if ($kanaf10 == 1){$kana = "
";} else {if ($ym ge $wa){$kana = "わ"; $kanaf10 = 1;}} } elsif($mode eq "print2"){$data_no = $data_no + 1;} $nm =~ s//>/g; if (!$offa){$offa = "
";} if (!$offb){$offb = "
";} if (!$offc){$offc = "
";} if (!$offd){$offd = "
";} if (!$offe){$offe = "
";} print "\n"; if ($mode eq "print"){print "\n";} elsif ($mode eq "print2"){print "\n";} print "\n"; if ($off1) { print "\n"; } if ($off2) { print "\n"; } if ($off3) { print "\n"; } if ($off4) { print "\n"; } if ($off5) { print "\n"; } if (!$fr && !$to && !$biko) { print " \n"; } elsif (!$fr && !$to) { print " \n"; } elsif (!$fr && $to) { print " \n"; } elsif ($fr && !$to) { print " \n"; } elsif ($fr && $to) { print " \n"; } } print "
○計$sanka_a1$sanka_b1$sanka_c1$sanka_d1$sanka_e1

●仮計$sanka_a2$sanka_b2$sanka_c2$sanka_d2$sanka_e2
総計$sanka_a3$sanka_b3$sanka_c3$sanka_d3$sanka_e3
総計$sanka_a4$sanka_b4$sanka_c4$sanka_d4$sanka_e4

No.\n";} print " ハンドルネーム$off1$off2$off3$off4$off5備考
$kana$data_no$nm$offa$offb$offc$offd$offe
$biko早退=$to $biko遅刻=$fr $biko遅刻=$fr,早退=$to $biko
\n"; print "
\n"; &footer; # ロック解除 &unlock if ($lockkey); exit; } ######## キャンセル待ち名簿を表示 ############ sub wait { &kihon; # ロック処理 &lock if ($lockkey); # ログを開く &logopen; $title = "$offmeisho キャンセル待ち者名簿"; &header; &oshirase; print "
\n"; print "キャンセルが出ると,下記の順番でキャンセル待ちが解除されます\n"; print "

\n"; print "\n"; if ($off1){ print "\n"; } if ($off2){ print "\n"; } if ($off3) { print "\n"; } if ($off4) { print "\n"; } if ($off5) { print "\n"; } print "\n"; print "
\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print " \n"; print " \n"; @tmp = (); @tmp = map {(split /<>/)[12]} @lines; @lines = @lines[sort {$tmp[$a] <=> $tmp[$b]} 0 .. $#tmp]; foreach (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/); if ($offa eq "●"){ $nm =~ s//>/g; print "\n"; $wait1_no = $wait1_no + 1; print "\n"; print "\n"; print "\n"; } } print "
No.$off1
$wait1_no$nm
\n"; print "
\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print " \n"; print " \n"; @tmp = (); @tmp = map {(split /<>/)[13]} @lines; @lines = @lines[sort {$tmp[$a] <=> $tmp[$b]} 0 .. $#tmp]; foreach (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/); if ($offb eq "●"){ $nm =~ s//>/g; print "\n"; $wait2_no = $wait2_no + 1; print "\n"; print "\n"; print "\n"; } } print "
No.$off2
$wait2_no$nm
\n"; print "
\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print " \n"; print " \n"; @tmp = (); @tmp = map {(split /<>/)[14]} @lines; @lines = @lines[sort {$tmp[$a] <=> $tmp[$b]} 0 .. $#tmp]; foreach (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/); if ($offc eq "●"){ $nm =~ s//>/g; print "\n"; $wait3_no = $wait3_no + 1; print "\n"; print "\n"; print "\n"; } } print "
No.$off3
$wait3_no$nm
\n"; print "
\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print " \n"; print " \n"; @tmp = (); @tmp = map {(split /<>/)[15]} @lines; @lines = @lines[sort {$tmp[$a] <=> $tmp[$b]} 0 .. $#tmp]; foreach (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/); if ($offd eq "●"){ $nm =~ s//>/g; print "\n"; $wait4_no = $wait4_no + 1; print "\n"; print "\n"; print "\n"; } } print "
No.$off4
$wait4_no$nm
\n"; print "
\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print " \n"; print " \n"; @tmp = (); @tmp = map {(split /<>/)[16]} @lines; @lines = @lines[sort {$tmp[$a] <=> $tmp[$b]} 0 .. $#tmp]; foreach (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/); if ($offe eq "●"){ $nm =~ s//>/g; print "\n"; $wait5_no = $wait5_no + 1; print "\n"; print "\n"; print "\n"; } } print "
No.$off5
$wait5_no$nm
\n"; print "
\n"; &footer; # ロック解除 &unlock if ($lockkey); exit; } ############## 記事編集画面 ################## sub edit1 { &kihon; # ロック開始 &lock if ($lockkey); # 参加人数取得 &sanka; $flag=0; foreach $line (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/,$line); if ($in{'no'} eq "$no") {$flag=1; last; } } if ($flag == 0) { &error("編集対象記事が見当たりません"); } $co =~ s/
/\r/g; # メールアドレス収集ソフト対策 $em =~ s/\@/@/g; if ($smail eq "off"){$check1 = " checked";} if ($smail eq "on"){$check2 = " checked";} if ($smail eq "on2" && $send == 0){$check3 = " checked";} elsif ($smail eq "on2" && $send != 0){$check2 = " checked";} if (!$mfmailing && $smail eq "on2"){$check2 = "checked";} # 編集フォームを出力 $title = "$offmeisho 仮取り・出欠変更フォーム"; &header; &oshirase; print "
\n"; print "■変更したい部分のみ修正 ⇒ パスワード入力 ⇒ [仮取り/出欠変更]ボタンクリック
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; if ($mshoki == 0){print "\n";} elsif ($mshoki == 1){print "\n";} print "ハンドルネーム: (読み[全角ひらがな]:)
\n"; print "
\n"; if ($smail eq "on" || $smail eq "on2") {print "メールアドレス:(非公開) 公開 非公開\n"; if ($mfmailing eq "on"){print " 非公開&メールフォーム利用\n";} } else {print "メールアドレス: 公開 非公開\n"; if ($mfmailing eq "on" && $send == 0){print " 非公開&メールフォーム利用\n";} } print "
\n"; if ($in_email eq "off"){print "※オフ連絡メールを送信する必要があるので,初参加の方やアドレスを変更された方は必ずご記入ください。
\n";} elsif ($in_email eq "on1"){print "※メールアドレスの入力は必須です。
\n";} elsif ($in_email eq "on2"){print "※メールアドレスの入力は必須です。なお、携帯アドレスでは登録できません。
\n";} print "※非公開にチェックすると,幹事/管理人以外にはアドレスが知られません
\n"; print "※非公開のメールアドレスを変更するときは,いったん公開に変更した後,再度変更作業を行ってください。
\n"; if ($mfmailing eq "on" && $send == 0){print "※メールフォームを利用すると,相手にメールアドレスを知られることなくメールを受け取ることができます
\n";} print "
\n"; print "ホームページ:
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; if ($off1){ print "\n"; } if ($off2) { print "\n"; } if ($off3) { print "\n"; } if ($off4) { print "\n"; } if ($off5) { print "\n"; } print "\n"; print "\n"; print "\n"; print "
参加
形態
 $off1:
\n"; print "
$off2:
\n"; print "
$off3:
\n"; print "
$off4:
\n"; print "
$off5:
\n"; print "
 ・遅刻(登場時刻)から
\n"; print "・早退(退出時刻)まで
\n"; print "※参加の意志はあるが,参加できるかどうかわからない場合は,「仮参加」で登録してください。参加か不参加かが確定したら,変更フォームで登録内容を修正してください。
\n"; if ($cxlh1 || $cxlh2 || $cxlh3 || $cxlh4 || $cxlh5){ print "※ただいま,$cxlh1$cxlh2$cxlh3$cxlh4$cxlh5は定員超過のため,キャンセル待ちとなります。キャンセルが発生すると,「●参加」での登録が早い方から自動でキャンセル待ちが解除されます。
\n"; } print "
\n"; print "オフに向けて一言どうぞ:
\n"; print "

\n"; print "パスワード\n"; print " \n"; print "
\n"; &footer; # ファイルロック解除 &unlock if ($lockkey); exit; } ############## 記事編集処理 ################## sub edit2 { # POST限定 if ($MethPost && !$post_flag) { &error("不正なアクセスです"); } &kihon; # フォームチェック if ($in{'email'} && !$in{'smail'}){ &error("メールアドレスの公開/非公開を選択してください"); } if (!$mfmailing && $in{'smail'} eq "on2"){ &error("メールフォームは利用できません"); } if ($send != 0 && $in{'smail'} eq "on2"){ &error("メールフォームは利用できません"); } if (!$in{'name'} || !$in{'yomigana'}){ &error("ハンドルネームか読みがなに記入モレがあります"); } &yomi_check; if ($in{'pwd'} eq "") {&error("パスワードが入力されていません");} # ロック処理 &lock if ($lockkey); # 時間を取得 $times = time; $date1 = &get_time("$times", "log"); # 参加人数取得 &sanka; $cxlf=0; $flag=0; @new=(); $offac = $in{'offa'};$offbc = $in{'offb'};$offcc = $in{'offc'};$offdc = $in{'offd'};$offec = $in{'offe'}; foreach $line (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/,$line); # 二重投稿の禁止 if ($in{'no'} ne $no && $in{'name'} eq $nm) { &error("同じハンドルネームの方が既に登録されています");} if ($in{'name'} eq $nm && $in{'yomigana'} eq $ym && $in{'offa'} eq $offa && $in{'offb'} eq $offb && $in{'offc'} eq $offc && $in{'offd'} eq $offd && $in{'offe'} eq $offe && $in{'from'} eq $fr && $in{'to'} eq $to && $in{'email'} eq $em && $in{'smail'} eq $smail && $in{'hp'} eq $hp && $in{'comment'} eq $co){ &error("変更したい箇所を入力しなおしてください");} # パスワード照合 if ($in{'no'} eq "$no") { if (!$ango) { &error("パスワードが設定されていません"); } $match = &decrypt("$in{'pwd'}", "$ango"); if ($match ne "yes") {&error("パスワードが違います");} if ($krnew == 1 || $krnew == 2) {$tim = $tim1; $new = $renewmark;} if ($off1 && $offa eq "×" ){$check = 1;} elsif (!$off1){$check = 1;} else {$check = 0;} if ($check == 1){ if ($off2 && $offb eq "×" ){$check = 1;} elsif (!$off2){$check = 1;} else {$check = 0;} } if ($check == 1){ if ($off3 && $offc eq "×" ){$check = 1;} elsif (!$off3){$check = 1;} else {$check = 0;} } if ($check == 1){ if ($off4 && $offd eq "×" ){$check = 1;} elsif (!$off4){$check = 1;} else {$check = 0;} } if ($check == 1){ if ($off5 && $offe eq "×" ){$check = 1;} elsif (!$off5){$check = 1;} else {$check = 0;} } # キャンセル待ちチェック if ($off1 && $offa ne $in{'offa'}) { $offat = $times; if ($offa eq "○" || $in{'offa'} eq "●"){ $cxlf1 = 1;} if ($sanka_a1 >= $tei1 && $in{'offa'} eq "○"){$offa = "●";$offac = "●";$cxlf0 = 1; $cxlno = $no;} else {$offa = $in{'offa'};} } else {$offa = $in{'offa'};} if ($off2 && $offb ne $in{'offb'}) { $offbt = $times; if ($offb eq "○" || $in{'offb'} eq "●"){ $cxlf2 = 1;} if ($sanka_b1 >= $tei2 && $in{'offb'} eq "○"){$offb = "●";$offbc = "●";$cxlf0 = 2; $cxlno = $no;} else {$offb = $in{'offb'};} } else {$offb = $in{'offb'};} if ($off3 && $offc ne $in{'offc'}) { $offct = $times; if ($offc eq "○" || $in{'offc'} eq "●"){ $cxlf3 = 1;} if ($sanka_c1 >= $tei3 && $in{'offc'} eq "○"){$offc = "●";$offcc = "●";$cxlf0 = 3; $cxlno = $no;} else {$offc = $in{'offc'};} } else {$offc = $in{'offc'};} if ($off4 && $offd ne $in{'offd'}) { $offdt = $times; if ($offd eq "○" || $in{'offd'} eq "●"){ $cxlf4 = 1;} if ($sanka_d1 >= $tei4 && $in{'offd'} eq "○"){$offd = "●";$offdc = "●";$cxlf0 = 4; $cxlno = $no;} else {$offd = $in{'offd'};} } else {$offd = $in{'offd'};} if ($off5 && $offe ne $in{'offe'}) { $offet = $times; if ($offe eq "○" || $in{'offe'} eq "●"){ $cxlf5 = 1;} if ($sanka_e1 >= $tei5 && $in{'offe'} eq "○"){$offe = "●";$offec = "●";$cxlf0 = 5; $cxlno = $no;} else {$offe = $in{'offe'};} } else {$offe = $in{'offe'};} if ( $smail eq "on" || $smail eq "on2"){ $em2 = $em; } else {$em2 = $in{'email'};} if (!$em2 && $in{'smail'} eq "on2"){ &error("メールアドレスを入力してください"); } if ($in{'smail'} eq "on2" && $em2 !~ /[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,3}/){ &error("E-Mailの入力が不正です"); } if ($in_email eq "on1" && $em2 !~ /[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,3}/){ &error("E-Mailの入力が不正です"); } if ($in_email eq "on1" && !$em2 ){if (!$smail || $smail eq "off"){ &error("E-Mailを入力してください"); }} elsif ($in_email eq "on2"){ &mail_check; if ($mail_ad eq "−"){&error("E-Mailを正しく入力してください");} elsif ($mail_ad ne "PC"){&error("携帯のE-Mailでは登録できません");} } $flag=1; #added by Mak.K←ありがとですm(__)m $line = "$offno<>$no<>$in{'name'}<>$in{'yomigana'}<>$in{'hp'}<>$em2<>$in{'smail'}<>$offa<>$offb<>$offc<>$offd<>$offe<>$offat<>$offbt<>$offct<>$offdt<>$offet<>$in{'from'}<>$in{'to'}<>$date1<>$times<>$biko<>$in{'comment'}<>$hidden_co<>$wm<>$new<>$ango<>\n"; ## } push(@new,$line); } if ($flag == 0) { &error("編集対象記事が見当たりません"); } # メール通知 if ($mailing2 eq "on" && $send == 0) { $in{'email'} = $em2; $msub = "変更"; &mail_to; } if ($check == 1 && $mailing4 && $send == 0){ $in{'email'} = $em2; $msub = "登録"; if($mailing4 eq "on2"){$mailpc = "";$mailmo = "";} elsif($mailing4 eq "on1"){$mailflag = 1;} &mail_to2; } elsif ($mailing5 && $send == 0) { $in{'email'} = $em2; $msub = "変更"; if($mailing5 eq "on2"){$mailpc = "";$mailmo = "";} elsif($mailing5 eq "on1"){$mailflag = 1;} &mail_to2; } # キャンセル解除処理 &cxl; # ログを更新 unshift(@new5,$top); open(OUT,">$sfile") || &error("Write Error : $sfile"); print OUT @new5; close(OUT); # メール通知 if ($send == 0 && @can) { if ($mailing3 eq "on" || $mailing6){ $msub = "解除"; @can = sort { $a <=> $b } @can; $can_check = "a"; foreach $can (@can) { chomp; foreach $line (@cxl_mail) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/,$line); if ($can ne "$can_check" && $can == $no){ $can_check = $can; $in{'name'} = "$nm"; $in{'yomigana'} = "$ym"; $in{'email'} = "$em"; $in{'hp'} = "$hp"; $in{'offa'} = "$offa"; $in{'offb'} = "$offb"; $in{'offc'} = "$offc"; $in{'offd'} = "$offd"; $in{'offe'} = "$offe"; $in{'from'} = "$fr"; $in{'to'} = "$to"; $in{'comment'} = "$co"; $in{'hidden_co'} = "$hidden_co"; $in{'biko'} = "$biko"; if ($mailing3 eq "on"){&mail_to;} if ($mailing6){ if($mailing6 eq "on2"){$mailpc = "";$mailmo = "";} elsif($mailing6 eq "on1"){$mailflag = 1;} &mail_to2; } } } } } } # キャンセル待ち案内 if ($cxlf0 >= 1){&canxel;} # ファイルロック解除 &unlock if ($lockkey); # 初期画面に戻る &meibo; } ########### ウェルカム書き込み ############### sub wel_edit{ # POST限定 if ($MethPost && !$post_flag) { &error("不正なアクセスです"); } # フォームチェック if (!$in{'wel_nm'}){ &error("名前を入力してください"); } if (!$in{'comment'}){ &error("メッセージを入力してください"); } $welmessage=length($in{'wel_mes'}); if ($wel_mesle < $welmessage){ &error("メール本文は半角$wel_mesle字以内にしてください"); } # ロック開始 &lock if ($lockkey); # ログファイル読み込み $welfile = $dir . 'wel' . $in{'offno'} . '.log'; open(LIST,"$welfile") || &error("Can't open $welfile"); @list = ; close(LIST); # 二重投稿の禁止 $flag=0; $top = shift(@list); chomp $top; foreach (@list) { ($no,$tim,$welno,$date,$nm,$mes) = split(/<>/); if ($in{'wel_nm'} eq $nm && $in{'comment'} eq $mes && $no eq $in{'no'}) { &error("二重投稿はできません"); } } # 時間を取得 $times = time; $date = &get_time("$times", "log"); unshift (@list,"$in{'no'}<>$times<>$top<>$date<>$in{'wel_nm'}<>$in{'comment'}<>\n"); # 古い生記事を削除 @tmp1 = @tmp2 = (); foreach (@list) { my ($first, $second) = split /<>/; push(@tmp1, $first); push(@tmp2, $second); } @list = @list[sort {$tmp1[$a] cmp $tmp1[$b] or $tmp2[$b] cmp $tmp2[$a]} 0 .. $#tmp1]; foreach $line (@list) { ($no,$tim,$welno,$date,$nm,$mes) = split(/<>/,$line); chomp; if ($no eq $no_check){ $ono = $ono + 1; if ($ono <= $max){$line = "$no<>$tim<>$welno<>$date<>$nm<>$mes<>\n";} else {$line = "";} } else {$no_check = $no;$ono = 1;} push(@new,$line); } $top = $top + 1; unshift (@new,"$top\n"); # ログを更新 open(OUT,">$welfile") || &error("Write Error : $welfile"); print OUT @new; close(OUT); @new = (); &logopen; foreach $line (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/,$line); if ($in{'no'} == $no){ $wm = $wm + 1 ; $line ="$offno<>$no<>$nm<>$ym<>$hp<>$em<>$smail<>$offa<>$offb<>$offc<>$offd<>$offe<>$offat<>$offbt<>$offct<>$offdt<>$offet<>$fr<>$to<>$date<>$tim<>$biko<>$co<>$hidden_co<>$wm<>$new<>$ango<>\n"; } push (@new,"$line"); } unshift (@new,"$top"); # ログを更新 open(OUT,">$sfile") || &error("Write Error : $sfile"); print OUT @new; close(OUT); # ファイルロック解除 &unlock if ($lockkey); &welcome; } ############# メールフォーム ################# sub mf { &kihon; if ($mfmailing ne "on" || $send != 0){&error("メールフォームはお使いいただけません");} # ロック開始 &lock if ($lockkey); # ログを開く &logopen; $flag=0; foreach $line (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/,$line); if ($in{'no'} eq "$no") {$flag=1; last;} } if ($flag == 0) { &error("対象者が見当たりません"); } if ($flag == 1 && $smail ne "on2") { &error("メールフォームはご利用いただけません"); } $title = "$offmeisho メールフォーム"; &header; &oshirase; print "
\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "$nm さんへメールを送ります
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
あなたのお名前:
あなたのE-MAIL:
メールのタイトル:
\n"; print "同じメールを自分も受け取る\n"; print "
\n"; print "
\n"; print "本文:
\n"; print "
\n"; print "
\n"; print "
\n"; print "
\n"; &footer; # ファイルロック解除 &unlock if ($lockkey); exit; } ########### メールフォーム送信 ############### sub mf2 { # POST限定 if ($MethPost && !$post_flag) { &error("不正なアクセスです"); } &kihon; if ($mfmailing ne "on" || $send != 0){&error("メールフォームはお使いいただけません");} $times = time; $date1 = &get_time($times); # フォームチェック if (!$in{'name_from'} || !$in{'em_from'} || !$in{'sub'}){ &error("あなたのお名前・E-MAIL・タイトルのいずれかに記入モレがあります"); } if ($in{'em_from'} !~ /[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,3}/){ &error("E-Mailの入力が不正です"); } if (!$in{'m_body'}){ &error("メール本文が入力されていません"); } $mb_bodyle=length($in{'m_body'}); if ($mb_bodyle > $mail_length){ &error("メール本文は半角$mail_length字以内にしてください"); } $m_sub = length($in{'sub'}); if ($m_sub > $masub_length){ &error("メールタイトルは半角$masub_length字以内にしてください"); } # ロック開始 &lock if ($lockkey); # ログを開く &logopen; $flag=0; foreach $line (@lines) { ($offno,$no,$nm,$ym,$hp,$em,$smail,$offa,$offb,$offc,$offd,$offe,$offat,$offbt,$offct,$offdt,$offet,$fr,$to,$date,$tim,$biko,$co,$hidden_co,$wm,$new,$ango) = split(/<>/,$line); if ($in{'no'} eq "$no") { $flag=1; last;} } if ($flag == 0) { &error("対象者が見当たりません"); } if ($flag == 1 && $smail ne "on2") { &error("メールフォームをご利用いただけません"); } # メールタイトル $MailSub = "$in{'sub'}"; # メール本文のタグ・改行を復元 $message = $in{'m_body'}; $message =~ s/<//g; $message =~ s/&/&/g; $message =~ s/
/\n/g; # メール本文 $MailBody = <<"EOM"; ------------------------------------------------------------------ ★ このメールは$offmeishoメールフォームを利用して送信されました ★ タイトル:$MailSub 送信時間:$date1 受 信 者:$nm さん 送 信 者:$in{'name_from'} さん 送信者E-Mail:$in{'em_from'} ===本文=== $message ======== ------------------------------------------------------------------ EOM &jcode'convert(*MailSub,'jis'); &jcode'convert(*MailBody,'jis'); open(MAIL,"| $sendmail -t") || &error("メール送信に失敗しました"); if ($in{'mfbcc'} eq "on"){ print MAIL "To: $em\n"; print MAIL "Bcc:$in{'em_from'} \n"; } else{print MAIL "To: $em\n"; } print MAIL "From: $in{'em_from'}\n"; print MAIL "Subject: $MailSub\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: OffMeiboKanri\n\n"; print MAIL "$MailBody\n"; close(MAIL); $title = "$offmeisho メールフォーム"; &header; print "



\n"; print "メール送信しました\n"; print "


\n"; &footer; # ファイルロック解除 &unlock if ($lockkey); exit; } ############ 幹事室入室画面 ################ sub enter { &kihon; $title = "$offmeisho幹事室$in{'offno'}"; &header; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print ""; print ""; print "\n"; print ""; print "
パスワード種別:
作業内容:\n"; print "
パスワード:
\n"; print "
\n"; &footer; exit; } ############ 管理人室入室画面 ################ sub admin { $title = "管理人室"; &header; print "

管理者パスワードを入力してください

\n"; print "
\n"; print "\n"; print " "; print "\n"; print "
\n"; &footer; exit; } ############## お知らせ表示 ################## sub oshirase { if ($kinkyu){ $kinkyu =~ s/([^=^\"]|^)(http\:\/\/[\w\.\~\-\/\?\&\=\;\#\:\%\+]+)/$1$2<\/a>/g; print "
\n"; print "
\n"; print "
$kinkyu
\n"; print "
\n"; } if ($closed == 1){ $shimecom =~ s/([^=^\"]|^)(http\:\/\/[\w\.\~\-\/\?\&\=\;\#\:\%\+]+)/$1
$2<\/a>/g; print "
\n"; print "
\n"; print "
$shimecom
\n"; print "
\n"; } }