Foros del Web » Programando para Internet » PHP »

Formulario PHP enviado/no enviado en HTML

Estas en el tema de Formulario PHP enviado/no enviado en HTML en el foro de PHP en Foros del Web. Llamadme idiota si quereis. Ya no sé si es que estoy muy quemada y ya no rijo, o es que de verdad debo de ser ...
  #1 (permalink)  
Antiguo 26/11/2012, 15:47
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 38
Antigüedad: 13 años, 6 meses
Puntos: 4
Pregunta Formulario PHP enviado/no enviado en HTML

Llamadme idiota si quereis.
Ya no sé si es que estoy muy quemada y ya no rijo, o es que de verdad debo de ser tontita. Sí, soy nueva en esto del PHP y si no me ayudáis a ubicarme en el camino me voy a desquiciar!.

Tengo mi formulario para envío de datos chachi piruli, (pues envía perfectamente!) Pero he aquí la soberana chorrada (tiene toda la pinta de ser así, pero a mi, se me resiste)

Tengo dos archivos:

contacto.html --> Donde está el formulario con un action="contacto_enviado.php"
contacto_enviado.php --> Las variables con los datos que se recogen y el envío a través de mail().

y quiero integrar ambas respuestas
- Su mensaje ha sido enviado
- Su mensaje no ha sido enviado
dentro de mi HTML.

ASÍ LO TENGO CON PHP:

Código PHP:
    if(mail($destinatario,$asunto,$mensaje,$header))
    {
           
$resultado='<p>Tu mensaje ha sido enviado correctamente. ¡Gracias!</p>';
    }
    else
    {
           
$resultado='<p>Tu mensaje NO ha sido enviado correctamente. ¡Intentalo de nuevo!</p>';
    }
    echo 
$resultado
y ASÍ LO INTENTÉ INTEGRAR YO CON MI HTML

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
        
}
?>
¿Me lié.. no?

Muchisimas gracias de antemano por su ayuda.
  #2 (permalink)  
Antiguo 26/11/2012, 15:53
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Formulario PHP enviado/no enviado en HTML

El mail deberías de dejarlo "libre" y directamente te lo tomas como "true" :D
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 27/11/2012, 01:43
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 38
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Formulario PHP enviado/no enviado en HTML

Cita:
Iniciado por CoriaWeb Ver Mensaje
El mail deberías de dejarlo "libre" y directamente te lo tomas como "true" :D
como libre? Perdona -Php para tontos- porfavor! :D
Gracias por tomar tu atencion :)
  #4 (permalink)  
Antiguo 27/11/2012, 01:54
 
Fecha de Ingreso: octubre-2007
Mensajes: 118
Antigüedad: 16 años, 5 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.
  #5 (permalink)  
Antiguo 27/11/2012, 02:25
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
Respuesta: Formulario PHP enviado/no enviado en HTML

Cita:
Iniciado por shilen79 Ver Mensaje
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.
Creo que sería más correcto mencionar que al no especificar la comparación con TRUE, el condicional asume implícitamente que se espera TRUE.

Etiquetas: correo, email, formulario, 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 11:33.