Foros del Web » Programando para Internet » PHP »

No encuentro error en el formulario

Estas en el tema de No encuentro error en el formulario en el foro de PHP en Foros del Web. Buenas tengo este codigo para el envio de un formulario: contacto.php: Código PHP: <?php     $id  =  "oculto" ;     if( $_GET [ 'mail' ] ==  "enviado" ){ ...
  #1 (permalink)  
Antiguo 07/02/2015, 13:24
 
Fecha de Ingreso: febrero-2015
Mensajes: 1
Antigüedad: 9 años, 1 mes
Puntos: 0
Exclamación No encuentro error en el formulario

Buenas tengo este codigo para el envio de un formulario:

contacto.php:

Código PHP:
<?php
    $id 
"oculto";
    if(
$_GET['mail'] == "enviado"){
        
$id "enviado";
        
$nota "Mensaje enviado  ✓";
    }else if(
$_GET['mail'] == "error"){
        
$id "error";
        
$nota "No se envio el mensaje, revisa todos los campos.";
    }else{
        
$id "oculto";
    }
?>
Código HTML:
<form action="enviar.php" method="post">
                    <div  class="pruebanota"><?php echo $nota ?></div>

                    <select name="destinatario" class="destinatario" form="carform">
                      <option class="seldest" value="seldest">Seleccione un destinatario</option>
                      <option class="pepeg" value="[email protected]">Pepe Gutiérrez</option>
                      <option class="wmaster" value="[email protected]">Web Master</option>
                    </select>
                    <br></br>

                    <div class="espaciodest">
                    </div>

                    <label class="lnombre" for"nombre"><b>Nombre:</b> (Obligatorio)</label><p>
                    <div class="espaciado2">
                    </div>
                    <input type="text" name="nombre" placeholder="Nombre y apellidos" maxlength="80" class="nombre">
                    <br></br>

           
                    <label class="lemail" for"email"><b>Email:</b> (Obligatorio)</label><p>
                    <div class="espaciado2">
                    </div>
                    <input type="email" name="email" placeholder="[email protected]" maxlength="80" class="email">
                    <br></br>
                   
                    <label class="lasunto" for"asunto"><b>Asunto:</b></label><p>
                    <div class="espaciado2">
                    </div>
                    <input type="text" name="asunto" class="asunto" placeholder="Asunto">
                    <br></br>
                   
                    <label class="lmensaje" for"mensaje"><b>Mensaje:</b> (Obligatorio)</label><p>
                    <div class="espaciado2">
                    </div>
                    <textarea class="mensaje" name="mensaje" placeholder="Mensaje" maxlength="500"></textarea>
                    <br></br>
                    <input type="submit" value="Enviar" id="enviar" class="bt-enviar">
       

                </form> 
enviar.php:

Código PHP:
<?php
    
if($_POST['nombre'] != "" && $_POST['email'] != "" && $_POST['mensaje'] != "" && $_POST['destinatario'] != "seldest"){
        
$mensaje="Mensaje del formulario de contacto de www.pepe-gutierrez.com";
        
$mensaje .= "\n";
        
$mensaje.= "\nNombre: " .$_POST['nombre'];
        
$mensaje .= "\n";
        
$mensaje.= "\nEmail: ".$_POST['email'];
        
$mensaje .= "\n";
        
$mensaje.= "\nAsunto: "$_POST['asunto'];
        
$mensaje .= "\n";
        
$mensaje.= "\nMensaje: \n".$_POST['mensaje'];
        
$destino $_POST['destinatario'];

       
        
$remitente $_POST['email'];
        
$asunto "Mensaje enviado por: ".$_POST['nombre'];
       
        
mail($destino,$asunto,$mensaje,"FROM: $remitente");

        
header('Location: contacto.php?mail=enviado');
   
    }else{
        
header('Location: contacto.php?mail=error');
    }
?>
Lo que me falla es, que si no se elije nada en el <select> en vez de salirme el error me sale enviado correctamente, ademas no consigo que el formulario se envie al correo seleccionado en el <select>, ¿alguien puede ayudarme?

Un saludo y muchas gracias!
  #2 (permalink)  
Antiguo 07/02/2015, 13:46
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: No encuentro error en el formulario

Yo tampoco veo error pero prueba ejecutar var_dump($_POST) en lugar del if para que veas como se esta enviando el valor de ese select
  #3 (permalink)  
Antiguo 08/02/2015, 11:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No encuentro error en el formulario

Por lo pronto, no estás evaluando en ningún momento que se haya enviado o no. Tu ELSE lo que evalúa es si tiene algo en las variables recibidas, no si se está enviando el mail.

Código PHP:
    if(mail($destino,$asunto,$mensaje,"FROM: $remitente"))
        {
header('Location: contacto.php?mail=enviado'); }
    else 
        { 
header('Location: contacto.php?mail=error'); } 
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: contacto, formulario
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 10:45.