send an email with a php form

0

I am trying to send the data of a form to an email but it does not send them to me It shows me up to the second alert. I'm sending.php and nothing appears. Can you help me?

contacto.php

 <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
    <title>Contactenos | Herramientas</title>

    <!-- core CSS -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/font-awesome.min.css" rel="stylesheet">
    <link href="css/prettyPhoto.css" rel="stylesheet">
    <link href="css/animate.min.css" rel="stylesheet">
    <link href="css/main.css" rel="stylesheet">
    <link href="css/responsive.css" rel="stylesheet">

    <!--[if lt IE 9]> --> 
    <script src="js/html5shiv.js"></script>
    <script src="js/respond.min.js"></script>
    <script src="js/jquery.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/jquery.prettyPhoto.js"></script>
    <script src="js/jquery.isotope.min.js"></script>
    <script src="js/main.js"></script>


    <link rel="shortcut icon" href="images/ico/favicon.ico">
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="images/ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="images/ico/apple-touch-icon-114-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="images/ico/apple-touch-icon-72-precomposed.png">
    <link rel="apple-touch-icon-precomposed" href="images/ico/apple-touch-icon-57-precomposed.png">
</head><!--/head-->

<body class="homepage"> 
<?php require_once('cabecera.php'); ?>   
    <section id="feature">
        <div class="container">
            <div class="center">        
                <h1>Deje su mensaje</h1>
                <h5>Escribanos, le responderemos a la brevedad</h5>
            </div>               
                <div class="row">                       
                    <form id="main-contact-form" class="contact-form" name="contact-form" action="enviar.php" method="post">
                        <div class="col-sm-5 col-sm-offset-1">
                            <div class="form-group">
                                <label>Nombre *</label>
                                <input type="text" id="nombre" name="nombre" class="form-control" required="required">
                            </div>
                            <div class="form-group">
                                <label>Email *</label>
                                <input type="email" id="email" name="email" class="form-control" required="required">
                            </div> 
                            <div class="form-group">
                                <label>Asunto *</label>
                                <input type="text" id="subject" name="subject" class="form-control" required="required">
                            </div>
                            <div class="form-group">
                                <label>Mensaje *</label>
                                <textarea name="mensaje" id="mensaje" required="required" class="form-control" rows="8"></textarea>
                            </div>                        
                            <div class="form-group">
                                <button type="submit" id="submit" name="submit" class="btn btn-primary btn-lg" required="required">Enviar Mensaje</button>
                            </div>                      
                        </div> 
                    </form>
                </div>





        </div><!--/.container-->
    </section>

<?php require_once('pie.php'); ?>   

</body>
</html>

send.php

<?php
    $nombre = $_POST['nombre'];
    $email = $_POST['email'];
    $subject = $_POST['subject'];   
    $mensaje = $_POST['mensaje'];
    $para = '[email protected]';
    echo "<script language='javascript'>
    alert('hola');
    </script>";
    $header = 'From: ' . $email;
    $msjCorreo = "Nombre: $nombre\n E-Mail: $email\n Asunto:\n $subject Mensaje:\n $mensaje";
        echo "<script language='javascript'>
    alert('hola2');
    </script>";  
    /*if ($_POST['submit']) 
    {
                echo "<script language='javascript'>
    alert('hola3');
    </script>";
        if (mail($para, $subject, $msjCorreo, $header)) 
        {
            echo "<script language='javascript'>
            alert('Mensaje enviado, muchas gracias.');
            </script>";
        } 
        else 
        {
            echo "<script language='javascript'>
            alert('fallado');
            </script>";
        }
    } */
?>
    
asked by user1851950 05.02.2017 в 19:07
source

1 answer

2

You are sending your form using button JavaScript , so if ($_POST['submit']) will never check if this statement is true or false, since the identifier submit does not exist in your PHP .

One solution would be to change your button to <input type="submit" name="submit" />

Example:

contacto.php

<form id="main-contact-form" class="contact-form" name="contact-form" action="enviar.php" method="POST">
      <div class="col-sm-5 col-sm-offset-1">
          <div class="form-group">
             <label>Nombre *</label>
             <input type="text" id="nombre" name="nombre" class="form-control" required="required">
           </div>

           <div class="form-group">
              <label>Email *</label>
              <input type="email" id="email" name="email" class="form-control" required="required">
           </div> 

           <div class="form-group">
               <label>Asunto *</label>
               <input type="text" id="subject" name="subject" class="form-control" required="required">
           </div>

           <div class="form-group">
                <label>Mensaje *</label>
                <textarea name="mensaje" id="mensaje" required="required" class="form-control" rows="8"></textarea>
           </div>                        

           <div class="form-group">
                <input type="submit" id="submit" name="submit" class="btn btn-primary btn-lg" value="Enviar" />
           </div>                      
      </div> 
</form>

send.php

<?php
   //Reseteamos variables a 0.
   $nombre = $email = $subject = $mensaje = $para = $headers = $msjCorreo = NULL;

   if (isset($_POST['submit'])) {
      //Obtenemos valores input formulario
      $nombre = $_POST['nombre'];
      $email = $_POST['email'];
      $subject = $_POST['subject'];   
      $mensaje = $_POST['mensaje'];
      $para = '[email protected]';

      //Creamos cabecera.
      $headers = 'From' . " " . $email . "\r\n";
      $headers .= "Content-type: text/html; charset=utf-8";

      //Componemos cuerpo correo.
      $msjCorreo = "Nombre: " . $nombre;
      $msjCorreo .= "\r\n";
      $msjCorreo .= "Email: " . $email;
      $msjCorreo .= "\r\n";
      $msjCorreo .= "Asunto: " . $subject;
      $msjCorreo .= "\r\n";
      $msjCorreo .= "Mensaje: " . $mensaje;
      $msjCorreo .= "\r\n";

    if (mail($para, $subject, $msjCorreo, $headers)) {
         echo "<script language='javascript'>
            alert('Mensaje enviado, muchas gracias.');
         </script>";
    } else {
         echo "<script language='javascript'>
            alert('fallado');
         </script>";
    }
  }
?>

An alternative if you want to send your form using your button and have implemented AJAX help you could update this line if (isset ($ _ POST ['submit'])) to if (isset ($ _ POST))

Example using PHPMailer library:

Download Library PHPMailer

send.php

<?php
       //Reseteamos variables a 0.
       $nombre = $email = $subject = $mensaje = $para = NULL;

       if (isset($_POST['submit'])) {

          //Obtenemos valores input formulario
          $nombre = $_POST['nombre'];
          $email = $_POST['email'];
          $subject = $_POST['subject'];   
          $mensaje = $_POST['mensaje'];
          $para = '[email protected]';


          //Compones nuestro correo electronico

          //Incluimos libreria PHPmailer (deberas descargarlo).
          require'class.phpmailer.php';

          //Nuevo correo electronico.
          $mail = new PHPMailer;
          //Caracteres.
          $mail->CharSet = 'UTF-8';

          //De dirección correo electrónico y el nombre
          $mail->From = "[email protected]";
          $mail->FromName = "Nombre de dominio";

          //Dirección de envio y nombre.
          $mail->addAddress($para, $nombre);
          //Dirección a la que responderá destinatario.
          $mail->addReplyTo("[email protected]","Tunombre");

          //BCC ->  incluir copia oculta de email enviado.
          $mail->addBCC("[email protected]");

          //Enviar codigo HTML o texto plano.
          $mail->isHTML(true);

          //Titulo email.
          $mail->Subject = "Nuestro titulo";
          //Cuerpo email con HTML.
          $mail->Body = "
                  <h1>Envio libreria PHPMailer</h1>

                  Nombre: $nombre<br /> 
                  Email: $email <br />
                  Asunto: $subject <br />
                 Mensaje: $mensaje <br />

          "; 

        //Comprobamos el envio.
        if(!$mail->send()) {                   
            echo "<script language='javascript'>
                alert('fallado');
             </script>";
        } else {
            echo "<script language='javascript'>
                alert('Mensaje enviado, muchas gracias.');
             </script>";
        } 
      }
    ?>
    
answered by 05.02.2017 / 21:27
source