Foros del Web » Programando para Internet » PHP »

Evitar terminos indeseados en formulario.

Estas en el tema de Evitar terminos indeseados en formulario. en el foro de PHP en Foros del Web. hola chicos saludos a todos como puedo hacer para evitar que se use un formulario mio para spam? resulta que me envían URLs usando el ...
  #1 (permalink)  
Antiguo 29/03/2012, 09:52
Avatar de BekoxD  
Fecha de Ingreso: mayo-2008
Ubicación: Perú
Mensajes: 220
Antigüedad: 15 años, 11 meses
Puntos: 11
Evitar terminos indeseados en formulario.

hola chicos
saludos a todos
como puedo hacer para evitar que se use un formulario mio para spam?
resulta que me envían URLs usando el formulario de mi pagina entonces yo quiero esto:
cuando alguien trata de enviar: http://, www. .com .net. org etc. en el campo comentarios, quiero que salga este mensaje
echo: tu mensaje no se envía porque es spam y se redireccione a un archivo escogido por ejemplo a miweb.com/sem/
Como lo hago?

Estaba probando este código.-
Código PHP:
if (ereg('http|www|com|net|org'$_POST['post'])){
echo 
'tu mensaje no se envia porque es spam';
}else{
//mandas

Cuando envió una url me sale el mensaje tu mensaje no se envia porque es spam pero pasa unos segundos y igual se envía, osea por gusto sale el mensaje si igual se envía el spam.-

Saludos.
__________________
Si tú sabes lo que vales, ve y consigue lo que mereces.
  #2 (permalink)  
Antiguo 29/03/2012, 10:08
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Evitar terminos indeseados en formulario.

Yo uso la siguiente funcion

[PHP]

<?php
function ValidarDatos($campo)
{
//Array con las posibles cabeceras a utilizar por un spammer
$badHeads = array("Content-Type:",
"MIME-Version:",
"Content-Transfer-Encoding:",
"Return-path:",
"Subject:",
"From:",
"Envelope-to:",
"To:",
"bcc:",
"cc:",
"<a href=",
"</a>",
"[url=",
"[link=");

//Comprobamos que entre los datos no se encuentre alguna de
//las cadenas del array. Si se encuentra alguna cadena se
//dirige a una página de Forbidden
foreach($badHeads as $valor){
if(strpos(strtolower($campo), strtolower($valor)) !== false){
header("Location: error.php");
exit;
}
}
}
?>

[/PHP]


luego validar cada POST

ValidarDatos($_POST['email']);
ValidarDatos($_POST['telefono']);
ValidarDatos($_POST['mensaje']);
ValidarDatos($_POST['nombre']);
__________________
la la la
  #3 (permalink)  
Antiguo 29/03/2012, 22:18
Avatar de BekoxD  
Fecha de Ingreso: mayo-2008
Ubicación: Perú
Mensajes: 220
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: Evitar terminos indeseados en formulario.

Genial, si funciono, muchas gracias.-
__________________
Si tú sabes lo que vales, ve y consigue lo que mereces.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:43.