#┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃■(SS)C−BOARDライブラリ(とほほ改1.0.00) #┠────────────────────────────────────── #┃メンバー管理の関数が含まれています。 #┃ #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ package MEMBER; #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ メンバーログイン画面表示 #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub login { $::FLAG{'noindex'} = 1; #強制 &BASE::head2('mlg'); print <<"__HTML__";
ログイン
名前:
パスワード:
→メンバー登録
__HTML__ &BASE::foot2('mlg'); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ クッキー書き込み #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub write { #── ジャンプ &BASE::location("$CNF::place{'this'}{'url'}?id=$::FORM{'id'}", {name => $CNF::cookie{'name'}, value => {name => $::FORM{'name'}, key => $::FORM{'key'}}, expire => $CNF::cookie{'expire'}}); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ メンバー申し込み画面表示 #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub input { #($CNF::mail{'mode'} != 2) or exit; #$CNF::member{'mail'}{'mode'} or exit; if ( $CNF::member{'mail'}{'mode'} != 1 ) { &::error(\'新規メンバーのメール認証は停止中です。'); exit; } elsif ( $CNF::mail{'mode'} == 2 ) { &::error(\'メール送信が設定されていません。'); exit; } #投稿時間キー生成 require './app/cmd/post.pl'; my $r_timekey = &POST::make_timekey($CNF::antispam{'timekey'}{'idseed'}); &BASE::head2('mbn'); print <<"__HTML__";
【メンバー登録】
ここからメンバー登録を行えます。たった2ステップで登録できるのでぜひどうぞ。
・ステップ1
掲示板で使用する「名前」、「パスワード」とあなたのメールアドレスを記入して送信ボタンを押してください。しばらくすると記入したメールアドレスに確認のメールが届きます。
名前(ニックネーム)
  ※半角英数
パスワード
  ※半角英数
メールアドレス
  
メールアドレス(確認)
  
・ステップ2
確認メールに記載してある「確認コード」を記入して送信ボタンを押してください。
確認コード
  
__HTML__ &BASE::foot2('mbn'); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ 登録 #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub regist { require './app/lib/file/mmi.pl'; require './app/lib/file/mmb.pl'; #($CNF::mail{'mode'} != 2) or exit; #$CNF::member{'mail'}{'mode'} or exit; if ( $CNF::member{'mail'}{'mode'} != 1 ) { &::error(\'新規メンバーのメール認証は停止中です。'); exit; } elsif ( $CNF::mail{'mode'} == 2 ) { &::error(\'メール送信が設定されていません。'); exit; } if (defined $::FORM{'step1'}) { require './app/lib/mailer.pl'; my @error; #投稿時間キーチェック #時間は固定値でチェックする require './app/cmd/post.pl'; @error = @{ &POST::check_timekey( $::FORM{'timekey'}, $CNF::antispam{'timekey'}{'idseed'}, 600, 10) }; @error && &::error(\$error[0]); #前陣速攻 if (!length($::FORM{'name'})) { push(@error, '名前(ニックネーム)を記入してください。'); } elsif (length($::FORM{'name'}) > $CNF::post{'name'}{'max'}) { push(@error, '名前(ニックネーム)が長すぎます。'); } if (!length($::FORM{'email'})) { push(@error, 'メールアドレスを記入してください。'); } elsif (length($::FORM{'email'}) > $CNF::post{'email'}{'max'}) { push(@error, 'メールアドレスが長すぎます。'); } elsif ($::FORM{'email'} !~ /^[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,6}$/) { push(@error, 'メールアドレスが不正です。'); } elsif ( $::FORM{'email'} ne $::FORM{'url'} ) { push(@error, 'メールアドレスの確認が取れません。'); } if (!length($::FORM{'key'})) { push(@error, 'パスワードを記入してください。'); } elsif (length($::FORM{'key'}) > $CNF::post{'key'}{'max'}) { push(@error, 'パスワードが長すぎます。'); } @error && &::error(\join("
\n ", @error)); my $confirm = substr(&COMMON::sha1(\($::FORM{'name'} . &COMMON::make_id)), 0, 10); my $host = &CGI::get_host(0); my $o_identify = new FILE::MEMBER_IDENTIFY($CNF::place{'data'}{'path'}); $o_identify->update({name => $::FORM{'name'}, key => $::FORM{'key'}, email => $::FORM{'email'}, confirm => $confirm, host => $host, time => $::FLAG{'time'}}) or &::error(\('すでに登録の申し込みがありました。' . '身に覚えがない場合はしばらくたってから再度' . '申し込んでみてください。')); my $o_member = new FILE::MEMBER($CNF::place{'data'}{'path'}); $o_member->exist($::FORM{'name'}, $::FORM{'key'}, $::FORM{'email'}) && &::error(\('既に同じ名前が登録されています。')); #メール作成 my %to = (name => $::FORM{'name'}, address => $::FORM{'email'}); my $r_from = $CNF::mail{'from'}; my $subject = 'メンバー登録申\し込み確認メール'; my $body = <<"__TEXT__"; これはメンバー登録申\し込みの確認メールです。 以下の情報での申\し込みを受け付けました。 登録名 :$::FORM{'name'} 登録作業を完了するには $CNF::place{'this'}{'url'}?cmd=mbn;id=$::FORM{'id'} に行き、以下の確認コードを送信してください。 確認コード:$confirm __TEXT__ if (!&MAILER::mobile($to{'address'})) { $body .= <<"__TEXT__"; --------------------------------------------------------------------- //このメールに身に覚えのない方へ 誰かがあなたのメールアドレスを使って勝手に登録の申\し込みをした 可能\性があります。このメールはそのまま捨ててください。 以下に登録作業を行った人の情報を示しておきます。 U A : $ENV{'HTTP_USER_AGENT'} I P : $ENV{'REMOTE_ADDRESS'} HOST : $ENV{'REMOTE_HOST'} __TEXT__ } eval { &MAILER::send($CNF::mail{'mode'}, $CNF::place{'sendmail'}{'path'}, $CNF::place{'smtp'}{'path'}, [\%to], $r_from, $subject, \$body); }; length($@) && &::error(\"MEMBER_MAIL ERROR: $@"); #画面表示 &BASE::head2('mbr'); print <<"__HTML__";
【メンバー登録】

確認メールを送信しました。
メールの到着をお待ちください。


__HTML__ &BASE::foot2('mbr'); } else { my $o_identify = new FILE::MEMBER_IDENTIFY($CNF::place{'data'}{'path'}); (my $r_info = $o_identify->check($::FORM{'confirm'})) or &::error(\'「確認コード」が違います。'); my $o_member = new FILE::MEMBER($CNF::place{'data'}{'path'}); #更新 $o_member->add($r_info) or &::error(\('メンバーリストを更新できませんでした。')); #画面表示 &BASE::head2('mbr'); print <<"__HTML__";
【メンバー登録】

メンバー登録を完了しました。
ログインを行ってください。


__HTML__ &BASE::foot2('mbr'); } } 1; # $Id: mmb.pl,v 2.1 2003/11/19 13:00:00 N.Hirai Exp $;