Foros del Web » Programando para Internet » PHP »

echo 'mensaje enviado' me sale en una página en blanco y no en la actual

Estas en el tema de echo 'mensaje enviado' me sale en una página en blanco y no en la actual en el foro de PHP en Foros del Web. hola, tengo un formulario que se me envía al email con una función php al enviarlo, tengo: echo 'Mensaje enviado' al ejecutarlo en mi web, ...
  #1 (permalink)  
Antiguo 21/12/2009, 11:49
 
Fecha de Ingreso: julio-2007
Mensajes: 48
Antigüedad: 16 años, 9 meses
Puntos: 0
echo 'mensaje enviado' me sale en una página en blanco y no en la actual

hola,
tengo un formulario que se me envía al email con una función php
al enviarlo, tengo:
echo 'Mensaje enviado'
al ejecutarlo en mi web, me sale una página en blanco con el mensaje
¿como podría hacer para que no se me vaya mi página actual? que el mensaje se muestre de otra forma, porque así pierdo la pantalla
  #2 (permalink)  
Antiguo 21/12/2009, 12:12
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 2 meses
Puntos: 4
Respuesta: echo 'mensaje enviado' me sale en una página en blanco y no en la actual

que el mensaje se muestre de otra forma? como ?
__________________
*La amistad se multiplica cuando se divide*

Última edición por reimonfranco; 21/12/2009 a las 12:43
  #3 (permalink)  
Antiguo 21/12/2009, 12:31
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: echo 'mensaje enviado' me sale en una página en blanco y no en la actual

Puedes enviarlo con AJAX para que se quede en la misma página y mostrar un mensaje con alert o con algun otro script, puedes hacer que la página que manda el formulario te devuelva a la pàgina anterior pasando un parámetro por la url informando del resultado del envio, etc, etc...

Especifica qué quieres y te podremos ayudar.
  #4 (permalink)  
Antiguo 21/12/2009, 12:41
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: echo 'mensaje enviado' me sale en una página en blanco y no en la actual

si se te cambia la pagina es porque estás redireccionando a otra página
lo otro que podrías hacer es una redireccion inmediata desde la pagina2
onda que llegue y se devuelva a la que debería estar
__________________
Mi Bosque de Sombras Solo Doom Metal!

por favor use esta etiqueta para publicar su código --->[HIGHLIGHT]
  #5 (permalink)  
Antiguo 21/12/2009, 14:25
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: echo 'mensaje enviado' me sale en una página en blanco y no en la actual

y tu código?
__________________
Hospedaje Web al mejor costo!
  #6 (permalink)  
Antiguo 22/12/2009, 03:04
 
Fecha de Ingreso: julio-2007
Mensajes: 48
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: echo 'mensaje enviado' me sale en una página en blanco y no en la actual

A ver si me explico mejor, por una parte tengo esta tabla con el formulario:

<form name="contacto" id="contacto" method="post" action="enviar.php">
<table align="center">
<tr>
<td>Nombre:</td>
<td><input type="text" name="nombre" id="nombre"></td>
</tr>
<tr>
<td>Apellidos:</td>
<td><input type="text" name="apellidos" id="apellidos"></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="mail" id="mail"></td>
</tr>
<tr>
<td>Asunto:</td>
<td><input type="text" name="asunto"></td>
</tr>
<tr>
<td>Mensaje:</td>
<td><textarea name="mensaje" cols="16" rows="5" id="mensaje"></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="enviar" value="Enviar mensaje"></td>
</tr>
</table>
</form>

Y en enviar.php tengo la siguiente función:

<?php
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$mail = $_POST['mail'];
$asunto = $_POST['asunto'];

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

$mensaje = "Mensaje enviado por " .$nombre. " ".$apellidos."\r\n";
$mensaje .= "Su e-mail es: ".$mail."\r\n";
$mensaje .= "Mensaje: ".$_POST['mensaje']."\r\n";
$mensaje .= "Fecha del envio: ".date('d/m/Y', time());

$para = '[email protected]';

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

echo 'Mensaje enviado';
?>

Lo que me gustaría es que en la página se siguiera viendo el formulario, pero que de alguna manera me diga que el mensaje (los datos del formulario) ha sido enviado.

Gracias
  #7 (permalink)  
Antiguo 22/12/2009, 03:23
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: echo 'mensaje enviado' me sale en una página en blanco y no en la actual

Si quieres que el formulario se muestre en enviar.php pon el código html del formulario y en el value de cada campo pones las variables $_POST recibidas. Otra opción es cambiar las dos últimas linias así:

Código PHP:
$res mail($para$asuntoutf8_decode($mensaje), $cabecera);

if (
$res){
    
header("Location:primerarchivo.php?enviado=ok");
}
else{
    
header("Location:primerarchivo.php?enviado=ko");

Sustituye primerarchivo.php por el nombre del archivo donde tienes el formulario. Y allí pones este código donde quieres mostrar el mensaje:

Código PHP:
if ($_GET['enviado'] == "ok"){
    echo 
'Mensaje enviado';
}
elseif (
$_GET['enviado'] == "ko"){
    echo 
'Mensaje no enviado';

Y la otra opción es utilizar AJAX.
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 13:54.