Foros del Web » Programando para Internet » PHP »

Problema con echo y else

Estas en el tema de Problema con echo y else en el foro de PHP en Foros del Web. Hola compañeros. Tengo un codigo que me envía el mail correctamente: <?php $para = "[email protected]"; $nombre = $_POST["nombre"]; $asunto = "Enviado por: $nombre: ".$_POST["asunto"]; $mensaje ...
  #1 (permalink)  
Antiguo 01/02/2013, 14:18
 
Fecha de Ingreso: mayo-2010
Mensajes: 43
Antigüedad: 9 años, 7 meses
Puntos: 0
Problema con echo y else

Hola compañeros.

Tengo un codigo que me envía el mail correctamente:

<?php
$para = "[email protected]";
$nombre = $_POST["nombre"];
$asunto = "Enviado por: $nombre: ".$_POST["asunto"];
$mensaje = $_POST["mensaje"];
$de = $_POST["mail"];

$headers = "MIME-Version:1.0;\r\n";
$headers .= "Content-type: text/html; \r\n charset=iso-8859-1; \r\n";
$headers .= "From: $de \r\n";
$headers .= "To: $para; \r\n Subject:$asunto \r\n";

if (mail($para, $asunto, $mensaje, $headers))
{
echo "Gracias, Su mensaje se ha enviado correctamente ...";
}
else
{
echo "Su mensaje NO ha sido enviado, por favor, vuelva a intentarlo.";
}
?>

La cuestión es que al mandarlo correctamente me muestra el segundo echo ...
Su mensaje NO ha sido enviado, por favor, vuelva a intentarlo.

Y si intento mandarlo erróneo me muestra el mismo mensaje.

Hay algo despues del if final que no logro averiguar y he probado algunas otras opciones

Agradezco mucho la ayuda y esa "manita".
  #2 (permalink)  
Antiguo 01/02/2013, 14:32
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 486
Antigüedad: 8 años, 3 meses
Puntos: 31
Respuesta: Problema con echo y else

hazlo de esta manera a ver

$sent = mail($para, $asunto, $mensaje, $headers) ;
if($sent)
{
echo "Gracias, Su mensaje se ha enviado correctamente ...";

} else {
echo "Su mensaje NO ha sido enviado, por favor, vuelva a intentarlo.";

}
?>
__________________
El talento se educa en la KARMA y el carácter en la tempestad.
Gabriel De Los Santos
  #3 (permalink)  
Antiguo 01/02/2013, 15:09
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 7 meses
Puntos: 461
Respuesta: Problema con echo y else

yo que tu haría un debug
Código PHP:
Ver original
  1. var_dump(mail($para, $asunto, $mensaje, $headers));

porque si esta entrando siempre en el else es que esta fallando el envio del correo
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #4 (permalink)  
Antiguo 01/02/2013, 15:31
 
Fecha de Ingreso: mayo-2010
Mensajes: 43
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Problema con echo y else

Gracias a los dos, lo pruebo mañana y os comento ...

Carlos ... tal como está el correo me llega perfectamente solo que me muestra el mensaje erróneo.

No te he entendido cuando dices que "si esta entrando siempre en el else esta fallando el envio del correo".
  #5 (permalink)  
Antiguo 01/02/2013, 15:43
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 7 meses
Puntos: 461
Respuesta: Problema con echo y else

Mmm interesante

mail()

Indica que si no envía el correo es que te retorna false;

según lo que indicas te esta retornando siempre false, es interesante que no entre en el condicional si si envía el mensaje, ahora hiciste el debug con el var_dump()??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 01/02/2013, 17:07
 
Fecha de Ingreso: mayo-2010
Mensajes: 43
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Problema con echo y else

el mail me lo manda perfectamente pero el mensaje que me aparece es el de "No Eviado", en lugar de "Enviado Correcto"

No he probado el debug todavia

tienes los headers para evitar que el mail te llegue a correo no deseado en el caso de hotmail ??. Gracias
  #7 (permalink)  
Antiguo 01/02/2013, 22:06
 
Fecha de Ingreso: mayo-2010
Mensajes: 43
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Problema con echo y else

el sent no me funciona, me hace lo mismo
y el var_dump que me mandastes no me funciona no me manda el mensaje.
alguna sugerencia.
Gracias.
  #8 (permalink)  
Antiguo 01/02/2013, 22:41
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con echo y else

Trata de hacer esa declaracion al reves es decir q si se envia te muestre el mensaje de ultimo y sino te lo envia te lo haga de nuevo, o declara una variable q serian donde los registros ingresados o tratados de enviar esten malos y le asignas el else y en donde se envien bien le asignes el if o viscevrsa
  #9 (permalink)  
Antiguo 02/02/2013, 16:10
 
Fecha de Ingreso: febrero-2013
Mensajes: 17
Antigüedad: 6 años, 10 meses
Puntos: 2
Respuesta: Problema con echo y else

¿y que tal si usas un simple exit para detener al php y ya está?


... con tu mismo código y una palabra más.

Código:
<?php
$para = "[email protected]";
$nombre = $_POST["nombre"];
$asunto = "Enviado por: $nombre: ".$_POST["asunto"];
$mensaje = $_POST["mensaje"];
$de = $_POST["mail"];

$headers = "MIME-Version:1.0;\r\n";
$headers .= "Content-type: text/html; \r\n charset=iso-8859-1; \r\n";
$headers .= "From: $de \r\n";
$headers .= "To: $para; \r\n Subject:$asunto \r\n";

if (mail($para, $asunto, $mensaje, $headers))
{
echo "Gracias, Su mensaje se ha enviado correctamente ...";
exit();
}
else
{
echo "Su mensaje NO ha sido enviado, por favor, vuelva a intentarlo.";
}
?>

Etiquetas: echo, html
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 19:46.