![]() |
Aporte: Sistema Anti-Spam Hola Comunidad: Les presento una clase para evitar el spam en nuestros formularios web sin usar captcha. Hay muchas personas tienen dificultades visuales y un captcha le complica las cosas. Esta clase entrega un karma al formulario e indica de acuerdo a ese índice si es spam o no. antispam.class.php Código PHP: ControlUrl($dominio,$url); Esta función es para cuando usas "recomeinde este sitio a un amigo", seguramente en el form tienes un campo oculto con la URL a recomendar. Entonces lo que hace es tomar esa url y fijarse si en el comienzo de la URL esta tu dominio (esto es para que no recomienden sitio que no son tuyos, spam) textCleaner($text); Limpia de la cadena (nombre, mensaje, etc) etiquetas html y php controlPalabras($text); Esta función evalúa una cadena (palabra por palabra) y se fija si en esa cadena hay algunas de las palabnras consideradas spameras y además va contando el total de las palabras del formualrio karma(); Esta funcion le asigna un karma. Toma la cantidad de palabras de spam encontradas y la divide por el total de palabras del form en los campos controlados. Si el karma es mayor a la tolerancia entonces devuelve true. La tolerancia se configura al crear un objeto. Va del 1 en adelante, mientras mayor sea el número maytor será la tolerancia valida_email($email); Valida los emails del form Veamos cómo se usa aplicándolo al famoso "recomeinde este sitio a un amigo". Los campos del formulario que se han enviado son: -friendname -friendemail -yourname -youremail -subject -recurl (campo oculto) Vamos al código (se supone que ya han enviado el formulario y lo vamos a procesar): Código PHP: Espero sus comentarios y/o aportes. Saludos!! |
Re: Aporte: Sistema Anti-Spam Ya corregi algunos detalles del código arriba... |
Re: Aporte: Sistema Anti-Spam Hola, Algún comentario? Vamos!! Saludos ;) |
Re: Aporte: Sistema Anti-Spam Hola usermax. Esta interesante lo del karma(). Muy buen aporte. |
Re: Aporte: Sistema Anti-Spam Hola hgp147, Muchas gracias!! Muchas veces algun de las palabras consideredas como spam son usadas en mensajes legítimos. Entonces es mejor trabajar con índices y posibilidades. Saludos! |
Re: Aporte: Sistema Anti-Spam Muy buen aporte, te felizito mucho. Gracias Salu2 :adios: |
Re: Aporte: Sistema Anti-Spam Gracias pato12!! Sería cuestión de completar la lista (dentro de la expresión regular) de la variable $listOut con las palabras que falten o que vayan usando los spammeros para tener nuestra lista lo más actualizada posible. Mejor funcionará la clase. SAludos y espero vuestros retornos, sugerencias o inquietudes ;):aplauso: |
Re: Aporte: Sistema Anti-Spam siiiii karma() suena bien... ke bien la haces |
Re: Aporte: Sistema Anti-Spam Gracias pateketrueke!! Si alguno lo implementa, avise asi vemos cómo funciona.:si: |
Re: Aporte: Sistema Anti-Spam Buen aporte y solución usermax:arriba: Saludos. |
Re: Aporte: Sistema Anti-Spam Gracias Carlojas!! Si tienen ideas o sugerencia spara mejorar el script haganmelo saber asi lo implementamos. Saludos |
Re: Aporte: Sistema Anti-Spam Entonces si yo quisiera hacer un formulario de contacto para que envien un mensaje a xx mail mediante la funcion mail(), lo unico que tengo que hacer es la validacion correspondiente con la clase, y luego el envio del mail en si? |
Respuesta: Aporte: Sistema Anti-Spam Exacto!! Además puedes hacer otras validaciones propias de tu formulario. Este detecta intento de spam. Saludos |
Respuesta: Re: Aporte: Sistema Anti-Spam Cita:
karma() podria devolver otros valores ademas de true o false, es decir, podria devolver por ejemplo 0, 1 y 2. Si es 0 no es spammer, si es 1 es un posible spammer (notifica al administrador, pero deja postear/enviar) y si es 2 (notifica y denega el posteo/envio). Se le podrian poner mas valores de karma, y asi enviar advertencias al usuario, al admin, etc... todo segun el karma obtenido. |
Respuesta: Aporte: Sistema Anti-Spam Buena observación. Apenas pueda la implemento y aviso. Saludos |
| La zona horaria es GMT -6. Ahora son las 19:19. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.