Comunidad de diseño web y desarrollo en internet online

Sobre correos como evitar cambio de pagina??

Citar            
MensajeEscrito el 20 Oct 2010 05:04 pm
Hola mi pagina funciona muy bien y todo pero el problema se da cuando dan clic
al boton de enviar... si me envia el correo y todo pero no se como gestionar para que
se quede en mi pagina y en ella me envie el tipico mensaje de correo enviado.

Lo que tengo en el archivo que envia el correo es esto("contacto.php"):

Código PHP :

<?php
   $mensaje=$_POST['comenta'];
   $para = '[email protected]';

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

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

   echo "&respuesta=Mensaje enviado correctamente";

?>

y la pagina principal de mi sitio tiene lo siguiente:

Código HTML :

<form  action="contacto.php" method="post">
                       Nombre: <input type="text" name="nombre"><br/>
                        Correo: <input type="text" name="correo"><br/>
                        Comentario:<textarea name="comenta"></textarea><br/>
                        <input  type="submit" name="boton" value="Enviar">
                    </form> 


Como se gestiona para que no me deje colgado en la pagina de php?? y en la que tengo aparesca un mensaje de enviado o algo asi??

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 20 Oct 2010 05:22 pm
Pues yo que tú simplemente pondría código HTML a continuación del PHP diciéndole al visitante lo que tú quieras.
Pero tal vez lo que deseas es redireccionarlo a otra página, para ello se usa la función header();

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 21 Oct 2010 12:17 am
Si como lo dice DriverOp puedes usar la función header luego de enviar el mail o bien podrias hacerlo usando AJAX. Saludos

Por bucle_infinito

Claber

166 de clabLevel

1 tutorial

 

.NET Developer

firefox
Citar            
MensajeEscrito el 21 Oct 2010 10:40 pm
Lo siento no se nada sobre ajax.. ni siquiera se si mi servidor lo soporta.. me rindo podrian mandarme un ejemplo completo donde se vea como funciona de favor..??

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 22 Oct 2010 12:45 pm
lo que se puede hacer es en la pagina que toma los datos y envía el correo al finalizar haga algo como

Código PHP :

header('location: paginaDelFormulario.php');

hay te devuelve a la pagina desde la que enviaste el correo, si quieres que te muestre un mensaje le puedes colocar algo asi

Código PHP :

$msg = "el correo se envio, VIVA EL SPAM";
header('location: paginaDelFormulario.php?msg='.$msg);

y para capturarlo en tu pagina inicial deberias hacer algo como

Código PHP :

$msg = $_GET['msg'];
echo $msg;

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

chrome
Citar            
MensajeEscrito el 22 Oct 2010 02:23 pm
Esque mi principal problema es que una vez que coloco el header('location:"); me manda un error como este:

correo enviado..
Warning: Cannot modify header information - headers already sent by (output started at /home1/remedias/public_html/clientes/0038_mankala/public_html/contacto.php:12) in /home1/remedias/public_html/clientes/0038_mankala/public_html/contacto.php on line 18

Lei algo sobre heder y parece ser que necesita que la direccion alaque vaya con location debe ser puro codigo php o algo asi.
Tengo solo 4 archivos el index.php, el contacto.php que es el que envia el formulario, un css y un js
Por eso pedia un ejemplo completo... para darme una idea de mi error o que ocurre.

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 22 Oct 2010 03:59 pm
No es ese el problema.
La función header() envia encabezados HTTP al cliente y estos deben aparecer ANTES que cualquier contenido de la página. El mensaje de error está diciendo que ya has enviado algo al cliente que NO es un header.
Revisa tu script porque antes de ejecutarse header() estás enviando algo con echo, o código HTML o un simple espacio en blanco, enter, tabulador, BOM, cualquier cosa que no sean los headers propios del servidor web, causa el error que indicas.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 22 Oct 2010 04:36 pm
ups entonces no lo estoy usando bien.. por que lo puse al final del archivo que envia el correo... pero entonces como es la logica??

El archivo PHP que envia el correo debe tener el header al principio?? o es el que llama al archivo que envia al correo
aaaaaaaaaaaaaa no entiendooooo

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 22 Oct 2010 06:36 pm
Header() lo puedes ejecutar en cualquier parte siempre y cuando ANTES de que se ejecute no hayas enviado NADA al cliente. ¿Entiendes qué es no enviar nada al cliente?.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 25 Oct 2010 03:09 pm
mmmmm ok ok pero no te molestes ya lo entendi a y muchas gracias me funciono perfectamente te lo agradesco

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.