2017-11-06 1 views
0

웹 사이트의 연락처 페이지에서 원하지 않는 (저속하고 불쾌한 광고는 우리와 관련이 없음) 메시지를 보내는 방법이 있습니까? 우리는 웹 사이트를 방문하는 사용자가 진정한 질문을 보낼 수있는 연락처 페이지를 가지고 있습니다. 그러나 지난 2 주 동안 우리는 원하지 않는 유형의 질문을 받고 있습니다. 대량 메일이 아니므로 스팸 메일이 아니며 웹 사이트에서 보안 문자 사용이 가능합니다. 그러나 우리는 매일 20-30 가지의 메시지를받으며 때로는 저속하고 공격적입니다. captcha 전에 이러한 쿼리는 대량 이었지만 captcha는 20-30으로 줄였습니다. 그러나 우리가 매일받는 질문에 비하면 여전히 많이 있습니다.웹 사이트 연락처 페이지에서 원하지 않는 메시지 차단 (스팸 아님)

이러한 메시지가 코드를 통해 게시되는 것을 막을 수있는 방법이 있습니까? 이 웹 사이트는 PHP로되어 있습니다. 코드를 제외한 다른 방법도 좋습니다.

나는 이러한 메시지를 방지하기 위해 코딩 관점에서 묻는대로이 질문을 여기에서 요청했습니다. 감사.

+0

이 플러그인을 시도 – Shea

+0

현재 CAPTCHA의 예제 이미지 제공하십시오 : https://wordpress.org/plugins/contact-form-7-honeypot/를 –

+0

행운 섹스, K ¢ 쿵푸, fμck 방지 , fuksk, FUC Ꮶ 그리고 그것의 끝없는 순열. https://en.wikipedia.org/wiki/Scunthorpe_problem도 참조하십시오. 그것은 [clbuttic] (https://www.urbandictionary.com/define.php?term=clbuttic) 문제입니다. – Gordon

답변

0
<?php 
    function detectBadWords($bad_words, $text) { 
     foreach ($bad_words as $key => $word) { 
      if (strpos($text, $word) != false) { 
       return true; 
      } 
     } 
    } 

    $text = 'bla bla bla'; 
    $bad_words = ['shit', 'fuck']; 
    $check = detectBadWords($bad_words, $text); 
    if ($check) { 
     // prevent insert data 
    } 

?> 
+0

OP가 알고 있습니다. 문제는 방법입니다. – Gordon

+0

내 대답을 확인하십시오. –

+0

으로 업데이트하거나이 라이브러리를 사용할 수 있습니다. https://github.com/expalmer/php-bad-words –

0

저속하거나 모욕적 인 텍스트를 검색에 추가하고 해당 단어를 쓸 때 오류를 줄 수 있습니다.

function isAbusive(str) { 
     var badWords = ['bad', 'worst','fuck','suck']; 
     var isTrue = false; 
     if(str) { 
     for (var i = 0; i < badWords.length; i++) { 
      isTrue = !!(str.replace(/\W|\s/g, '').toLowerCase().indexOf(badWords[i]) + 1); 
      if(isTrue) break; 
     } 
     } 
     return isTrue; 
    } 


var comments = document.getElementsByClassName("prevent_abuse"); 

for (var i = comments.length - 1; i >= 0; i--) { 
    console.log(i, comments[i].innerHTML) 
    if (isAbusive(comments[i].innerHTML)) {//you can check this comment 
    alert("there is bad word"); 
    comments[i].parentNode.removeChild(comments[i]); 
    } 

} 

이것은 사용자 의견이나 메시지가있는 html 코드입니다.

<p class="prevent_abuse">I want to do "b/a/d" activity</p> 
<p class="prevent_abuse">I want to do "worst" activity</p> 
<p class="prevent_abuse">I want to do "good" activity</p> 
<p class="prevent_abuse">bad activity</p> 
<p class="prevent_abuse">W/O/R/s/T activity</p> 
관련 문제