Ver Mensaje Individual
  #11 (permalink)  
Antiguo 09/02/2011, 14:19
Avatar de CodeIgniter
CodeIgniter
 
Fecha de Ingreso: enero-2011
Ubicación: $this->load->view('Rafaela', 'Argentina')
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 14
Respuesta: Formulario PHP, el echo en página en blanco. PROBLEMA

Hola Soledad,

Si deseas que el mensaje "Enviado correctamente" te aparesca en la misma pantalla del formulario, en lugar de aparecer en una pantalla en blanco, te aconsejo hacer todo en un único archivo y no duplicar código (con todas las dificultades que esto implica para el mantenimiento posterior).

Simplemente debes crear un archivo llamado send.php y pegar el siguiente código:

Código PHP:
Ver original
  1. <form action=""
  2.         method="post" enctype="application/x-www-form-urlencoded" name="Formulario_contacto"
  3.         class="blanco_1" id="Formulario_contacto">
  4.             <p align="left">
  5.             <label>NOMBRE*:<br/><input name="nombre" type="text" id="nombre" size="40" />
  6.             </label>  <br/>
  7.             <label>MAIL*:<br /><input name="mail" type="text" id="mail" size="40" />
  8.             </label> <br />
  9.             <label>TELEFONO:<br /><input name="telefono" type="text" id="telefono" size="40" />
  10.             </label><br />
  11.             <label>MENSAJE:<br /><textarea name="mensaje" cols="42" id="mensaje" rows=""></textarea>
  12.             </label>
  13.             <p align="left">
  14.             Los datos con el asterisco son obligatorios
  15.             <p align="left"><br/>
  16.         <input name="Enviar" type="submit" value="Enviar" />
  17.         <input name="boton_borrar" type="reset" id="boton_borrar" value="Borrar" />
  18. </form>
  19.  
  20. <?php
  21.  
  22. if(isset($_POST['Enviar'])){
  23.     $nombre = $_POST['nombre'];
  24.     $mail = $_POST['mail'];
  25.     $telefono= $_POST['telefono'];
  26.    
  27.     $header = 'From: ' . $mail . " \r\n";
  28.     $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  29.     $header .= "Mime-Version: 1.0 \r\n";
  30.     $header .= "Content-Type: text/plain";
  31.    
  32.     $mensaje = "Este mensaje fue enviado por " . $nombre . ", \r\n";
  33.     $mensaje .= "Su e-mail es: " . $mail . " \r\n";
  34.     $mensaje .= "Su telefono es: " . $telefono . " \r\n";
  35.     $mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
  36.     $mensaje .= "Enviado el " . date('d/m/Y', time());
  37.    
  38.     $para = '[email protected]';
  39.     $asunto = 'Contacto';
  40.    
  41.     mail($para, $asunto, utf8_decode($mensaje), $header);
  42.    
  43.     echo '<br><br>Mensaje enviado correctamente';
  44. }
  45. ?>

Este archivo presenta el formulario en pantalla. Cuando el usuario rellena los campos del formulario y presiona el botón "Enviar", el formulario se llama así mismo y hace la siguiente secuencia:
  1. Vuelve a mostrar el formulario en pantalla
  2. Procesa los datos ingresados por el usuario en el formulario
  3. Enviar el mail hacia la casilla de correo seteada en la variable $para
  4. Por último, imprime el mensaje de enviado correctamente

Por favor, dejame saber si te ha servido la explicación y has logrado resolver tu problema.

Aprovecho para invitarte a mi blog sobre programación php y mysql (puedes consultar la url en mi perfil)

Un gran saludo,
Diego.-

Última edición por CodeIgniter; 09/02/2011 a las 14:28