Foros del Web » Programando para Internet » PHP »

Poner el mensaje de echo en la misma página

Estas en el tema de Poner el mensaje de echo en la misma página en el foro de PHP en Foros del Web. Hola tengo un formulario que tiene html y php: HTML: Código HTML: <FORM id= "contacto" name= "contacto" action= "enviar.php" method= "POST" > <p> <label> Nombre ...
  #1 (permalink)  
Antiguo 29/12/2013, 15:39
 
Fecha de Ingreso: diciembre-2013
Mensajes: 1
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Poner el mensaje de echo en la misma página

Hola tengo un formulario que tiene html y php:

HTML:
Código HTML:
<FORM id="contacto" name="contacto" action="enviar.php" method="POST">
<p>
<label>Nombre <input name="nombre" type="text" id="nombre"
 size="42"/></label>
</p>
<p><label>E-mail <input name="mail" type="text" id="mail" size="43"/>
</label>
</p>
<p><label>Mensaje<br>
<textarea name="mensaje" cols="40" rows="8" id="mensaje">
</textarea></label>
</p>
<p><input type="submit" name="Submit" value="Enviar"/></p>
</FORM> 
PHP:

Código:
<?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 = 'Asunto del mail recibido';

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

echo 'Mensaje enviado correctamente';
?>
Quisiera saber cómo hacer para que el mensaje del 'echo' salga en mi propia página, es decir un mensaje abajo del formulario que diga 'Mensaje enviado correctamente' y que no aparezca una simple página en blanco con ese mensaje.
  #2 (permalink)  
Antiguo 29/12/2013, 16:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Poner el mensaje de echo en la misma página

Coloca el código PHP debajo del formulario:

Código PHP:
Ver original
  1. <FORM id="contacto" name="contacto" method="POST">
  2.   <p>
  3.     <label>Nombre <input name="nombre" type="text" id="nombre"
  4.  size="42"/></label>
  5.   </p>
  6.   <p><label>E-mail <input name="mail" type="text" id="mail" size="43"/></label>
  7.   </p>
  8.   <p><label>Mensaje<br>
  9.     <textarea name="mensaje" cols="40" rows="8" id="mensaje"></textarea></label>
  10.   </p>
  11.   <p><input type="submit" name="Submit" value="Enviar"/></p>
  12. </FORM>
  13.  
  14. <?php
  15. if ($_POST) {
  16.   $nombre = $_POST['nombre'];
  17.   $mail = $_POST['mail'];
  18.   $empresa = $_POST['empresa'];
  19.  
  20.   $header = 'From: ' . $mail . " \r\n";
  21.   $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  22.   $header .= "Mime-Version: 1.0 \r\n";
  23.   $header .= "Content-Type: text/plain";
  24.  
  25.   $mensaje = "Este mensaje fue enviado por " . $nombre . ", de la empresa " . $empresa . " \r\n";
  26.   $mensaje .= "Su e-mail es: " . $mail . " \r\n";
  27.   $mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
  28.   $mensaje .= "Enviado el " . date('d/m/Y', time());
  29.  
  30.   $para = '[email protected]';
  31.   $asunto = 'Asunto del mail recibido';
  32.  
  33.   echo mail($para, $asunto, utf8_decode($mensaje), $header) ? 'Mensaje enviado correctamente' : 'No se pudo enviar el mensaje';
  34. }
  35. ?>

La diferencia está en que deberás verificar que se hayan recibido datos a través del método POST, tal y como lo hago en la condición, además, quité el atributo action del formulario para que la recepción de datos se haga en el mismo archivo, aunque también hay otras formas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: echo, 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 10:22.