PHP - Validación de formularios evitando el SPAM

   
Vista:
Imágen de perfil de Jacinto

Validación de formularios evitando el SPAM

Publicado por Jacinto (40 intervenciones) el 22/04/2014 10:33:00
Buenos días.
Necesito que alguien me oriente o me ayude a solucionar un problemilla con los formularios de mi web.
Uso HTML5, hace una validación basica de la información. Pero el dichoso SPAM sigue llegando de todas todas.
Comprobe que en alguna web aparte de rellenar toda la información siempre existe o una imagen que hay que seleccionar (ejemplo: tres imagenes y hay que marchar la de la gallina) o algun texto.
Estuve buscando algo sobre esto pero no encontre nada la verdad y ya estoy un poco cansado con el dichoso SPAM que al principio casi no recibia ningun email, pero ahora tengo días de recibir más de 20.
Espero que alguien me pueda ayudar con esto o informarme sobre otras opciones. Tal vez solo con php se pueda hacer una buena validación que no requiera de ninguna otra opción.
Muchas gracias por vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Validación de formularios evitando el SPAM

Publicado por xve (5523 intervenciones) el 22/04/2014 12:05:48
Hola Jacinto, entiendo que es cuando envías un correo con los datos de un formulario que se recibe como spam?

Es ese el problema? Si es así, como envías el correo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jacinto

Validación de formularios evitando el SPAM

Publicado por Jacinto (40 intervenciones) el 22/04/2014 13:34:44
Buenas.
Efectivamente el problema es que recibo los email de los formularios con spam, campos vacios que en teoria no deberia de ser, etc.
El correo lo envio con php con este php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
	include("admin/conexion.php");
	$name =mysql_real_escape_string ($_POST["nombre"]);
	$telefono =mysql_real_escape_string ($_POST["telefono"]);
	$email_addr_repeat =mysql_real_escape_string ($_POST["email_addr_repeat"]);
	$url =mysql_real_escape_string ($_POST["url"]);
	$msg =mysql_real_escape_string ($_POST["msg"]);
	$fecha =mysql_real_escape_string ($_POST["fecha"]);
	mysql_query("INSERT INTO email (e_nombre, e_telef, e_email, e_web, e_comentario, e_fecha)
        VALUES ('$name','$telefono','$email_addr_repeat','$url','$msg','$fecha')",$conexion);
		if (mysql_errno($conexion))
		{
			echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();
			mysql_close($conexion);
		}	else{
			$conexion;
			$header = 'From: ' . $email_addr_repeat . " \r\n";
			$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
			$header .= "Mime-Version: 1.0 \r\n";
			$header .= "Content-Type: text/plain";
 
			$mensaje = "Este correo electronico fue enviado por " .$name." \r\n";
			$mensaje .= "Recuerda acceder al Gestor de contenido de la web  \r\n";
			$mensaje .= "Su numero de telefono es el: " .$telefono. " \r\n";
			$mensaje .= "Su correo electronico es: " .$email_addr_repeat. " \r\n";
			$mensaje .= "Mensaje: " .$_POST['msg']. " \r\n";
			$mensaje .= "Enviado el " . date('d/m/Y', time());
 
			$para = 'admin@paxarindesign.es';
			$asunto = 'Enviado desde el CMS Paxarindesign';
 
			mail($para, $asunto, utf8_decode($mensaje), $header);
			header("location:enviado.php");
			}
?>
Espero que esto sirva para aclarar las posibles dudas.
Gracias por tu tiempo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Validación de formularios evitando el SPAM

Publicado por xve (5523 intervenciones) el 22/04/2014 16:27:50
Hola Jacinto, al utilizar la función mail() siempre tendrás muchos problemas... siempre recomiendo encarecidamente utilizar el servidor SMTP del dominio para el envío de correos.

Los servidor, cada vez verifican mas cosas para detectar spam, y una de ellas, es que no se haya enviado desde el servidor SMTP.

http://www.lawebdelprogramador.com/codigo/PHP/1884-Envio_de_correo_mediante_servidor_SMTP.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jacinto

Validación de formularios evitando el SPAM

Publicado por Jacinto (40 intervenciones) el 22/04/2014 17:59:33
voy a leer un poco sobre el tema, la verdad que siempre use la funcion mail().
Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro

Validación de formularios evitando el SPAM

Publicado por Alejandro (198 intervenciones) el 22/04/2014 19:02:12
Se llama "Capacha" lo que quieres

Lo que aporta xve me parece que es para enviar correos usando otro servidor (hotmail, gmail, yahoo, etc.) es interesante... lo probare :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Validación de formularios evitando el SPAM

Publicado por xve (5523 intervenciones) el 22/04/2014 19:03:08
Nosotros hace unos años también la utilizábamos, pero los servidores de correo se van actualizando, y tuvimos que dejar de utilizar mail(), ya que hay algunos servidores, que simplemente elimina el correo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jacinto

Validación de formularios evitando el SPAM

Publicado por Jacinto (40 intervenciones) el 22/04/2014 20:10:42
Espero enterarme bien, por que ya que comente que esto nunca lo use y tengo que ver como coje el valor de los campos, etc.
Pero gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jacinto

Validación de formularios evitando el SPAM

Publicado por Jacinto (40 intervenciones) el 26/04/2014 11:23:14
Buenas al final consegui que funcionara, aunque no fue facil ya que mi web esta alojada en los servidores de 1and1 y no aceptan smtp.
entonces tuve que cambiar una linea de codigo
Esta es la original
$mail->IsSMTP();
Y esta la nueva que hace que se salte todo y funcione.
$mail->isSendMail();
De echo y aunque no viene mucho al caso llame a soporte de 1and1 y me dijeron que era imposible que funcionara,jj
El tema es que todabia me llega alguno.
Alguien sabria explicarme como es posible que se salte la validación que hace html5 ya que hago uso del atributo Pattern y required y hay veces que llegan o con campos vacios o en campos donde solo va texto numeros...no se su usaran algun script o algo lo desconozco.
Aunque si que reconozco que solo me llego uno en 4 dias.
Alguien sabria decirme si seria efectivo poner una pregunta o seleccionar la tipica imagen para evitar esto?
Un saludo y muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar