- 締切済み
禁止ワード設定
簡単なメールフォーム作成ツールを作っております。 メールフォームの、禁止ワード設定で、 オススメな関数ってありませんか? できれば、ファイルの文字コードは、 無変換の「Shift_JIS」で使える関数が良いです。 禁止ワードの設定は、「,」で区切れるようしたいです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- seimurakam
- ベストアンサー率61% (21/34)
> できれば、ファイルの文字コードは、 > 無変換の「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 { //メール送信 } ?> 意図が伝わっていないところなどあればご指摘ください!
- seimurakam
- ベストアンサー率61% (21/34)
> 簡単なメールフォーム作成ツールを作っております。 > メールフォームの、禁止ワード設定で まず、前提として… > 簡単なメールフォーム作成ツールを作っております。 たとえば、 →項目名『氏名』 形式『テキストボックス』 項目名『生年月日』 形式『テキストボックス』 項目名『血液型』 形式『セレクトボックス』 のように、『』内をユーザーが入力することで、フォーム自体を生成するツールを作成している。 という解釈でよろしいでしょうか? また、その場合、 (1)メールフォーム作成ツールの『』内に入力する語句に対して禁止ワードを設定したい。 (2)メールフォームの入力項目に対して禁止ワードをかけたい。 のどちらでしょう? いまいち背景が見えていないので、 補足をお願いしたいです。
補足
ありがとうございます。 分かりにくくてすみません。 補足します。 >→項目名『氏名』 形式『テキストボックス』 >項目名『生年月日』 形式『テキストボックス』 >項目名『血液型』 形式『セレクトボックス』 >のように、『』内をユーザーが入力することで、フォーム自体を生成>するツールを作成している。 はい。そうです。 >(1)メールフォーム作成ツールの『』内に入力する語句に対して禁止ワードを設定したい。 >(2)メールフォームの入力項目に対して禁止ワードをかけたい。 >のどちらでしょう? 「2」です。
補足
ありがとうございます。 「ー」が原因? エラーが発生します。 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」を使用しようかなと思います。