Foros del Web » Programando para Internet » PHP »

duda de novato: Mostrar mensaje de confirmación de formulario en la misma página

Estas en el tema de duda de novato: Mostrar mensaje de confirmación de formulario en la misma página en el foro de PHP en Foros del Web. Hola! Soy novato en esto de php... Tengo un formulario simple en un html que con Cita: <form action="contacto.php"> el cual es el siguiente: Código: ...
  #1 (permalink)  
Antiguo 28/03/2013, 12:36
Avatar de NaRanJiTo78  
Fecha de Ingreso: noviembre-2007
Ubicación: In the BeaCh
Mensajes: 874
Antigüedad: 17 años
Puntos: 10
Pregunta duda de novato: Mostrar mensaje de confirmación de formulario en la misma página

Hola!

Soy novato en esto de php...
Tengo un formulario simple en un html que con
Cita:
<form action="contacto.php">
el cual es el siguiente:

Código:
<?php
//Importamos las variables del formulario de contacto
@$nombre = addslashes($_POST['nombre']);
@$email = addslashes($_POST['email']);
@$telefono = addslashes($_POST['telefono']);
@$mensaje = addslashes($_POST['mensaje']);
//Preparamos el mensaje de contacto
$cabeceras = "De: $email\n" //La persona que envia el correo
 . "Reply-To: $email\n";
$asunto = "Mensaje desde www.miweb.es"; //asunto aparecera en la bandeja del servidor de correo
$email_to = "[email protected]"; //cambiar por tu email
$contenido = "$nombre ha enviado un mensaje desde la web www.miweb.es\n"
. "\n"
. "Nombre: $nombre\n"
. "Email: $email\n"
. "Teléfono: $telefono\n"
. "Mensaje: $mensaje\n"
. "\n";
//Enviamos el mensaje y comprobamos el resultado
if (@mail($email_to, $asunto ,$contenido ,$cabeceras )) {

//Si el mensaje se envía muestra una confirmación
die("Gracias, su mensaje se envio correctamente.");
}else{
//Si el mensaje no se envía muestra el mensaje de error
die("Error: Su información no pudo ser enviada, intente más tarde");
}
?>
Y al pulsar enviar me redirige a una página en blanco con el mensaje de confirmación.

Pero como hacer que ejecute el php y me muestre el mensaje de confirmación en la misma página que está el formulario?

Un saludo, muchas gracias
  #2 (permalink)  
Antiguo 28/03/2013, 13:52
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 20 años, 3 meses
Puntos: 56
Respuesta: duda de novato: Mostrar mensaje de confirmación de formulario en la misma

Holas, NaRanJiTo78.

Puedes lograrlo de variadas formas, entre las cuales está directo en php, o bien usando ajax (javascript).

Si eliges PHP, que es lo más sencillo, puedes hacer que tanto formulario como proceso se realicen en el mismo archivo, en la forma:

contacto.php
Código PHP:
<?php
// acá recibes los valores del form...
$nombre addslashes($_POST['nombre']);
$email addslashes($_POST['email']);
// etc...

// acá preguntas si debes procesar el formulario
// (si la variable POST email existe, es porque alguien envió el formulario,
// tú puedes crear otra variable de control en el formulario, etc.)
if (isset($_POST['email']))
{
  
// acá realizas el envío del email
  // y muestras el mensaje de resultado
}

// acá colocas tu formulario
?>
<form action="contacto.php">
Además, puedes mover todos los bloques de código a sus propios archivos php, de modo que los incluyas (investiga la instrucción "include" de PHP) y así no tienes la clásica sábana de código :P

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 28/03/2013, 14:22
Avatar de ZonaRLX  
Fecha de Ingreso: enero-2011
Mensajes: 75
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: duda de novato: Mostrar mensaje de confirmación de formulario en la misma

Bueno te digo una que yo estoy usando.

en la pagina del formulario crea un iframe con su name y el formulario lo ejecutas en el iframe algo asi.


<iframe name="contacto" style="visibility:hidden;"></iframe>

<form action="contacto.php" target="contacto"></form>

y en la confirmación de contacto.

echo"<script>alert('Gracias, su mensaje se envio correctamente.')</script>";

y si no se envia.

echo"<script>alert('Error: Su información no pudo ser enviada, intente más tarde.')</script>";

yo asi lo estoy usando y se envian los datos sin salir de la pagina del formulario
  #4 (permalink)  
Antiguo 28/03/2013, 15:59
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 9 meses
Puntos: 9
Respuesta: duda de novato: Mostrar mensaje de confirmación de formulario en la misma

usando el pequeño script que dio zona puedes poner esto en el codigo del boton de enviar
<input type="submit" onclick="alert('Gracias, su mensaje se envio correctamente.')">

y ponle la accion del formulario en la misma pagina, y usa
if (empty($asunto){}
if (empty($contenido){}
if (empty($cabeceras){}

de manera que si no ah enviado el mensaje aun no haga nada para que no se envie al entrar en la pagina.

Última edición por omarinfinito; 28/03/2013 a las 16:03 Razón: No note las lineas de codigo completas.

Etiquetas: formulario, html, mensaje, página, variables
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 22:15.