Foros del Web » Programando para Internet » PHP »

Formulario PHP, el echo en página en blanco. PROBLEMA

Estas en el tema de Formulario PHP, el echo en página en blanco. PROBLEMA en el foro de PHP en Foros del Web. Buenas, tras conseguir que mi php funcione, ahora el problema lo tengo que el mensaje del ECHO como que se ha enviado correctamente aparece en ...
  #1 (permalink)  
Antiguo 03/02/2010, 10:26
Avatar de pi_imagine  
Fecha de Ingreso: febrero-2010
Ubicación: MURCIA
Mensajes: 20
Antigüedad: 14 años, 2 meses
Puntos: 1
Exclamación Formulario PHP, el echo en página en blanco. PROBLEMA

Buenas, tras conseguir que mi php funcione, ahora el problema lo tengo que el mensaje del ECHO como que se ha enviado correctamente aparece en una pagina en blanco, ocupando la pagina del formulario, como meter el mensaje del echo dentro del mismo formulario?, asi evitamos que el usuario salga de la pagina web.

Código PHP:
<?php 
$nombre 
$_POST['nombre'];
$mail $_POST['mail'];
$telefono$_POST['telefono'];

$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 ", \r\n";
$mensaje .= "Su e-mail es: " $mail " \r\n";
$mensaje .= "Su telefono es: " $telefono " \r\n";
$mensaje .= "Mensaje: " $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

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

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

echo '
Mensaje enviado correctamente;

?>
Aqui tambien pego el formulario

Código HTML:
<form action="http://www.almadrabateatro.com/prueba/send.php"
		method="post" enctype="application/x-www-form-urlencoded" name="Formulario_contacto"
		class="blanco_1" id="Formulario_contacto">
			<p align="left">
			<label>NOMBRE*:<br/><input name="nombre" type="text" id="nombre" size="40" />
		    </label> <br/>
		    <label>MAIL*:<br /><input name="mail" type="text" id="mail" size="40" />
		    </label> <br />
	        <label>TELEFONO:<br /><input name="telefono" type="text" id="telefono" size="40" />
		    </label><br />
		    <label>MENSAJE:<br /><textarea name="mensaje" cols="42" id="mensaje" rows=""></textarea>
	        </label>
			<p align="left">
			Los datos con el asterisco son obligatorios 
			<p align="left"><br/>
		<input name="Enviar" type="submit" value="Enviar" />
  		<input name="boton_borrar" type="reset" id="boton_borrar" value="Borrar" /></form> 
GRACIAS DE ANTEMANO.....
  #2 (permalink)  
Antiguo 03/02/2010, 10:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Formulario PHP, el echo en página en blanco. PROBLEMA

Bueno no sé si esto es un aporte o alguna pregunta, pero si es una pregunta, lo que te aconsejo es que envies la información del formulario a una página que sea puro PHP y que no envie nada al navegador, luego al final de esa página colocas un
Código PHP:
Ver original
  1. header("Location: paginaDondeDebesRedireccionar.php");
Eso volvera a redireccionarte a la pagina del formulario y no se verá una página en blanco.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 03/02/2010, 10:30
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Formulario PHP, el echo en página en blanco. PROBLEMA

Lo que pretendes se logra poniendo el código php y el formulario en el mismo archivo.

Otra opción sería, al momento de enviar el formulario, generar una sesión o cookie con algún dato, luego redireccionar la página send.php a la página del formulario, la cual verificaría si existe tal sesión o cookie, y si existe muestra un mensaje de que se envió, y a la vez borra la cookie/sesión. Feo, pero funcionaría .

Te recomiendo la primera idea
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #4 (permalink)  
Antiguo 03/02/2010, 10:36
Avatar de pi_imagine  
Fecha de Ingreso: febrero-2010
Ubicación: MURCIA
Mensajes: 20
Antigüedad: 14 años, 2 meses
Puntos: 1
Mil gracias, voy a probar,

perdon por repetir el mensaje que se me quedaba la pagina colgada y pense que no lo publicaba.

Un saludo.
Pilar.

Cita:
Iniciado por spider_boy Ver Mensaje
Lo que pretendes se logra poniendo el código php y el formulario en el mismo archivo.

Otra opción sería, al momento de enviar el formulario, generar una sesión o cookie con algún dato, luego redireccionar la página send.php a la página del formulario, la cual verificaría si existe tal sesión o cookie, y si existe muestra un mensaje de que se envió, y a la vez borra la cookie/sesión. Feo, pero funcionaría .

Te recomiendo la primera idea
Como los tengo separados (en dos archivos) y me ha costado un monton hacer que funcione, voy a probar lo del header dentro del php... si no funciona seguro que intento esta segunda opcion....

Muchisimas gracias por tu ayuda...

Última edición por GatorV; 03/02/2010 a las 10:47
  #5 (permalink)  
Antiguo 03/02/2010, 10:56
Avatar de pi_imagine  
Fecha de Ingreso: febrero-2010
Ubicación: MURCIA
Mensajes: 20
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Formulario PHP, el echo en página en blanco. PROBLEMA

Cita:
Iniciado por abimaelrc Ver Mensaje
Bueno no sé si esto es un aporte o alguna pregunta, pero si es una pregunta, lo que te aconsejo es que envies la información del formulario a una página que sea puro PHP y que no envie nada al navegador, luego al final de esa página colocas un
Código PHP:
Ver original
  1. header("Location: paginaDondeDebesRedireccionar.php");
Eso volvera a redireccionarte a la pagina del formulario y no se verá una página en blanco.
Lo he intentado pegar dentro del archivo, send.php
copio pego para que veas, me sigue dando el mismo fallo.

Código PHP:
$header 'From: ' $mail " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";
$header .= "Location:contacto_ok.hmtl"
En contacto_ok.html he dejado la misma paginaperocon el texto bajo el formulario "se ha enviado correctamente",
Pero de todas maneras aparece la pagina en blanco.

lo puedes ver en:

[URL="http://www.almadrabateatro.com/prueba/contacto.html"]http://www.almadrabateatro.com/prueba/contacto.html[/URL]

Un saludo
  #6 (permalink)  
Antiguo 03/02/2010, 11:04
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Formulario PHP, el echo en página en blanco. PROBLEMA

La idea es que envies el formulario a una pagina que contenga solamente código de PHP. Algo así para que tengas idea.
Código HTML:
Ver original
  1. <form action="paginaPHP.php">
  2. <input type="text" name="texto" />
  3. <input type="submit" />
  4. </form>
Código PHP:
Ver original
  1. <?php
  2. //código que vayas a hacer de PHP, pero que este no envie información al navegador
  3. header("Location: formularioHTML.html");
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 03/02/2010, 11:16
Avatar de pi_imagine  
Fecha de Ingreso: febrero-2010
Ubicación: MURCIA
Mensajes: 20
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Formulario PHP, el echo en página en blanco. PROBLEMA

Perdona, no llego a entender lo que me quieres decir, mis conocimientos de php son muy relativos, aprecio mucho tu rapida ayuda.

Un saludo.
  #8 (permalink)  
Antiguo 03/02/2010, 11:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Formulario PHP, el echo en página en blanco. PROBLEMA

Te sugiero que leas este manual para que puedas entender mejor lo que te quiero decir http://www.forosdelweb.com/wiki/Manual_de_PHP
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 03/02/2010, 11:26
Avatar de pi_imagine  
Fecha de Ingreso: febrero-2010
Ubicación: MURCIA
Mensajes: 20
Antigüedad: 14 años, 2 meses
Puntos: 1
Muchas gracias,
seguire investigando.

Un saludo

Cita:
Iniciado por abimaelrc Ver Mensaje
La idea es que envies el formulario a una pagina que contenga solamente código de PHP. Algo así para que tengas idea.
Código HTML:
Ver original
  1. <form action="paginaPHP.php">
  2. <input type="text" name="texto" />
  3. <input type="submit" />
  4. </form>
Código PHP:
Ver original
  1. <?php
  2. //código que vayas a hacer de PHP, pero que este no envie información al navegador
  3. header("Location: formularioHTML.html");
Buenas abimaelrc,
al final anoche estaba cansada de tanto buscar y no me enteraba de nada.

Lo he solucionado duplicando el arhivo de formulario de contacto,inlcuyendo el php dentro del mismo y lo he guardado como,
contacto_ok.php

He variado el texto dentro del contacto y he puesto en destacado su mensaje ha sido enviado, y ahora esta todo ok.

Mil gracias, y gracias por darme a conocer el wiki, tb es una herramienta fundamental....

Poco a poco iré colaborando, con mis conocimientos de diseño y flash, tambien toco video, la programacion es mi pie que cojea....
Cualquier cosa que necesites... ya sabes cuenta conmigo...

un saludo.
Pilar

Cita:
Iniciado por spider_boy Ver Mensaje
Lo que pretendes se logra poniendo el código php y el formulario en el mismo archivo.

Otra opción sería, al momento de enviar el formulario, generar una sesión o cookie con algún dato, luego redireccionar la página send.php a la página del formulario, la cual verificaría si existe tal sesión o cookie, y si existe muestra un mensaje de que se envió, y a la vez borra la cookie/sesión. Feo, pero funcionaría .

Te recomiendo la primera idea
Al final lo he solucionado de esa manera, metiendo el codigo php dentro del mismo formulario... la simpleza a veces es lo mejor.....

Un saludo.
Gracias por ayudarme....
Seguire con mis dudas..jjj
Pilar

Última edición por GatorV; 04/02/2010 a las 11:07
  #10 (permalink)  
Antiguo 08/02/2011, 13:10
 
Fecha de Ingreso: febrero-2011
Mensajes: 1
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Formulario PHP, el echo en página en blanco. PROBLEMA

Hola, soy nueva en el foro y tengo el mismo problema, quiero sacar la frase que aparece en una pagina en blanco : enviado correctamente.
Leí todo los mensajes en este foro pero aun no entendí, me gustaría, ya que resolviste el problema si podes poner el codigo.
Cuando decís que pusiste todo el código php en el formulario, a que te referís??
Yo tengo dos archivos uno html donde tengo el formulario y otro php con los comandos para enviar los datos a un mail específico; como tengo que hacer?
  #11 (permalink)  
Antiguo 09/02/2011, 14:19
Avatar de 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
  #12 (permalink)  
Antiguo 09/02/2011, 14:33
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Formulario PHP, el echo en página en blanco. PROBLEMA

En lo personal uso:

<?php

echo "MIRA QUE LOCO";

include('pagina.html')
?>
__________________
Mono programando!
twitter.com/eguimariano
  #13 (permalink)  
Antiguo 10/02/2011, 21:58
 
Fecha de Ingreso: junio-2006
Mensajes: 83
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Formulario PHP, el echo en página en blanco. PROBLEMA

Creo que lo de poner el form y el post en un mismo archivo es lo mas viable, y mas si te quieres ahorrar archivos en el servidor y no tener todo un desorden.

Aunque pues si quieres tener los dos archivos y no entiendes la redirección mediante header, pues podrias usar una etiqueta meta.

Etiquetas: blanco, 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 01:57.