根据单词列表检查表单提交

时间:2013-10-07 11:45:48

标签: forms spam spam-prevention

我有一些代码要检查表单是否被垃圾邮件,如果是,请停止发送电子邮件。

它包括以下部分:

if(strpos($messagefield, " cialis") !== false){
$noemail = true;
}
if(strpos($messagefield, " viagra") !== false){
$noemail = true;
}

等我们在坏词列表中的单词数量

这样做很好,但很笨拙,很难轻易添加新词来检查。 如果我可以创建一个数组并检查数组的任何字段会更容易,但我很想找到一个例子来使用(大多数例子仍然指定要搜索的文本在这种情况下使对象失败)

任何人都可以帮助代码检查数组的$ messagefield吗?

(我知道有更好的方法,但目前这对我们有用!)

2 个答案:

答案 0 :(得分:1)

$i = 0;
$wordlist = array(' cialis', ' viagra');

while ($i < count($wordlist) && $noemail == false) {
  if (strpos($messagefield, $wordlist[$i]) !== false) {
    $noemail = true;
  }
  $i++;
}

答案 1 :(得分:0)

  1. 最好使用stripos(strpos的不区分大小写的版本)。
  2. 请尝试以下代码:

    $ a = array('cialis','viagra'); for($ i = 0; $ i&lt; count($ a); $ i ++)   if(stripos($ messagefield,$ a [$ i])!== false){     $ noemail = true;     打破;   } }