Foros del Web » Programando para Internet » PHP »

Formulario contacto php

Estas en el tema de Formulario contacto php en el foro de PHP en Foros del Web. Hola a todos, tengo un problema con un formulario de una web que estoy haciendo. Se trata de que si he logrado que al enviar ...
  #1 (permalink)  
Antiguo 11/06/2011, 02:35
 
Fecha de Ingreso: mayo-2011
Mensajes: 8
Antigüedad: 13 años
Puntos: 0
Formulario contacto php

Hola a todos,

tengo un problema con un formulario de una web que estoy haciendo. Se trata de que si he logrado que al enviar el formulario desde la web llegue el correo al mail que yo quiera pero me ocurren 2 problemas:

1- Cuando le ha dado a enviar me sale una nueva pantalla como esta en lugar de quedarse en la sección de contacto.

http://www.creactivate.es/hergil/enviar.php?textarea=3333333333333

2- El mensaje que me llega al correo está vacío tanto en el título del correo, como en los contenidos del mensaje. Aunque le relleno los campos con el mail, nombre, motivos, etc... me llega sin contenidos al correo configurado.

Os pego aquí abajo los códigos tanto del archivo php como de la parte de código del html.

Muchas gracias por vuestra ayuda.


ARCHIVO PHP
<?php
$nombre = $_POST['nombre'];
$mail = $_POST['mail'];
$empresa = $_POST['empresa'];

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por " . $nombre . ", de la empresa " . $empresa . " \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Contacto web';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo '&estatus=ok&';

?>


CODIGO HTML
<tr>
<td width="364" height="131">
<form enctype="multipart/form-data" name="" id="form" action="enviar.php">
<table>
<tr>
<td width="4" height="131"></td>
<td width="184" height="131">
<table>
<tr>
<td width="184" height="30">
<input type="text" value="Tu nombre:"><br>
</td>
</tr>
<tr>
<td width="184" height="30">
<input type="text" value="Teléfono:"><br>
</td>
</tr>
<tr>
<td width="184" height="71">
<input type="text" value="E-mail:"><br>
</td>
</tr>
</table>
</td>
<td width="176" height="131">
<textarea name="textarea" cols="35" rows="35">Escribe tu mensaje:</textarea><br>
<br style="line-height:5px ">
<img alt="" src="images/spacer.gif" width="38" height="1"><a href="#" class="more" onClick="document.getElementById('form').reset()"> borrar</a> <a href="#" class="more" onClick="document.getElementById('form').submit()" > enviar</a></td>
</tr>
  #2 (permalink)  
Antiguo 11/06/2011, 02:57
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Formulario contacto php

1.-

El código, por favor, insértalo entre las etiquetas [ code] y [ /code] (o [ php] y [ /php]).

2.-
Debes indicarle al form el method POST. (para que no salgan los parametros en la URL)

3.-
Cierra la etiqueta form!

4.-
Pon el correspondiente "name" a los input !
-> Con el name, consigues que luego, en php, puedas hacer $mi_variable = $_POST['name_que_le_he_puesto'];

5.- la parte html quedaría así:
Código HTML:
Ver original
  1. <tr>
  2.     <td width="364" height="131">
  3.         <form enctype="multipart/form-data" method="POST" id="form" action="enviar.php">
  4.             <table>
  5.                 <tr>
  6.                     <td width="4" height="131"></td>
  7.                     <td width="184" height="131">
  8.                         <table>
  9.                             <tr>
  10.                                 <td width="184" height="30">
  11.                                     <input type="text" value="Tu nombre:" name="nombre"><br>
  12.                                 </td>
  13.                             </tr>
  14.                             <tr>
  15.                                 <td width="184" height="30">
  16.                                     <input type="text" value="Teléfono:" name="telefono"><br>
  17.                                 </td>
  18.                             </tr>
  19.                             <tr>
  20.                                 <td width="184" height="71">
  21.                                     <input type="text" value="E-mail:" name="mail"><br>
  22.                                 </td>
  23.                             </tr>
  24.                         </table>
  25.                     </td>
  26.                     <td width="176" height="131">
  27.                         <textarea name="textarea" cols="35" rows="35" name="mensaje">Escribe tu mensaje:</textarea><br>
  28.                         <br style="line-height:5px ">
  29.                         <img alt="" src="images/spacer.gif" width="38" height="1"><a href="#" class="more" onClick="document.getElementById('form').reset()"> borrar</a> <a href="#" class="more" onClick="document.getElementById('form').submit()" > enviar</a>
  30.                     </td>
  31.                 </tr>
  32.             </table>
  33.         </form>
  34.     </td>
  35. </tr>
  #3 (permalink)  
Antiguo 12/06/2011, 02:35
 
Fecha de Ingreso: mayo-2011
Mensajes: 8
Antigüedad: 13 años
Puntos: 0
Respuesta: Formulario contacto php

Hola de nuevo,

gracias por la respuesta.

He copiado el código tal y como lo has puesto y el resultado es el siguiente:

Ahora si que aparece quién envía el mensaje en el remitente así como el campo del mail pero no aparecen ni el teléfono ni las observaciones. explicando el motivo de contacto.

El segundo error es el mismo que antes, cuando le doy a enviar me aparece esta página:

http://www.creactivate.es/hergil/enviar.php

qué debo hacer para que se quede en contacto con los campos vacíos?

Gracias por tu ayuda.

un saludo

Carlos

Etiquetas: contacto, formulario
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 20:20.