Tengo problemas para hacer que esto funcione correctamente.
Lo que quiero que suceda es que alguien pueda completar la información proporcionada, pero hay una validación de correo electrónico que es simplemente poner su correo electrónico en Correo electrónico: y se supone que coincide con Verificar correo electrónico: luego, con la esperanza de que lo hayan hecho, escriba y si responden correctamente a la pregunta de spam, que es simplemente "¿cuánto es 5+5?" entonces el formulario se enviará a mi correo electrónico
El problema es que, aunque la validación del correo electrónico está funcionando, la pregunta de spam, incluso si escribes mal la respuesta, el formulario todavía se envía. Lo necesito para que el correo no deseado y la validación del correo electrónico sean correctos o el formulario no se envíe.
¡Espero que esto sea simple para que algunos lo entiendan y me ayuden! Aquí está mi código PHP. Déjame saber lo que estoy haciendo mal.
<script> <?php $email1=$_POST['Email1']; $email2=$_POST['Email2']; $from=$_POST['Email1']; $email="!YOUREMAIL@GOES.HERE!"; $subject="maintenance Request"; $message=$_POST['Box']; $select=$_POST['Select']; $name=$_POST['Name']; $number=$_POST['Question']; $message="Name: ".$name. "\r\n" ."\r\n" . "Email: " .$from ."\r\n" . "\r\n" . "Comment: " .$message ."\r\n" . "\r\n" . "Selected Machine: " .$select; if($number==10) { } if(filter_var($email1, FILTER_VALIDATE_EMAIL)) { } if (filter_var($email2, FILTER_VALIDATE_EMAIL)) { mail ($email, $subject, $message, "from:".$from); echo 'Thanks You for the Maintenance Request! We will Contact you shortly. '; } else { echo "This ($email2) email address is different from ($email1).\n"; } ?> </script>Si la respuesta a la pregunta de validación es incorrecta, debe imprimir un mensaje y salir del script.
if ($number != 10) { die("You are not a human!"); }Además, nunca comprueba si los dos correos electrónicos son iguales.
if(!filter_var($email1, FILTER_VALIDATE_EMAIL)) { die("Invalid email ($email1)"); } if ($email1 == $email2) { mail ($email, $subject, $message, "from:".$from); echo 'Thanks You for the Maintenance Request! We will Contact you shortly. '; } else { echo "This ($email2) email address is different from ($email1).\n"; } No es necesario llamar a filter_var() en $email2 . Si es igual a $email1 , entonces debe ser válido. Si no es igual a $email1 , no nos importa si es válido.