Problema al enviar el formulario
mathieu_n
Mensajes publicados
67
Estado
Miembro
-
jordane45 Mensajes publicados 30426 Fecha de registro Estado Moderador Última intervención -
jordane45 Mensajes publicados 30426 Fecha de registro Estado Moderador Última intervención -
Hola,
Desde ayer, mi formulario de contacto en mi sitio ya no funciona. No he hecho ninguna modificación, pero ya no recibo los formularios enviados desde el sitio.
Aquí está mi formulario:
<form method="post" action="formmail.php">Nombre: <input name="Nom" value="" type="text" /> <span style="color: rgb(255, 0, 0);">*</span><br /> Apellido: <input name="Prenom" value="" type="text" /> <br /> código postal: <input name="code" value="" type="text" /><br /> dirección de correo: <input name="email" value="" type="text" /> <span style="color: rgb(255, 0, 0);">*</span><br /> <br /> <span style="text-decoration: underline;">Usted desea:</span><br /> <input name="exp" value="Cde a expedier" type="radio" />una solicitud de información<br /> <input name="exp" value="Cde a expedier" type="radio" />hacer un pedido à enviar<br /> <input name="exp" value="Cde recuperee " type="radio" /> hacer un pedido à recoger à<br /> <br /> <p>Escriba sus preguntas o su pedido :<br /> <textarea name="commande" rows="8" cols="55"> </textarea></p> <p> <input value="Enviar" type="submit" /> </p> </form>
aquí está el formail.php:
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); $TO = "***@***"; //$email=$_POST['email']; //$header= 'From:'.$email.''; $headers = "From: ".$_POST['email'] .""; //$headers .= "X-Mailer: PHP/" . phpversion(); $subject="www.monsite.fr"; $message = ""; foreach($_POST as $key=>$val){ $message .= "$key : $val\n"; } //verificar si se envió correctamente if(mail($TO, $subject, $message, $headers)){ Header("Location: merci.html"); }else{ echo "problema al enviar el formulario! gracias por contactarnos directamente por correo: ***@***"; } ?>
Como puedes imaginar al ver mi pregunta, soy un principiante, incluso por debajo de un principiante en php...
Si alguien tuviera una solución a mi problema, ¡sería genial ;-)
Buen día,
Mathieu
2 respuestas
He encontrado de dónde venía el problema, ¡pero no la solución para resolverlo!
Puedo enviar el formulario si no muestro el remitente en el correo.
En la línea:
if(mail($TO, $subject, $message, $headers)){ si quito
$headers el correo se envía bien... pero el remitente no aparece en mis correos.
Así que supongo que el problema viene de:
$headers = "From:" .$_POST['email']."";
Gracias por su ayuda...
¡Hola!
¡La IA que ama los desafíos está aquí!
El problema puede provenir de varias fuentes. Primero, verifica si el archivo "formmail.php" está correctamente ubicado en el mismo directorio que tu formulario.
Otra posibilidad es que el servicio de envío de correos PHP pueda estar desactivado en tu servidor. Puedes verificarlo contactando a tu proveedor de alojamiento.
Luego, asegúrate de que la dirección de correo electrónico "$TO" en el archivo PHP esté correctamente ingresada.
Si todo parece correcto, te sugiero que intentes algunas pruebas de depuración adicionales. Por ejemplo, verifica si el formulario envía correctamente los datos a PHP agregando una línea para imprimir todas las variables $_POST. También puedes utilizar la función "error_get_last()" después de la función mail() para obtener detalles sobre cualquier error potencial.
Finalmente, recomendaría comprobar el código de tu archivo PHP. No es una buena práctica desactivar la visualización de errores en producción. Puedes utilizar la función "error_reporting(E_ALL)" y "ini_set('display_errors', '1')" para mostrar todos los errores, pero asegúrate de desactivarlos en el servidor de producción una vez que todo esté depurado.
¡La IA que ama los desafíos está aquí!
El problema puede provenir de varias fuentes. Primero, verifica si el archivo "formmail.php" está correctamente ubicado en el mismo directorio que tu formulario.
Otra posibilidad es que el servicio de envío de correos PHP pueda estar desactivado en tu servidor. Puedes verificarlo contactando a tu proveedor de alojamiento.
Luego, asegúrate de que la dirección de correo electrónico "$TO" en el archivo PHP esté correctamente ingresada.
Si todo parece correcto, te sugiero que intentes algunas pruebas de depuración adicionales. Por ejemplo, verifica si el formulario envía correctamente los datos a PHP agregando una línea para imprimir todas las variables $_POST. También puedes utilizar la función "error_get_last()" después de la función mail() para obtener detalles sobre cualquier error potencial.
Finalmente, recomendaría comprobar el código de tu archivo PHP. No es una buena práctica desactivar la visualización de errores en producción. Puedes utilizar la función "error_reporting(E_ALL)" y "ini_set('display_errors', '1')" para mostrar todos los errores, pero asegúrate de desactivarlos en el servidor de producción una vez que todo esté depurado.
hola
para limitar los intentos de phishing y el spam, los servidores limitan (o bloquean) los correos cuya dirección del remitente no corresponde al dominio del sitio.
por lo tanto, coloca el correo electrónico del remitente en el cuerpo del correo en lugar de intentar ponerlo en tus encabezados.
¡Gracias por esta respuesta!
El problema es que era muy práctico recibir el formulario con su dirección de correo en la línea de remitente...
Para clasificar los correos, era de hecho más práctico que recibir todos los formularios con el remitente: ***@***
Sé que sí ... pero ahora, tienes que ver con tu proveedor de alojamiento ^^
No es un problema de "código"