Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/11/2012, 01:54
shilen79
 
Fecha de Ingreso: octubre-2007
Mensajes: 118
Antigüedad: 16 años, 6 meses
Puntos: 11
Respuesta: Formulario PHP enviado/no enviado en HTML

Como recomendación te diría que no implementes el formulario y el script de validación y envío en el mismo archivo, pero si así lo quieres estás haciendo esto:
Código PHP:
    if (mail($destinatario,$asunto,$header,$mensaje)==true) 
        { 
            mail($destinatario,$asunto,$header,$mensaje) 
            ?><h2 class="h2class">Mensaje enviado <?php echo $_POST['nombre']?>!</h2> <p class="pullmt pullquote">¿Te has olvidado de decirme algo? ¡Envíame otro!</p><?php 
        

        else 
        { 
            
?><h2 class="h2class">Ha habido un problema al enviar el mail <?php echo $_POST['nombre']?>!</h2><?php 
        

?>
Y debería ser:
Código PHP:
if(mail($destinatario, $asunto, $header,$mensaje)){
?> 
<h2 class="h2class">Mensaje enviado <?php echo $_POST['nombre']?>!</h2> 
<p class="pullmt pullquote">¿Te has olvidado de decirme algo? ¡Envíame otro!</p>
<?php }else{ ?>
<h2 class="h2class">Ha habido un problema al enviar el mail <?php echo $_POST['nombre']?>!</h2>
<?php }
}
En tu segundo código estás llamando 2 veces a las función mail. En el primero no es necesario hacer == true, puesto que la función mail ya devuelve true o false si se realiza la función o no.
Y la segunda que vez que lo pones, lo que haces es enviarlo 2 veces.
Por lo demás te debería dar válido, si falla algo será previo a esto. Es decir, debes hacer algo similar a:
[php]
if(isset($_POST['nombre']) && $_POST['nombre'] != ''){
// aqui ejecutas el código que has puesto
}else{
formulario de contacto
}

De ese modo si se ha escrito algo en el campo nombre del formulario, permites el envío si no... se mostrará el formulario de contacto.

Espero haberte aclarado un poco el tema. Saludos.