Foros del Web » Programando para Internet » PHP »

mensaje de envio correcto en la misma pagina - formulario

Estas en el tema de mensaje de envio correcto en la misma pagina - formulario en el foro de PHP en Foros del Web. hola una sugerencia o como lo podria realizar tengo un formulario y un archivo envio.php aparte para el envio del formulario que esta en un ...
  #1 (permalink)  
Antiguo 11/04/2011, 15:55
 
Fecha de Ingreso: febrero-2007
Mensajes: 232
Antigüedad: 17 años, 2 meses
Puntos: 1
mensaje de envio correcto en la misma pagina - formulario

hola una sugerencia o como lo podria realizar tengo un formulario y un archivo envio.php aparte para el envio del formulario que esta en un html todo funciona bien lo que necesito es que al hacer el envio me salga un mensaje de enviado correctamente debajo del formulario el formulario se encuentra en un archivo html les pongo el form

<form method="post" action="e-mail/envio.php" name="formulario" id="formulario">
<table width="340" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="120" colspan="3">&nbsp;</td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td width="159">Nombre Completo :</td>
<td width="171">Comentario :</td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td><span id="sprytextfield1">
<input type="text" name="nombre" id="nombre"/>
</span>*</td>
<td rowspan="3" valign="top"><table width="150" border="0" cellspacing="0" cellpadding="0">
<tr>
<td rowspan="2"><span id="sprytextarea1">
<textarea name="mensaje" id="mensaje" cols="18" rows="4"></textarea>
</span></td>
<td height="32" valign="middle">*</td>
</tr>
<tr>
<td valign="middle">&nbsp;</td>
</tr>
</table> <br /></td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td>Teléfono :</td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td valign="top"><table width="150" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><span id="sprytextfield2">
<input type="text" name="telefono" id="telefono"/>
<span class="textfieldRequiredMsg"></span></span>*</td>
</tr>
<tr>
<td>E-mail :</td>
</tr>
<tr>
<td><span id="sprytextfield4">
<input type="text" name="email" id="email"/>
<span class="textfieldRequiredMsg"></span><span class="textfieldInvalidFormatMsg"></span></span>*</td>
</tr>
</table></td>
</tr>
<tr>
<td height="3" colspan="3"></td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td bgcolor="#E9E9E9">
<div id="mensaje-confirmacion"></div>
</td>
<td bgcolor="#e9e9e9" style="padding-left:40px;"><input name="boton" type="submit" id="alta" value="Enviar"/>
<input name="target" type="hidden" id="target" value="[email protected]" /></td>
</tr>
</table>
</form>


y el php


<?php
$subject = "Informaci&oacuten de Contacto";
$noEsp = 0;

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: $remite <".$_POST['email'].">\r\n";
$message = "<h3>Informaci&oacuten Personal:</h3>\n";
$message .= "<b>Nombre y Apellido: </b>".$_POST['nombre']."<br>";
$message .= "<b>E-mail: </b>".$_POST['email']."<br>";
$message .= "<b>Tel&eacutefono: </b>".$_POST['telefono']."<br>";
$message .= "<p><h3>Informaci&oacuten adicional y/o Comentarios</h3></p>";
$message .= "<br>".$_POST['mensaje']."";
$message .= "<b>Diplomado: </b>". $_SERVER['HTTP_REFERER']."<br>";

mail($_POST['target'], $subject, $message, $headers);
header("location:../archivo.html");

?>

como digo nesesito un mensaje de gracias por el envio en le html del formulario

gracias

Última edición por cualquiera; 11/04/2011 a las 16:22
  #2 (permalink)  
Antiguo 11/04/2011, 17:47
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mensaje de envio correcto en la misma pagina - formulario

2 opciones:
1.- Con una variable de SESSION al final del html, pondrias esto:
if(isset($_SESSION['msg']))
echo $_SESSION['msg'];
Le asignarias el valor al final del script php ya que se realize todo el proceso correctamente.
2.- Con una variable por url, igual que la anterior, le asignas el valor el final de script PHP ya que funciono todo y la muestras de la siguiente manera:
en el header pondrias primero esto:
header("Location: ../archivo.php?msg=".$mensaje);
y en archivo.php pondrias lo mismo que arriba pero con un solo cambio:
if(isset($_GET['msg']))
echo $_GET['msg'];
Espero te funcione.

Saludos
  #3 (permalink)  
Antiguo 11/04/2011, 19:03
 
Fecha de Ingreso: noviembre-2008
Ubicación: Cochabamba Bolivia
Mensajes: 519
Antigüedad: 15 años, 5 meses
Puntos: 26
Respuesta: mensaje de envio correcto en la misma pagina - formulario

No seria mas facil poner el codigo php de envio.php en la pagina donde esta el form? (esto supondria cambiar el formato html a php del form.) Asi cuando se realize el proceso podrias mostrar el mensaje en la misma pagina:
<?php
//aqui iria todo el codigo del php justo encima del form (una vez que realiza el proceso ponemos la condicion para asignar el si a la variable $enviado)//
if($_POST[email] && $_POST[nombre] && $_POST[mensaje]){
$enviado = "si";
}else{
$enviado = "no";
}
?>
aqui el form!!!!!
<?php
if($enviado == "si"){

echo "EL mensaje se ha enviado correctamente!";
}else{
echo "error, falta algo por rellenar!";
}

?>

Yo lo veo mejor asi, y ademas de ahorras una pagina mas que estar administrando!
saludos.
  #4 (permalink)  
Antiguo 11/04/2011, 20:03
 
Fecha de Ingreso: febrero-2007
Mensajes: 232
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: mensaje de envio correcto en la misma pagina - formulario

hola gracias a ambos por responder lo que dice xtimed parece algo para mi mejor o probar ya que la respuesta de fido-strike he probado intentando poniendo tanto el form como le php juntos pero me da un problema o 2 problemas priemro que al enviar el form y obtengo el mensaje de enviado correctamente al recargar o refrescar la pagina se envian nuevamente los datos reliza un envio caa vez que se recargsa o refrsca la pagina y eso no lo he podido controlar o algun ejemplo que pudea no tener ese problema lasolucion que pone xtimed no lo he probado auin asi que intentare pues la otra opcion presento esos problemas si alguijne puduera poner otra solucion con respecto a poner juntos el form con el php y evitar el problema del reenvio al refrescar o recargar la pgina seria execelnte

muchas gracias espero respuestas
  #5 (permalink)  
Antiguo 11/04/2011, 20:18
 
Fecha de Ingreso: febrero-2007
Mensajes: 232
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: mensaje de envio correcto en la misma pagina - formulario

Amigo xtimed como hago esto ( Le asignarias el valor al final del script php) es crear un variable algo si $msg="mensaje enviado correctamente"; avisamesi es correcto colocar asi el valor que indicas gracias.
  #6 (permalink)  
Antiguo 12/04/2011, 12:40
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mensaje de envio correcto en la misma pagina - formulario

En tu php tu tienes este codigo:

Código PHP:
<?php
$subject 
"Informaci&oacuten de Contacto";
$noEsp 0;

$headers "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: $remite <".$_POST['email'].">\r\n";
$message "<h3>Informaci&oacuten Personal:</h3>\n";
$message .= "<b>Nombre y Apellido: </b>".$_POST['nombre']."<br>";
$message .= "<b>E-mail: </b>".$_POST['email']."<br>";
$message .= "<b>Tel&eacutefono: </b>".$_POST['telefono']."<br>";
$message .= "<p><h3>Informaci&oacuten adicional y/o Comentarios</h3></p>";
$message .= "<br>".$_POST['mensaje']."";
$message .= "<b>Diplomado: </b>"$_SERVER['HTTP_REFERER']."<br>";

mail($_POST['target'], $subject$message$headers);
header("location:../archivo.html");

?>
en la parte donde tienes mail($_POST['target'], $subject, $message, $headers);
puedes cambiar esa linea por esto:

Código PHP:
if(mail($_POST['target'], $subject$message$headers))
 
$msg "Mensae enviado correctamente";
else
 
$msg "Error al enviar el mensaje."
header("location:../archivo.php?msg=$msg"); 
De esa manera ya sabes si se envio o no, y en la pagina principal donde quieres que aparesca el mensaje lo muestras de cualquiera de las formas que te mencione

tendrias la pagina principal lo siguiente:

Código PHP:
<form method="post" action="e-mail/envio.php" name="formulario" id="formulario">
<table width="340" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="120" colspan="3">&nbsp;</td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td width="159">Nombre Completo :</td>
<td width="171">Comentario :</td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td><span id="sprytextfield1">
<input type="text" name="nombre" id="nombre"/>
</span>*</td>
<td rowspan="3" valign="top"><table width="150" border="0" cellspacing="0" cellpadding="0">
<tr>
<td rowspan="2"><span id="sprytextarea1">
<textarea name="mensaje" id="mensaje" cols="18" rows="4"></textarea>
</span></td>
<td height="32" valign="middle">*</td>
</tr>
<tr>
<td valign="middle">&nbsp;</td>
</tr>
</table> <br /></td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td>Teléfono :</td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td valign="top"><table width="150" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><span id="sprytextfield2">
<input type="text" name="telefono" id="telefono"/>
<span class="textfieldRequiredMsg"></span></span>*</td>
</tr>
<tr>
<td>E-mail :</td>
</tr>
<tr>
<td><span id="sprytextfield4">
<input type="text" name="email" id="email"/>
<span class="textfieldRequiredMsg"></span><span class="textfieldInvalidFormatMsg"></span></span>*</td>
</tr>
</table></td>
</tr>
<tr>
<td height="3" colspan="3"></td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td bgcolor="#E9E9E9">
<div id="mensaje-confirmacion"></div>
</td>
<td bgcolor="#e9e9e9" style="padding-left:40px;"><input name="boton" type="submit" id="alta" value="Enviar"/>
<input name="target" type="hidden" id="target" value="[email protected]" /></td>
</tr>
</table>
</form>
[B]<div><?php if(isset($_GET['msg'])) echo $_GET['msg']; ?></div>[/B]

Última edición por xtimed; 12/04/2011 a las 12:44 Razón: Me falto poner el mensaje en la pagina y el redireccionamiento
  #7 (permalink)  
Antiguo 12/04/2011, 15:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 232
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: mensaje de envio correcto en la misma pagina - formulario

hola gracias por la qyuda todo bien hasta hora una consulta mas como puedo agregar campos de validacion a ese formulario o al script php sobre todo me intersa validar el campo email buneo y se se puede los otroaas campos tambien nombre telefono mensaje muchas gracias
  #8 (permalink)  
Antiguo 12/04/2011, 18:48
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mensaje de envio correcto en la misma pagina - formulario

Si gustas mandame un MP, creo que ese ya es otro tema y creo que tendrias que abrir otro post, esa duda que tienes de como validar, creo que hay muchas opciones aqui en forosdelweb, solo pegale una busqueda, tanto en php como con javascript, por ejemplo [URL="http://www.forosdelweb.com/f18/validar-formulario-con-php-541702/"]>>este<<[/URL]

Etiquetas: correcto, evio
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 17:49.