Foros del Web » Programando para Internet » PHP »

Formulario de contacto PHP Spam

Estas en el tema de Formulario de contacto PHP Spam en el foro de PHP en Foros del Web. Buen dia amigos como van. alguna vez me ayudaron en esta web a generar un consecutivo a un formulario de contacto, esta vez quiero saber ...
  #1 (permalink)  
Antiguo 25/04/2017, 15:00
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 8 años, 11 meses
Puntos: 0
Pregunta Formulario de contacto PHP Spam

Buen dia amigos como van.

alguna vez me ayudaron en esta web a generar un consecutivo a un formulario de contacto, esta vez quiero saber como puedo hacer para evitar el spam en el formulario de contacto que tengo.

tengo campos requeridos en HTML5 que al parecer son de la siguiente manera

<input type="tel" placeholder="Telefono" class="form-control" name="tel" required/>

solo poniendo el required al final de cada campo necesario, y aun asi me llega spam

- que tipo de spam me llega, me llegan formularios Vacios, con todo y que tengo campos required, con estos campos le doy enviar y me sale el cuadro donde dice que falta el campo, pero me parece que es como si cargaran directamente mi formulario para que se envie,

mi pagina es protours.co

les agradeceria alguien que tenga una idea de por que estos formularios vacios con todo que tengo campos requeridos, me llegan rafagas de 8 o 10 o mas formularios vacios, y ademas que le genero un numero a cada uno, los numeros estan corriendo sin ninguna informacion y yo llevaba control de esto

muchas gracias al que tenga alguna idea
  #2 (permalink)  
Antiguo 25/04/2017, 15:50
sgr
 
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 77
Antigüedad: 21 años
Puntos: 11
Respuesta: Formulario de contacto PHP Spam

Cita:
Iniciado por jesu009 Ver Mensaje
Buen dia amigos como van.

alguna vez me ayudaron en esta web a generar un consecutivo a un formulario de contacto, esta vez quiero saber como puedo hacer para evitar el spam en el formulario de contacto que tengo.

tengo campos requeridos en HTML5 que al parecer son de la siguiente manera

<input type="tel" placeholder="Telefono" class="form-control" name="tel" required/>

solo poniendo el required al final de cada campo necesario, y aun asi me llega spam

- que tipo de spam me llega, me llegan formularios Vacios, con todo y que tengo campos required, con estos campos le doy enviar y me sale el cuadro donde dice que falta el campo, pero me parece que es como si cargaran directamente mi formulario para que se envie,

mi pagina es protours.co

les agradeceria alguien que tenga una idea de por que estos formularios vacios con todo que tengo campos requeridos, me llegan rafagas de 8 o 10 o mas formularios vacios, y ademas que le genero un numero a cada uno, los numeros estan corriendo sin ninguna informacion y yo llevaba control de esto

muchas gracias al que tenga alguna idea
Estas validando en el archivo contact.php que antes de enviar el mensaje los campos no esten vacios?

Acabo de entrar a protours.co/contact.php y me muestra el aviso que el mensaje fue enviado.

Controla eso.
__________________
Informática Integral
  #3 (permalink)  
Antiguo 25/04/2017, 16:45
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: Formulario de contacto PHP Spam

Pero haces la validación del lado del servidor no ?
de nada te vale hacerla solo del lado del cliente ( navegador ) , cuando cualquiera lo puede modificar.
tienes que validar del lado del cliente.
  #4 (permalink)  
Antiguo 25/04/2017, 17:15
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Formulario de contacto PHP Spam

no he podido contestar, no me deja agregar el codigo pero parece que ese es el problema no lo se validar desde el PHP alguien me puede ayudar?

Código PHP:
Ver original
  1. <?php
  2.  
  3.        
  4. $nombre = $_POST['name'];
  5. $correo = $_POST['email'];
  6. $telefono = $_POST['tel'];
  7. $mensaje = $_POST['message'];
  8.  
  9. $mail_to = 'mi correo';
  10. $subject = 'PT-'.$contadoractual.' '.$nombre.' desde PROTours.co';
  11.  
  12. $body_message = 'Mensaje de: '.$nombre."\n\n";
  13. $body_message .= 'Correo Electronico: '.$correo."\n\n";
  14. $body_message .= 'Telefono de Contacto: '.$telefono."\n\n";
  15. $body_message .= 'Mensaje: '.$mensaje;
  16.  
  17. $headers = 'De: '.$correo."\r\n".
  18. 'Responder: '.$correo."\r\n" .
  19. 'X-Mailer: PHP/' . phpversion();
  20.  
  21. $subject2 = 'PROTours.co te agradece por escribirnos, te responderemos en breve.';
  22.  
  23.  $msg2 .= "Gracias por contactarnos. Te llamaremos o responderemos lo mas pronto posible.\n\n";
  24.    $msg2 .= "Tu correo de contacto nos llegara con la siguiente informacion.\n\n";
  25.    $msg2 .= "Tiket No. PT-"."$contadoractual\n\n";
  26.    $msg2 .= "Nombre del remitente: " ."$nombre\n\n";
  27.    $msg2 .= "Correo Electronico: " ."$correo\n\n";
  28.    $msg2 .= "Telefono De Contacto: " ."$telefono\n\n";
  29.    $msg2 .= "Mensaje: " ."$mensaje\n\n";
  30.    $msg2 .= "Este mensaje fue enviado a usted atomaticamente desde el Formulario de contacto en www.protours.co\n\n";
  31.  
  32. $mail_status = mail($mail_to, $subject, $body_message, $headers);
  33.  
  34.    mail($correo, $subject2, $msg2);
  35.  
  36. if ($mail_status) { ?>
  37.     <script language="javascript" type="text/javascript">
  38.         alert('Gracias por contactarnos. Te responderemos en breve. Te llegara una copia a tu correo.');
  39.         window.location = 'index.html';
  40.     </script>
  41. <?php
  42. }
  43. else { ?>
  44.     <script language="javascript" type="text/javascript">
  45.         alert('Mensaje NO enviado. Por favor contactanos en [email protected]');
  46.         window.location = 'index.html';
  47.     </script>
  48. <?php
  49. }
  50. ?>
  #5 (permalink)  
Antiguo 25/04/2017, 19:48
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: Formulario de contacto PHP Spam

necesitas al menos validar que los campos no estén vació.
Código PHP:
Ver original
  1. $nombre = $_POST['name'];
  2. $correo = $_POST['email'];
  3. $telefono = $_POST['tel'];
  4. $mensaje = $_POST['message'];

dependiendo de cuales son obligatorios.
puedes hacer unos if y validar.

por ejemplo :
Código PHP:
Ver original
  1. if ( trim($correo) == "" ) {
  2. echo "El correo no puede ser vació";
  3. header('Location: formulario.php');
  4. }

ojo eso como ejemplo , tienes que validar que sea un correo realmente.
puedes hacer una pequeña función para validar si están vacíos o no.
  #6 (permalink)  
Antiguo 25/04/2017, 19:57
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Formulario de contacto PHP Spam

Un formulario sin validacion, como ya te han dicho, no sirve de nada. Yo mismo podria realizarte spam usando casperJS y dejarlo trabajando en un bucle enviandote spam tras spam.

A parte de la validacion, seria bueno que utilizases el recaptcha de google como medida extra.
  #7 (permalink)  
Antiguo 26/04/2017, 15:32
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Formulario de contacto PHP Spam

OK muchas gracias a todos por su ayuda, he logrado en parte lo que queria hasta el momento

lo que hice fue lo siguiente, no pense que fuera tan facil

hice un si sinosi sinosi y despues encerre lo que es la estructura del correo en el ultimo sinosi

if elseif elseif elseif cuerpo de correo cerrar elseif


Código HTML:
Ver original
  1. $nombre = $_POST['name'];
  2. $correo = $_POST['email'];
  3. $telefono = $_POST['tel'];
  4. $mensaje = $_POST['message'];
  5.  
  6.  
  7. if (empty($_POST['name'])) {
  8.   echo "El campo nombre esta vacio";
  9. }
  10.     elseif  (empty($_POST['email'])) {
  11.   echo "El campo Correo esta vacio";
  12. }
  13.  
  14. elseif  (empty($_POST['tel'])) {
  15.   echo "El campo Telefono esta vacio";
  16. }
  17.  
  18.     else{  cuerpo del correo
  19.  
  20. }
  #8 (permalink)  
Antiguo 27/04/2017, 07:41
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Formulario de contacto PHP Spam

Cita:
Iniciado por jesu009 Ver Mensaje
OK muchas gracias a todos por su ayuda, he logrado en parte lo que queria hasta el momento

lo que hice fue lo siguiente, no pense que fuera tan facil

hice un si sinosi sinosi y despues encerre lo que es la estructura del correo en el ultimo sinosi

if elseif elseif elseif cuerpo de correo cerrar elseif


Código HTML:
Ver original
  1. $nombre = $_POST['name'];
  2. $correo = $_POST['email'];
  3. $telefono = $_POST['tel'];
  4. $mensaje = $_POST['message'];
  5.  
  6.  
  7. if (empty($_POST['name'])) {
  8.   echo "El campo nombre esta vacio";
  9. }
  10.     elseif  (empty($_POST['email'])) {
  11.   echo "El campo Correo esta vacio";
  12. }
  13.  
  14. elseif  (empty($_POST['tel'])) {
  15.   echo "El campo Telefono esta vacio";
  16. }
  17.  
  18.     else{  cuerpo del correo
  19.  
  20. }
Eso no ye termina de solucionar el problema, tienes que añadirle un recaptcha, a poder ser el de google ya que es el mas dificil, creo, de saltar., ¿sabes lo que es casperJS? Junto con phantomJS que es un navegador web sin motor grafico, puedo navegar a traves de cualquier pagina web que desee y programar el script para que haga lo que se pueda hacer en esa pagina web, con casperJS se puede crear un bucle que acceda a tu pagina web, rellene tu formulario y te lo envie tantas veces como el bucle tenga estipulado.

Pero con un recaptcha, ya se complica muchisimo la cosa.
  #9 (permalink)  
Antiguo 28/04/2017, 18:39
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Formulario de contacto PHP Spam

exacto amigo por eso dije que lo habia solucionado en parte, voy a dejar asi por un rato si alguien coge mi pagina y se pone hacer eso que me dices y me llegan muchos correos ya me tocara hacer lo del recaptcha, si no que esa pagina tiene clientes de todas las edades y muchos no sabran que es eso y no me enviaran el mensaje entonces por ahora lo dejo hasta ahi, si me siguen molestando ahi si me tocara
  #10 (permalink)  
Antiguo 01/05/2017, 09:39
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Formulario de contacto PHP Spam

Cita:
Iniciado por jesu009 Ver Mensaje
exacto amigo por eso dije que lo habia solucionado en parte, voy a dejar asi por un rato si alguien coge mi pagina y se pone hacer eso que me dices y me llegan muchos correos ya me tocara hacer lo del recaptcha, si no que esa pagina tiene clientes de todas las edades y muchos no sabran que es eso y no me enviaran el mensaje entonces por ahora lo dejo hasta ahi, si me siguen molestando ahi si me tocara
Hombre, no creo que alguien se tome tantas molestias para tu pagina web o bien si eres objetivo público #1 pero si pones el recaptcha, no molestarás a ningúno de tus usuarios y tú te podrás olvidar de ese problema durante mucho tiempo.

Tienes que procurar de vivir tranquilo jejejeje
  #11 (permalink)  
Antiguo 28/05/2017, 19:24
(Desactivado)
 
Fecha de Ingreso: octubre-2010
Ubicación: Hong Kong
Mensajes: 83
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: Formulario de contacto PHP Spam

¿has visto que entras en SPAM?
  #12 (permalink)  
Antiguo 29/05/2017, 00:58
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 163
Antigüedad: 8 años
Puntos: 11
Respuesta: Formulario de contacto PHP Spam

Tal y cómo te han recomendado cómo medida extra: https://www.google.com/recaptcha/intro/index.html

Etiquetas: contacto, formulario, html, spam
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 17:33.