• 締切済み

禁止ワード設定

簡単なメールフォーム作成ツールを作っております。 メールフォームの、禁止ワード設定で、 オススメな関数ってありませんか? できれば、ファイルの文字コードは、 無変換の「Shift_JIS」で使える関数が良いです。 禁止ワードの設定は、「,」で区切れるようしたいです。 よろしくお願いします。

みんなの回答

回答No.2

> できれば、ファイルの文字コードは、 > 無変換の「Shift_JIS」で使える関数が良いです。 文字コードについてはあまり影響ないと思います。 > オススメな関数ってありませんか? うーん…標準ではそれに特化したものはないように思います…。 自分なら以下のように処理します。メールフォームのactionで 指定するファイルのサンプルです。 <?php //禁止ワードとして設定されている『馬鹿,アホ,ハゲ』を //配列に変換します。 //$ngWordString = "馬鹿,アホ,ハゲ"; //の状態であるとします $ngWordArray = explode("," ,$ngWordString); //この処理によって、下記の配列が生成されます。 //$ngWordArray[0] = "馬鹿"; //$ngWordArray[1] = "アホ"; //$ngWordArray[2] = "ハゲ"; /** * NGワードチェック */ //NGワード配列が1つも設定されていない場合は以下の処理を行わない。 if (count($ngWordArray) > 0) {   //NGワード配列の要素を一件ずつ確認します。   foreach ($ngWordArray as $ngWord) {     //正規表現を使ってPOSTされた値にNGワードが含まれているかをチェック     if (ereg($ngWord, $_POST['mailBody'])==true) {       //NGワードが含まれていた場合はエラーフラグを立てる       $errorFlg = true;     }   } } if ($errorFlg == true) {   //NGワードが含まれている場合の処理 } else {   //メール送信 } ?> 意図が伝わっていないところなどあればご指摘ください!

pira09
質問者

補足

ありがとうございます。 「ー」が原因? エラーが発生します。 ereg() [function.ereg]: REG_EBRACK やはり、「EUC-JP」を使用したほうが良いのでしょうか? メールフォームは自動登録制なので、ファイル作成時の文字コード指定が問題になります。 また、メールも、文字化けしてしまう可能性もあります。 mb_language("japanese"); mb_internal_encoding("Shift_JIS"); $to = あて先; $subject = mb_encode_mimeheader("件名"); $body = "本文"; $from = mb_encode_mimeheader("送信者名") ."<info@example.com>"; mail($to, $subject, $body, "From: $from"); ファイル文字コード設定と、メール文字化け対策が出来れば、 「EUC-JP」を使用しようかなと思います。

回答No.1

> 簡単なメールフォーム作成ツールを作っております。 > メールフォームの、禁止ワード設定で まず、前提として…  > 簡単なメールフォーム作成ツールを作っております。   たとえば、   →項目名『氏名』 形式『テキストボックス』    項目名『生年月日』 形式『テキストボックス』    項目名『血液型』 形式『セレクトボックス』    のように、『』内をユーザーが入力することで、フォーム自体を生成するツールを作成している。   という解釈でよろしいでしょうか?   また、その場合、 (1)メールフォーム作成ツールの『』内に入力する語句に対して禁止ワードを設定したい。 (2)メールフォームの入力項目に対して禁止ワードをかけたい。 のどちらでしょう? いまいち背景が見えていないので、 補足をお願いしたいです。

pira09
質問者

補足

ありがとうございます。 分かりにくくてすみません。 補足します。 >→項目名『氏名』 形式『テキストボックス』 >項目名『生年月日』 形式『テキストボックス』 >項目名『血液型』 形式『セレクトボックス』 >のように、『』内をユーザーが入力することで、フォーム自体を生成>するツールを作成している。 はい。そうです。 >(1)メールフォーム作成ツールの『』内に入力する語句に対して禁止ワードを設定したい。 >(2)メールフォームの入力項目に対して禁止ワードをかけたい。 >のどちらでしょう? 「2」です。

関連するQ&A