Foros del Web » Programando para Internet » PHP »

Problema formulario de contacto

Estas en el tema de Problema formulario de contacto en el foro de PHP en Foros del Web. Hola a todos tengo un problema con el formulario de contacto de mi pagina web. No me envia a "[email protected]" todos los datos. Solo me ...
  #1 (permalink)  
Antiguo 20/05/2013, 14:02
 
Fecha de Ingreso: febrero-2013
Mensajes: 31
Antigüedad: 11 años, 2 meses
Puntos: 1
Problema formulario de contacto

Hola a todos tengo un problema con el formulario de contacto de mi pagina web. No me envia a "[email protected]" todos los datos. Solo me envia el texto del mensaje pero no me envia ni nombre, ni telefono de contacto, ni email de la persona que envia el formulario. Además no me pone ni fecha ni hora en la que se envió el mensaje.

Codigo HTML
Código HTML:
<div id="contactForm">
      <h2>Rellene el siguiente formulario para contactar con nostros</h2>
      <div class="sepContainer"></div>
      <form action="process.php" method="post" id="contact_form">
        <div class="name">
          <label for="name">Nombre y Apellido:</label>
          <p> Por favor insertar nombre y apellido</p>
          <input id=name name=email type=text required />
        </div>
        <div class="email">
          <label for="email">Correo electr&oacute;nico:</label>
          <p> Por favor insertar un correo electr&oacute;nico válido</p>
          <input id=email name=email type=email required />
        </div>
       <div class="tel">
          <label for="tel">Tel&eacute;fono:</label>
          <p> Por favor insertar un tel&eacute;fono de contacto</p>
          <input id=tel name=email type=text required />
        </div>
        <div class="message">
          <label for="message">Mensaje:</label>
          <p> Por favor escriba su comentario</p>
          <textarea id=message name=message rows=6 cols=10 required></textarea>
        </div>
        <div id="loader">
          <input type="submit" value="ENVIAR" />
        </div>
      </form>
    </div> 
Codigo PHP:
Código PHP:
<?php 
$toemail 
'[email protected]';
$name $_POST['name'];
$email $_POST['email'];
$tel $_POST['tel'];
$message $_POST['message'];
if(
mail($toemail'Formulario Contacto Web'$message$tel'Desde: ' $email)) {
    echo 
'Your email was sent successfully.';
} else {
    echo 
'There was a problem sending your email.';
}
?>
  #2 (permalink)  
Antiguo 20/05/2013, 14:16
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema formulario de contacto

es que en ningún momento le has pasado dichos datos al cuerpo del mensaje, sólo $_POST['message'], tienes que concatenarlo con el punto, no la coma, además de ello pasas más argumentos que lo que espera la función.

PD: reportado para que sea movido al foro de PHP
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 20/05/2013, 14:54
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Problema formulario de contacto

Holas, ginger27.

Además de lo que te dice maycolalvarez, ten cuidado en tu formulario, ya que todos los campos INPUT en él tienen por nombre "email", por lo tanto, no sabemos qué está llegando a tu script PHP al final. Parece que tienes una confusión entre el atributo "id" y el "name" de los campos INPUT. PHP sólo toma el valor de "name" como nombre de variable, y lo contenido en el atributo "value" como el valor de la misma. El valor de "id" no es relevante para PHP, aunque sí para el entorno HTML/Javascript.

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #4 (permalink)  
Antiguo 21/05/2013, 00:11
 
Fecha de Ingreso: febrero-2013
Mensajes: 31
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Problema formulario de contacto

Gracias,

la verdad que no entiendo de eso. Lo cogi de algo ya hecho. Gracias maycolalvarez y quinqui, voy hacer unos cambios con los consejos que me habeis dado y a ver si doy con la solución.

Saludos.
  #5 (permalink)  
Antiguo 21/05/2013, 00:49
 
Fecha de Ingreso: febrero-2013
Mensajes: 31
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Problema formulario de contacto

Hecho unos cambios.
La cosa va mejor.
En el cuerpo del mensaje recibo todos los datos que me hacen falta.

Pero el encabezado del programa de correo electronico no pone el correo electronico del remitente, ni fecha, ni hora.

Código HTML:
<div id="contactForm">
      <h2>Rellene el siguiente formulario para contactar con nostros</h2>
      <div class="sepContainer"></div>
      <form action="process.php" method="post" id="contact_form">
        <div class="name">
          <label for="name">Nombre y Apellido:</label>
          <p> Por favor insertar nombre y apellido</p>
          <input id=name name=name type=text required />
        </div>
        <div class="email">
          <label for="email">Correo electr&oacute;nico:</label>
          <p> Por favor insertar un correo electr&oacute;nico válido</p>
          <input id=email name=email type=email required />
        </div>
       <div class="tel">
          <label for="tel">Tel&eacute;fono:</label>
          <p> Por favor insertar un tel&eacute;fono de contacto</p>
          <input id=tel name=tel type=text required />
        </div>
        <div class="message">
          <label for="message">Mensaje:</label>
          <p> Por favor escriba su comentario</p>
          <textarea id=message name=message rows=6 cols=10 required></textarea>
        </div>
        <div id="loader">
          <input type="submit" value="ENVIAR" />
        </div>
      </form>
    </div> 
Código PHP:
<?php 
$toemail 
'[email protected]';
$name $_POST['name'];
$email $_POST['email'];
$tel $_POST['tel'];
$message $_POST['message'];
$encabezado 'MIME-Version: 1.0' "\r\n";
$encabezado .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
$encabezado .= '<br />Correo electronico: ' $email "\r\n";
$encabezado .= '<br />Nombre:' $name "\r\n";
$encabezado .= '<br />Telefono: ' $tel "\r\n" '<br />';
if(
mail($toemail'Formulario Contacto web''<br />Mensaje:<br /> ' .$message$encabezado)) {
    echo 
'Your email was sent successfully.';
} else {
    echo 
'There was a problem sending your email.';
}
?>
Correo que recibo:

Formulario Contacto web
NaN de undefined de 0NaN NaN:NaN:NaN
De:
Para:[email protected]

Correo electronico: [email protected]
Nombre: nombre remitente
Telefono: telefono remitente

Mensaje:
Mensaje de prueba desde la web Saludos
  #6 (permalink)  
Antiguo 21/05/2013, 10:00
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema formulario de contacto

Para comenzar lee esto y comprende como funciona

http://php.net/manual/es/function.mail.php

No se trata solo de copiar y pegar, debes saber como funcionan las cosas para que sepas los que estas haciendo...

Prueba con este codigo...

Código PHP:
Ver original
  1. <?php  
  2. $toemail = '[email protected]';
  3.  
  4. // Para enviar un correo HTML mail, la cabecera Content-type debe fijarse
  5. $encabezado  = 'MIME-Version: 1.0' . "\r\n";
  6. $encabezado .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  7.  
  8. $name = $_POST['name'];
  9. $email = $_POST['email'];
  10. $tel = $_POST['tel'];
  11.  
  12. //Aqui armas el mensaje
  13. $message = '<br />Correo electronico: ' . $email;
  14. $message .= '<br />Nombre:' . $name;
  15. $message .= '<br />Telefono: ' . $tel;
  16. $message .= '<br />'.$_POST['message'];
  17.  
  18. if(mail($toemail, 'Formulario Contacto web', '<br />Mensaje:<br /> ' .$message, $encabezado)) {
  19.     echo 'Your email was sent successfully.';
  20. } else {
  21.     echo 'There was a problem sending your email.';
  22. }
  23. ?>
  #7 (permalink)  
Antiguo 24/05/2013, 00:18
 
Fecha de Ingreso: febrero-2013
Mensajes: 31
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Problema formulario de contacto

:)

Muchas gracias .
Este fin de semana me lo leo y sigo probando.

Etiquetas: contacto, formulario, html, input
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 05:42.