プロが教えるわが家の防犯対策術!

GenesisさんのFRIENDS BOARD-i Ver.2.40というスクリプトを、自分で
少しだけ修正して女性向フリマのBBSとして使っています。
最近すごく困ってる事があるんですけど、多分業者さんだと思うんです
けど、禁止しているアダルト商品とかを何度削除しても、何度も何度も
出品してくるんです。。。
女性向サイトだから意味ないのに。。。

そこで、色々対策し、その上で考えたですけど、投稿できるメールアド
レス(ドメイン)を指定、限定できるようにしたいんです。
私もざっとプログラムを見てみたんですけど、標準では投稿者が新規
投稿時に入力した内容が、そのまま投稿者のメールアドレスとして登録
されています。
具体的に、こういう処理になっています。

メールアドレス<BR>
<INPUT size="16" type="text" name="mail" maxlength="64"><BR>

フォームに入力した内容 = "mail" といった感じです。

これを、@マーク以前は従来通りフォームからの自由入力で、ここでの
入力内容を仮にaとして、
@マークは固定、これを仮にbとして、
@マーク以降のドメインは、指定のドメインを<SELECT>メニューで指定
(仮に、 aaa.ne.jp ・ bbb.ne.jp ・ ccc.ne.jp)し、投稿者はその中か
ら選択、
この選択結果を仮にcとして、
a+b+c= (name="mail")
としたいんです。。。
私の説明メチャクチャですね。。。 うまく伝わるといいんですけど。。。

すごく困っていて、早く対策をしたいと思っています。。。
詳しい方、ぜひアドバイスお願いします。。。

A 回答 (3件)

当面やりたいことを、ということで、どうぞ:



f_board.cgi:

> $mail = $FORM{'mail'};

$mail = $FORM{'account'} . "\@" . $FORM{'domain'};

> メールアドレス<BR>
> <INPUT size="16" type="text" name="mail" maxlength="64"><BR>

メール アドレス<BR>
<INPUT type=text name="account" size="16" maxlength="32">\@<SELECT name="domain"><OPTION value="aaa.ne.jp">aaa.ne.jp</OPTION><OPTION value="bbb.ne.jp">bbb.ne.jp</OPTION><OPTION value="ccc.ne.jp">ccc.ne.jp</OPTION></SELECT><BR>

> if ($mail eq "") { &error("メールアドレスが未記入です。"); }

if (!$FORM{'account'} || !$FORM{'domain'}) { &error("メール アドレスが未記入です。"); }


ざっと通して見ただけなので、不足部分があるかもしれません。

この回答への補足

ものすごく遅くなってしまいましたが。。。
やりたい事はまさにこれでした!
解決しました。ありがとうございました。

補足日時:2007/02/06 07:30
    • good
    • 0
この回答へのお礼

レス、ありがとうございます。

早速、今晩にでも動作を確認してみますo(^o^)o
とり急ぎお礼だけ。。。
また結果報告します!

お礼日時:2006/05/26 12:00

思うに、maki_yoshinakaさんはその業者の記入してくるメールアドレスを書き込み不可にしたいとかそういうことだろうか?



ちょっとそのCGIをダウンロードしてきて自分なりに改造してみた。
・システム設定に許可メールアドレスと禁止メールアドレスを設ける。
・許可メールアドレスが設定されてる場合、その許可メールアドレスのいずれかを含むメールアドレスしか書き込みできない。
・禁止メールアドレスが設定されてる場合、その禁止メールアドレスのいずれかを含むメールアドレスは書き込みできない。
というふうにしてみた。

具体的にはどうしたかっていうと
ダウンロードしてきたFRIENDS BOARD-i Ver.2.40のf_board.cgiを以下のように修正。
○223行目と224行目の間に以下を追加
# 2006/05/26追加
$SYSTEM[23] =~ s/,/\n/g;

print <<"EOM";
□ 許可メールアドレス<BR>
※複数指定の場合は改行で区切ってください。<BR>
<TEXTAREA rows="10" cols="30" name="SYSTEM23">$SYSTEM[23]</TEXTAREA><BR>
EOM

$SYSTEM[22] =~ s/,/\n/g;

print <<"EOM";
□ 禁止メールアドレス<BR>
※複数指定の場合は改行で区切ってください。<BR>
<TEXTAREA rows="10" cols="30" name="SYSTEM22">$SYSTEM[22]</TEXTAREA><BR>
EOM
# 2006/05/26追加

○315行目と316行目の間に以下を追加
$FORM{'SYSTEM22'} =~ s/\r\n/,/g;
$FORM{'SYSTEM22'} =~ s/\r|\n/,/g;
$FORM{'SYSTEM23'} =~ s/\r\n/,/g;
$FORM{'SYSTEM23'} =~ s/\r|\n/,/g;

○342行目と343行目の間に以下を追加
$FORM{'SYSTEM22'}
$FORM{'SYSTEM23'}

○406行目と407行目の間に以下を追加
□ 許可メールアドレス<BR>
$SYSTEM[23]<BR>
□ 禁止メールアドレス<BR>
$SYSTEM[22]<BR>

○1012行目と1013行目の間に以下を追加
@KYOKA = split(/,/,$SYSTEM[23]);
if (@KYOKA ne "") {
foreach (@KYOKA) { if (index($mail,$_) < '0') { &error("メールアドレス不正。処理を中断します。"); } }
}
@TABOO2 = split(/,/,$SYSTEM[22]);
if (@TABOO2 ne "") {
foreach (@TABOO2) { if (index($mail,$_) >= '0') { &error("メールアドレス不正。処理を中断します。"); } }


行数はダウンロードしてきた未改造のファイルの行数なので注意ね。
    • good
    • 0

内容は伝わりますが、HTML で結合することは無理なので、CGI スクリプトで結合させる必要があります。



ただ、そうしたとしても、スパム投稿を避けることにはつながらないのではないかと思います。
    • good
    • 0
この回答へのお礼

レスありがとうございます。

>内容は伝わりますが、HTML で結合することは~

そうですね。それはわかります。
そうする為にはどう記述したら良いか知りたいんです。。。

>ただ、そうしたとしても、スパム投稿を~

そうですね。
スパム投稿防止には色々な手法があるのは承知しています。
ただ、とりあえず今回は、先に書いた内容の対策を、その全体の対策の
一環としてとりたいと考えています。

今、試行錯誤やってみてたところなんですけど、なかなかうまくいき
ません。。。
引き続き、詳しい方、アドバイスお願いします。。。

お礼日時:2006/05/26 02:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!