#!/usr/bin/perl
require 'jcode.pl';
###################JOYGLE MAIL MAGAZINE Ver1.4#########################
#
# http://www.joygle.com/
#
###################設定###############################################
$usrdata = "usr.dat"; #読者リスト
$backurl = "http://www.roitime.com"; #登録後に戻るURL
##################ここで設定は終わり##################################
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $QUERY_DATA, $ENV{'CONTENT_LENGTH'});
} else { $QUERY_DATA = $ENV{'QUERY_STRING'}; }
@pairs = split(/&/,$QUERY_DATA);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/</g;
$value =~ s/>/>/g;
$value =~ s/\,/,/g;
&jcode'convert(*value,'sjis');
$QUERY{$name} = $value;
}
if($QUERY{'mode'} eq "IN"){&readeradd;}
elsif($QUERY{'mode'} eq "OUT"){&readerdel;}
else{print "Location: $backurl\n\n";}
#-------------------------メイン--------------------------------
sub main {
&header;
print<<"EOM";
配信:スマートシステム
EOM
&footer;
exit;
}
#-------------------------読者リスト読み込み--------------------------------
sub readerload {
open(LOG,"$usrdata");
flock(LOG,2);
@readerlist = ;
flock(LOG,8);
close(LOG);
}
#-------------------------読者削除--------------------------------
sub readerdel {
if ($QUERY{mail} eq "" || $QUERY{'mail'} !~ /(.*)\@(.*)\.(.*)/) {&main("メールアドレスが未記入です");}
&readerload;
$value = "$QUERY{mail}";
foreach $list (@readerlist) {
$newlist = $list;
$newlist =~ s/\n//g;
$newlist =~ s/\r//g;
if($newlist eq $value){$find = 1;}
else{push(@newreaderlist,$list);}
}
open(LOG,">$usrdata");
flock(LOG,2);
print LOG @newreaderlist;
flock(LOG,8);
close(LOG);
if($find){&main("メールアドレス$QUERY{mail}をご購読解除しました");}
else{&main("メールアドレス$QUERY{mail}は登録されていません");}
}
#-------------------------読者登録--------------------------------
sub readeradd {
if ($QUERY{mail} eq "" || $QUERY{'mail'} !~ /(.*)\@(.*)\.(.*)/) {&main("メールアドレスが未記入です");}
&readerload;
foreach $list (@readerlist) {
$newlist = $list;
$newlist =~ s/\n//g;
$newlist =~ s/\r//g;
if($newlist eq $QUERY{mail}){&main("メールアドレス$QUERY{mail}は既に登録済みです");}
}
$value = "$QUERY{mail}\n";
push(@readerlist,$value);
open(LOG,">$usrdata");
flock(LOG,2);
print LOG @readerlist;
flock(LOG,8);
close(LOG);
&main("メールアドレス$QUERY{mail}を登録しました
ご購読登録ありがとうございました");
}
#-------------------------ヘッダー----------------------------------
sub header {
print "Content-type: text/html\n\n";
print <
EOM
}
#-------------------------フッター----------------------------------
sub footer {
print <