PHP does not send email and no error appears

0

I am using PHP mailer to send an email but it is not sending and no error appears.

FORM:

 <form method="post" action="enviar_mensagem.php">
       <ul style="margin-left: 15px;">
        <li><input type="text" id="Nome" name="nome" placeholder="Nome" required >

           <p class="poss"> <input style="margin-left: 30px;" type="radio" name="gender" value="male">MASCULINO<input type="radio" name="gender" value="male">FEMININO</p><br>
        </li>
        <li><input type="text" id="Rg" name="rg" placeholder="Rg" required ><input type="text" id="Cpf" name="cpf" placeholder="Cpf" required ><input type="text" id="Email" name="email" placeholder="Email" required ></li>
        <li><input type="text" id="End" name="end" placeholder="Endereço" required ></li>
           <li><p class="pcon">Camisa Ciclista</p></li>
        <li><input type="text" id="Data" name="data" placeholder="Data de Nascimento" required ><input type="text" id="Peso" name="peso" placeholder="Peso" required ><input type="text" id="Altura" name="altura" placeholder="Altura" required > <input style="margin-right:5px;" type="radio" name="camisa" value="p">P<input style="margin-left:20px;"  type="radio" name="camisa" value="m"> M<input style="margin-left:20px;"  type="radio" name="camisa" value="g"> G</li>
        <li><p class="pcon" style=" padding-left: 0px;">Telefones para Contato                                                                                                                     Seguro Saúde?</p></li>
        <li><input type="text" id="Data" name="resi" placeholder="Residencial" required ><input type="text" id="Data" name="celular" placeholder="Celular" required > <input style="margin-right:5px;" type="radio" name="seguro" value="sim">SIM<input style="margin-left:20px;"  type="radio" name="seguro" value="nao"> NÃO<input type="text" id="Data" name="plano" placeholder="Plano de Caso" required style="margin-left:8px;"></li>
           <li><p class="pcon" style=" padding-left: 0px;top: 12px;">Contato de Emergência                                                                                                                            Tipo Sanguineo                                    Fator RH</p></li>
        <li><input type="text" id="Data" name="nomee" placeholder="Nome" required ><input type="text" id="Data" name="telefonee" placeholder="Telefone" required >
            <input style="margin-right:5px;" type="radio" name="tipo" value="a">A<input style="margin-left:20px;"  type="radio" name="tipo" value="b"> B<input style="margin-left:20px;"  type="radio" name="tipo" value="AB"> AB<input style="margin-left:20px;"  type="radio" name="tipo" value="O">O
            <input style="margin-right:5px;margin-left:50px;" type="radio" name="fator" value="positivo">Positivo<input style="margin-left:20px;"  type="radio" name="fator" value="negativo">Negativo
           </li>
         <input type="submit" id="compraring" value=" Salvar Inscrição" style="height: 70px;padding-top: 3px;">
       </ul>
       </form>

Send_message.php

      <?php
            session_start();
            ob_start();

            $nome = $_POST['nome'];
            $gender = $_POST['gender'];
            $rg = $_POST['rg'];
            $cpf = $_POST['cpf'];
            $email = $_POST['email'];
            $end = $_POST['end'];
            $data = $_POST['data'];
            $peso = $_POST['peso'];
            $altura = $_POST['altura'];
            $camisa = $_POST['camisa'];
            $resi = $_POST['resi'];
            $celular = $_POST['celular'];
            $seguro = $_POST['seguro'];
            $plano = $_POST['plano'];
            $nomee = $_POST['nomee'];
            $telefonee = $_POST['telefonee'];
            $tipo = $_POST['tipo'];
            $fator = $_POST['fator'];
            $mensagem = $_POST['mensagem'];

            if($_POST['nome'] != '' && $_POST['mensagem'] != ''){
                require("phpmailer/class.phpmailer.php");

                // Inicia a classe PHPMailer

                $mail = new PHPMailer();

                // Define os dados do servidor e tipo de conexão

                // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

                $mail->Host = "mail.brasilbiketour.com";

                $mail->Port = 26;

                $mail->SMTPAuth = true;

                $mail->SMTPSecure = 'tls';

                $mail->IsSMTP(); // Define que a mensagem será SMTP



                $mail->Username = '[email protected]'; // Username de acesso ao e-mail

                $mail->Password = 'brasil123'; // Senha do servidor SMTP

                // Define o remetente

                // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

                $mail->From = "[email protected]"; // Seu e-mail
                $mail->FromName = "Contato Brasil Bike Tour"; // Seu nome

                // Define os destinatário(s)

                // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                $mail->AddAddress('[email protected]');
                $mail->AddReplyTo($email);

                // Define os dados técnicos da Mensagem

                // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

                $mail->IsHTML(true); // Define que o e-mail será enviado como HTML
                $mail->CharSet = 'utf-8'; // Charset da mensagem

                // DEFINIR OPÇÕES DE EVENTO:


                 // Define a mensagem (Texto e Assunto)
                // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                $mail->Subject  = "Mensagem de Contato Brasil Bike Tour"; // Assunto da mensagem
                $mail->Body = "<font style=\"font-size:16px\"><b>Nome:</b> $nome; <br /><b>E-mail:</b> $email; <br /><b>Gênero:</b>$gender; <br /><br /><b>RG:</b>$rg; <br /><br /><b>CPF:</b>$cpf; <br /><br /><b>Endereço:</b>$end; <br /><br /><b>Data:</b>$data; <br /><br /><b>Peso:</b>$peso; <br /><br /><b>Altura:</b>$altura; <br /><br /><b>Tamanho da Camisa:</b>$camisa; <br /><br /><b>Telefone Residencial:</b>$resi; <br /><br /><b>Celular:</b>$celular; <br /><br /><b>Seguro Saude:</b>$seguro; <br /><br /><b>Plano de Caso:</b>$plano; <br /><br /><b>Contato para Emergência:</b>$nomee; <br /><br /><b>Telefone de Emergência:</b>$telefonee; <br /><br /><b>Tipo Sanguineo:</b>$tipo; <br /><br /><b>Fator RH:</b>$fator; <br /><br /><b>Mensagem:</b><br />$mensagem</font>";

                $mail->AltBody = "Nome: $nome;\r\n E-mail: $email;\r\n\r\n Gênero: $gender;\r\n\r\n RG: $rg;\r\n\r\n CPF: $cpf;\r\n\r\n Endereço: $end;\r\n\r\n Data: $data;\r\n\r\n Peso: $peso;\r\n\r\n Altura: $altura;\r\n\r\n  Tamanho da Camisa: $camisa;\r\n\r\n Residencia: $resi;\r\n\r\n Celular: $celular;\r\n\r\n Seguro Saude: $seguro;\r\n\r\n Plano de Caso: $plano;\r\n\r\n Nome Emergencia: $nomee;\r\n\r\n  Telefone de Emergencia: $telefonee;\r\n\r\n Tipo sanguineo: $tipo;\r\n\r\n Fator RH: $fator;\r\n\r\n  Mensagem:\r\n $mensagem;";

       // Envia o e-mail
       $enviado = $mail->Send();
        $mail->ClearAllRecipients();
        $mail->ClearAttachments();
   }
?>
    
asked by anonymous 01.03.2016 / 18:56

1 answer

2

Your code enviar_mensagem.php has a if that verifies that the nome field and the mensagem field has been sent.

This if does not have a else , so if one of these indexes is missing in the $_POST array, your screen will only be blank.

See, your code looks like this:

//...
if($_POST['nome'] != '' && $_POST['mensagem'] != '') {
    //...
}

else is missing to report missing value. Let's change it:

//...
if($_POST['nome'] != '' && $_POST['mensagem'] != '') {
    //...
} else {
    echo "não enviou todos os parâmetros";
}

Now let's review your form. There must be 2 fields, nome and mensagem . The nome field exists:

<input type="text" id="Nome" name="nome" placeholder="Nome" required >

But where is the mensagem field?

There are two solutions, or I created the message field:

<input type="text" id="Mensagem" name="Mensagem" placeholder="Mensagem" required >

Or change your if to consider only nome :

//...
if($_POST['nome'] != '') {
    //...

Now you need to ensure that your email is successfully sent and if there is an error, print it on the screen. Within if , at the end comment the following line:

//$enviado = $mail->Send();

Add the following:

//...
$mail->SMTPDebug = 1;
if(!$mail->Send()) { 
   echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
     echo "Enviado com sucesso!";
    $mail->ClearAllRecipients();
    $mail->ClearAttachments();
}
    
01.03.2016 / 20:18