電子書籍の厳選無料作品が豊富!

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

よろしくお願いします。

A 回答 (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 {
  //メール送信
}
?>

意図が伝わっていないところなどあればご指摘ください!

この回答への補足

ありがとうございます。
「ー」が原因?

エラーが発生します。
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」を使用しようかなと思います。

補足日時:2009/09/04 21:03
    • good
    • 0

> 簡単なメールフォーム作成ツールを作っております。


> メールフォームの、禁止ワード設定で

まず、前提として…

 > 簡単なメールフォーム作成ツールを作っております。

  たとえば、
  →項目名『氏名』 形式『テキストボックス』
   項目名『生年月日』 形式『テキストボックス』
   項目名『血液型』 形式『セレクトボックス』
   のように、『』内をユーザーが入力することで、フォーム自体を生成するツールを作成している。

  という解釈でよろしいでしょうか?
  また、その場合、

(1)メールフォーム作成ツールの『』内に入力する語句に対して禁止ワードを設定したい。
(2)メールフォームの入力項目に対して禁止ワードをかけたい。

のどちらでしょう?

いまいち背景が見えていないので、
補足をお願いしたいです。

この回答への補足

ありがとうございます。
分かりにくくてすみません。
補足します。

>→項目名『氏名』 形式『テキストボックス』
>項目名『生年月日』 形式『テキストボックス』
>項目名『血液型』 形式『セレクトボックス』
>のように、『』内をユーザーが入力することで、フォーム自体を生成>するツールを作成している。
はい。そうです。


>(1)メールフォーム作成ツールの『』内に入力する語句に対して禁止ワードを設定したい。
>(2)メールフォームの入力項目に対して禁止ワードをかけたい。
>のどちらでしょう?
「2」です。

補足日時:2009/09/04 12:06
    • good
    • 0

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