Problema formulario contacto PHP, no envía email

  • Autor Autor adrianespasa
  • Fecha de inicio Fecha de inicio
A

adrianespasa

Dseda
SEO
Hola, aqui estoy de nuevo, con otra duda sobre el curso de desarrollo web, sepan que si posteo una duda aca, es porque hice lo posible por encontrar el error, y no tuve exito (lo digo xq he estado haciendo otras preguntas anteriormente).

En este caso, el problema que tengo, es que hice toda la programación correctamente, para realizar un formulario de contacto en PHP, pero al momento de hacerlo funcionar en un servidor real, no envia el email al correo designado.

Se que mi host (hostgator), funciona, porque ya lo he probado, hice un formulario anteriormente, y lo pude hacer funcionar, pero en este, no se donde esta el error.

La pagina donde esta el formulario es esta: http://www.telemundosatelital.conexoweb.com/index.php?content=contacto
Si se fijan, el formulario funciona bien, y llenando los datos, te lleva hasta un mensaje que dice que todo esta correctamente (ya que utilice la etiqueta "if"), pero no envia el email.

El codigo de el archivo "recibe_formulario.php", es el siguiente: (limpie el codigo, solo con lo de PHP)

Insertar CODE, HTML o PHP:
[COLOR=#ff0000]<?php [/COLOR]

[COLOR=#008000]if (  isset($_POST['empresa']) && isset($_POST['correo']) && isset($_POST['contacto']) && isset($_POST['consulta']) ) {[/COLOR]


$empresa=$_POST['empresa'];
$domicilio=$_POST['domicilio'];
$cuit=$_POST['cuit'];
$correo=$_POST['correo'];
$contacto=$_POST['contacto'];
$consulta=$_POST['consulta'];


[COLOR=#0000ff]mail ($myemail,$subject,utf8_decode($mensaje),$headers);[/COLOR]


$myemail="adrianespasa@gmail.com";


$subject="Una persona, te ha contactado desde la pagina web";


$mensaje="Nombre de la empresa: " .$empresa ."\n";
$mensaje.="Domicilio: ".$domicilio."\n";
$mensaje.="CUIT: ".$cuit ."\n";
$mensaje.="Correo Electronico: ".$correo ."\n";
$mensaje.="Nombre del Contacto: ".$contacto ."\n";
$mensaje.="Consulta: ".$consulta ."\n"."\n";
$mensaje.="Los datos fueron enviados el dia: ".$fecha ."\n";


$headers= "From: ".$_POST['correo']."\r\n";


$fecha= date("d-M-y H:i");


$enviados="1";


[COLOR=#008000]}else{ [/COLOR]


      $error="Error, alguno de los datos obligatorios (*), no fueron enviados";


[COLOR=#008000]}[/COLOR]


[COLOR=#ff0000]?>[/COLOR]


[B]</head>[/B]


[B]<body>[/B]


[COLOR=#ff0000]      <?php [/COLOR]
[COLOR=#008000]          if ($enviados=="1") {[/COLOR]
          
          echo "Gracias " .$contacto .", sus datos fueron enviados correctamente. Nos comunicaremos con usted a la brevedad por medio de su correo " .$correo;
          
[COLOR=#008000]      }else{[/COLOR]
          
          echo $error;
          
[COLOR=#008000]          } [/COLOR]
      
[COLOR=#ff0000]      ?>[/COLOR]
[B]</body>[/B]

Alguien tiene idea, xq no funciona?

Gracias 😀
 
Esto iría en la sección de PHP.

Añade en la primera línea error_reporting(E_ALL); Para que te muestre todos los errores y prueba de nuevo. De todas formas envias el email antes de definir el email, el cuerpo, el asunto y los header.

Te aconsejo que envíes los header, y que lo envíes (el email) como texto y no como html porque no lo usas. Y deberías de filtrar las variable no puedes confiar de lo que un usuario pueda introducir en un input, textarea o cualquier entrada de un usuario, ya que ese usuario puede ser una abuelita o un atacante.
 
ufff... sin ofender.. .pero que feo está eso...

el motivo de que no se envíen es que primero envias el email y luego declaras las variables que le pasas :\

php es un lenguaje de script y eso significa que irá linea por linea empezando desde arriba..

la declaración de las variables tiene que ser ANTES de enviar el email
 
ufff... sin ofender.. .pero que feo está eso...

el motivo de que no se envíen es que primero envias el email y luego declaras las variables que le pasas :\

php es un lenguaje de script y eso significa que irá linea por linea empezando desde arriba..

la declaración de las variables tiene que ser ANTES de enviar el email

No me ofendes, justamente para eso estoy haciendo las practicas, para errar y aprender...

Ese era el error! ya lo pude hacer funcionar.
Gracias hamlet y nax por las respuestas 😀
 
Atrás
Arriba