Evite spam no seu blog rejeitando comentários com palavras específicas

  • Autor Autor aldols
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
A

aldols

Gamma
Redactor
desd ehace tiempo tenia problemas de spam en uno de mis blogs, diariamente tenia que borrar alrededor de 600 mensajes de spam... aunque wordpress trae un filtro nativo para palabras e ip's WP dejaba los mensaje en moderacion o en la carpeta de spam...

Pero aqui les dejo esta alternativa para rechazar comentarios que contengan ciertas palabras...

en el archivo funtions.php de tu theme agrega lo siguiente..

PHP:
function in_comment_post_like($string, $array) {
	foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
	return false;
}
function drop_bad_comments() {
	if (!empty($_POST['comment'])) {
		$post_comment_content = $_POST['comment'];
		$lower_case_comment = strtolower($_POST['comment']);
		$bad_comment_content = array(
			'viagra',
			'hydrocodone',
			'hair loss',
			'[url=http',
			'[link=http',
			'xanax',
			'tramadol',
			'russian girls',
			'russian brides',
			'lorazepam',
			'adderall',
			'dexadrine',
			'no prescription',
			'oxycontin',
			'without a prescription',
			'sex pics',
			'family incest',
			'online casinos',
			'online dating',
			'cialis',
			'best forex',
			'amoxicillin'
		);
		if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
			$comment_box_text = wordwrap(trim($post_comment_content), 80, "n  ", true);
			$txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');
			fwrite($txtdrop, "  --------------n  [COMMENT] = " . $post_comment_content . "n  --------------n");
			fwrite($txtdrop, "  [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "n");
			fwrite($txtdrop, "  [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "n");
			fwrite($txtdrop, "  [REFERER  ] = " . $_SERVER['HTTP_REFERER'] . "n");
			fwrite($txtdrop, "  [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "n");
			fwrite($txtdrop, '--------------**********------------------'."n");
			header("HTTP/1.1 406 Not Acceptable");
			header("Status: 406 Not Acceptable");
			header("Connection: Close");
			wp_die( __('bang bang.') );
		}
	}
}
add_action('init', 'drop_bad_comments');

Agrega tus propios términos a rechazar en el array bad_comment_content. A mi me funciono.. ahora solo me llegan 6 comentarios de spam al dia...

espero les sirva..
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
jaja, a mi me llegan pocos igual.
Pero casinos y cosas como viagra, hoteles y esas cosas nunca faltan!

Gracias por compartir!
 
Interesante a mi me sirve mucho para mi nuevo proyecto y asi evitar malas palabras.

Faltaría hacer una lista con palabras usadas por SPAMMERS y con malas palabras, es que en serio todos los dias me putean en mi Blog 🙁
 
Interesante aporte

Gracias por compartirlo 😀
 
Para las malas palabras en el panel de comentarios se puede poner ciertas palabras y elegir entre si mandarlo a moderar o que simplemente se vaya a la bandeja de spam...
 
Voltar
Topo