Foros del Web » Programando para Internet » PHP »

ayuda con formulario!!!!!!!!!!!!!!!!

Estas en el tema de ayuda con formulario!!!!!!!!!!!!!!!! en el foro de PHP en Foros del Web. hola a todos mi pregunta es la siguiente, tengo un formulario de contacto hecho en html el codigo es: Código HTML: <form id= "contacto" name= ...
  #1 (permalink)  
Antiguo 20/06/2007, 09:30
 
Fecha de Ingreso: junio-2007
Mensajes: 1
Antigüedad: 16 años, 10 meses
Puntos: 0
ayuda con formulario!!!!!!!!!!!!!!!!

hola a todos
mi pregunta es la siguiente, tengo un formulario de contacto hecho en html el codigo es:

Código HTML:
<form id="contacto" name="contacto" method="post" action="enviar.php"> <table width="75%" border="1">    
<tr>       
<td>Nombre</td>      
<td><input name="nombre" id="nombre" type="text" size="30"></td> </tr>    
<tr>       
<td>Tel&eacute;fono</td>      
<td><input type="text" id="fono" name="fono" size="30"></td>    
</tr>    
<tr>       
<td>Email</td>      
<td><input type="text" id="mail" name="mail" size="30"></td>    
</tr>    
<tr>       
<td>Mensaje</td>      
<td>&nbsp;</td>    
</tr>    
<tr>       
<td colspan="2"><textarea name="mensaje" id="mensaje" rows="8" cols="40"></textarea></td>    
</tr>    
<tr>       
<td colspan="2">&nbsp;</td>    
</tr>    
<tr>      
<td colspan="2"><input name="Submit" type="submit" onClick="MM_openBrWindow('pop.htm','Enviar','width=200,height=300')" value="Enviar"></td>    
</tr>  
</table></form> 
hasta ahí todo bien, el archivo php que envia el formulario el codigo es:

Código PHP:
<?php 
$nombre 
$_POST['nombre'];
$mail $_POST['mail'];
$empresa $_POST['fono'];
$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 ", con fono " $fono " \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 'Contacto desde Estudio Grafico 3';
mail($para$asuntoutf8_decode($mensaje), $header);
echo 
'Su mensaje fue enviado correctamente';

mi problema es que cuando envio el formulario, me salta a una pantalla en blanco que dice (Su mensaje fue enviado correctamente), mi pregunta es, se puede hacer que esta pantalla sea un popup o un html como para ponerle diseño y no quede en blanco.

gracias
  #2 (permalink)  
Antiguo 20/06/2007, 09:35
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: ayuda con formulario!!!!!!!!!!!!!!!!

Hola!!...

Y si en lugar de:
echo 'Su mensaje fue enviado correctamente'; lo cambias por algo asi:
include('completado.html'); en donde el 'completado.html' es el HTML que contendría el resultado del envio un poco más elegante.

SALUDOS
Ruymán Trujillo
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #3 (permalink)  
Antiguo 21/06/2007, 08:18
Avatar de monjeruiz  
Fecha de Ingreso: junio-2007
Ubicación: Santiago, Chile
Mensajes: 113
Antigüedad: 16 años, 10 meses
Puntos: 3
Re: ayuda con formulario!!!!!!!!!!!!!!!!

Prueba con esto para mandarlo a otra pagina es mas seguro que funcione que el header("Location: pagina.php"); "muxas veces el header manda errores"

echo "<script language='JavaScript'>";
echo "location = 'pagina.php?mod=cargar'";
echo "</script>";

Saludos, K&N
  #4 (permalink)  
Antiguo 21/06/2007, 08:43
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: ayuda con formulario!!!!!!!!!!!!!!!!

También puedes, quitar ese echo y poner el diseño que quieres, aunque la opción del include, separa mejor lo que es la programación del HTML.

Por ejemplo, incluyes tu PHP si se cumple la condición:
Código PHP:
<?php 
if(isSet($_POST['nombre'],$_POST['mail'],$_POST['fono'])) {
$nombre $_POST['nombre'];
$mail $_POST['mail'];
$empresa $_POST['fono'];
$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 ", con fono " $fono " \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 'Contacto desde Estudio Grafico 3';
mail($para$asuntoutf8_decode($mensaje), $header);
include(
"enviado.php");
} else {
echo(
"Ocurrió un error.<br />\nAsegúrese de haber introducido todos los datos."); // Aquí, al igual que si es correcto, puedes incluir un archivo de error.php
}
Luego en enviado.php podrías poner algo así:
Código PHP:
<div>
<p>Gracias por enviar el mensaje <strong><?=$_POST['nombre']?></strong>.</p>
<p>En breve nos pondremos en contacto contigo mediante el email que nos facilitaste (<?=$_POST['email']?>).</p>
</div>
Mas opciones... Puede ser que por cualquier cosa falle el envío del email. Por esos casos, para evitar que el usuario piense que el mensaje se ha enviado y no ser así, suele poner un condicional a la función mail():
Código PHP:
<?
[...]
if(
mail($para$asuntoutf8_decode($mensaje), $header)) include("enviado.php");
else include(
"error.php");
[...]
?>
Saludos.

Última edición por pzin; 21/06/2007 a las 08:52
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 08:37.