掲示板のコメント欄にNGをワードを書かれた場合、
「NGワードがあります」
という表示を出したいと思っていますが、そのやり方が分かりませんでした。
ネットで調べたら
特定文字をNGワードとして、はねる場合は、以下(A)を組み込めば良いことが分かりました。
-(A)----------------------------------
@haijyo = ( 'バカ' ,'アホ' ,'頭が悪い' ); foreach $haijyo (@haijyo) { if ($FORM{'com'} =~ /$haijyo/) { &error_message('NGワードがあります'); } }
上記(A)を、ここでいただいたアドバイスに従って下記(B)に組み込こんでみました。
以下はPerlの掲示板プログラムの一部です。
-(B)-----------------------------------------------------------------
<TR><TD> <form action="$bbs_write" method="POST"> <input type=hidden name="mode" value="check1"> <input type=hidden name="ip" value=$ENV{'REMOTE_ADDR'}> <input type=hidden name="mail" value="$FORM{'mail'}"> <input type=hidden name="date" value="$FORM{'date'}"> <TABLE cellpadding="2" cellspacing="0" border="1"> <TR><TD><P id="p1">お名前:</p></TD><TD><input type="text" name="name" size="30" value="" maxlength="10"></TD></TR> <TR><TD><P id="p1">地域:</p></TD><TD><select name="sub"><option value='' selected>▼地域 EOM foreach $subs (@subss){ print "<option>$subs\n"; } print <<"EOM"; </select></TD></TR> <TR><TD><P id="p1">年齢:</p></TD><TD><select name="age"><option value='' selected>▼年齢 EOM foreach $ages (@agess){ print "<option>$ages\n"; } print <<"EOM"; </select></TD></TR> <TR><TD><P id="p1">コメント:</p></TD><TD> <textarea name="com" cols="50" rows="10"></textarea></TD></TR> <TR><TD></TD><TD><input type="submit" value="確認"></TD></TR> </TABLE> </form> </TD></TR></TABLE> EOM #■入力投稿内容確認モード sub check1{ &header; print <<"EOM"; <TABLE cellspacing="2" cellpadding="5" width="100%"> <TR><TD id="d07"><h5 id="h51">■$bbs_title (XXXX掲示板)</h5></TD></TR> <TR><TD><P id="p1"> 投稿内容確認 </p></TD></TR> <TABLE cellpadding="2" cellspacing="0" border="1" width="550"> <TR><TD><P id="p1">お名前:</p></TD><TD><P id="p1">$FORM{'name'}</p></TD></TR> <TR><TD><P id="p1">地域:</p></TD><TD><P id="p1">$FORM{'sub'}</p></TD></TR> <TR><TD><P id="p1">年齢:</p></TD><TD><P id="p1">$FORM{'age'}</p></TD></TR> <TR><TD><P id="p1">コメント:</p></TD><TD><P id="p1">$FORM{'com'}</p></TD></TR> EOM __@haijyo = ( 'バカ' ,'アホ' ,'頭が悪い' );__ if($FORM{'name'} eq ''){print "<P id=\"p6\">お名前が未記入です</p>";} elsif($FORM{'sub'} eq ''){print "<P id=\"p6\">地域が未選択です</p>";} elsif($FORM{'age'} eq ''){print "<P id=\"p6\">年齢が未選択です</p>";} elsif($FORM{'com'} eq ''){print "<P id=\"p6\">コメントが未記入です</p>";} else{ foreach $haijyo (@haijyo) { if ($FORM{'com'} =~ /$haijyo/) { &error_message('NGワードがあります'); } } print <<"EOM"; <P id="p6"> print <<"EOM"; <P id="p6"> 下の「投稿ボタン」を押すと、入力したメールアドレス宛てに「確認メール」が送信されます。<BR> 投稿ボタンを押す前に、再度ご確認下さい。</p> <input type="submit" value="投稿"> EOM } print <<"EOM"; </TD></TR></TABLE> </form><BR> <FORM> <INPUT type="button" value="戻って修正する" onClick="pageBack()"> </FORM> </TD></TR></TABLE><BR> EOM }exit;
NGワードがヒットすると、以下のような変化がありましたが、メッセージや「戻って修正する」ボタンが表示されません。
下の図は、名前を空欄にした時ですが、メッセージが表示され、「戻って修正する」ボタンが表示されます。
NGワードがヒットした時も、名前の空欄時と同じように、メッセージが表示され、「戻って修正する」ボタンが表示するには、どうすれば良いでしょうか?
よろしくお願い致します。