How do I make the form alert correctly?

4

I have a contact form, so when it is populated it is not displaying the failed to send or successfully sent alert, it is redirecting to a search page, here my script:

<form class="form-inline" action="<? $PHP_SELF; ?>" method="post">
    <div class="form-group">
        <label for="nome">Seu nome (obrigatório):</label>
        <input type="text" class="form-control" id="nome" name="nome" placeholder="Digite aqui seu nome...">
    </div>
    <div class="form-group">
        <label for="email">Seu e-mail (obrigatório):</label>
        <input type="email" class="form-control" id="email" name="email" placeholder="Seu email...">
    </div>
    <div class="form-group">
        <label for="telefone">Seu telefone (obrigatório):</label>
        <input type="tel" class="form-control" id="telefone" name="telefone" placeholder="Seu telefone...">
    </div>
    <div class="form-group">
        <label for="assunto">Assunto (obrigatório):</label>
        <input type="text" class="form-control" id="assunto" name="assunto" placeholder="Digite aqui o assunto...">
    </div>
    <div class="form-group">
        <label for="mensagem">Sua Mensagem:</label>
        <textarea type="text" class="form-control" id="mensagem" name="mensagem" placeholder="Escreva aqui sua mensagem..." rows="5"></textarea>
    </div>
    <button type="submit" class="btn btn-default" name="btnEnviarMensagem">Enviar Mensagem</button>
</form>

<?
if (isset($_POST['btnEnviarMensagem'])){
    // Passando os dados obtidos pelo formulário para as variáveis abaixo
    $nome    = $_POST['nome'];
    $emailremetente    = trim($_POST['email']);
    $emaildestinatario = '[email protected]'; // Digite seu e-mail aqui, lembrando que o e-mail deve estar em seu servidor web
    $telefone = $_POST['telefone'];
    $assunto = $_POST['assunto'];
    $mensagem = $_POST['mensagem'];


    /* Montando a mensagem a ser enviada no corpo do e-mail. */
    $conteudo   = "Nome: $nome<br>";
    $conteudo  .= "Email: $emailremetente<br>";
    $conteudo  .= "Telefone: $telefone<br>";
    $conteudo  .= "Assunto: $assunto<br>";
    $conteudo  .= "Mensagem: $mensagem<br>";


    // O remetente deve ser um e-mail do seu domínio conforme determina a RFC 822.
    // O return-path deve ser ser o mesmo e-mail do remetente.
    $headers = "MIME-Version: 1.1\r\n";
    $headers .= "Content-type: text/html; charset=utf-8\r\n";
    $headers .= "From: $emailremetente\r\n"; // remetente
    $headers .= "Return-Path: $emaildestinatario \r\n"; // return-path
    if(mail($emaildestinatario, $assunto,  $conteudo, $headers, "-r".$emaildestinatario)){
        // echo "<strong style='color: green'>"."Sua mensagem foi enviada com sucesso!"."</strong>";
        //  echo '<script type="text/javascript">document.form1.reset();</script>';
        echo '
            <script type="text/JavaScript">
            alert("Sua mensagem foi enviada com sucesso. Obrigado");
            location.href="andreyferraz.php";
            </script>';
    }else{
        echo '
        <script type="text/JavaScript">
        alert("Aconteceu um erro, tente novamente mais tarde");
        location.href="andreyferraz.php";
         </script>';
    }
}?>

When I click on send it executes the else from this condition:

if ($resultados->num_rows > 0) {
    while($linha = mysqli_fetch_array($resultados)) {
        echo utf8_encode("<strong>Nome: </strong>" ."<strong>". $linha['nome']."</strong>" . "</br>");
        print ("<strong>Endereço: </strong>" . $linha['endereco'] . "</br>");
        if (isset($_POST['cidade']) && $_POST['cidade'] === 'sao-gabriel-da-palha') {
            $fromPerson = 'São Gabriel da Palha';
            echo "<strong>Cidade: </strong>" . $fromPerson . "</br>";
        }
        print ("<strong>Telefone: </strong>" . $linha['telefone'] . "</br>");
        echo "<strong>email: </strong>" . $linha['email'] . "</br>"."<hr>";
        if (isset($_POST['palavra'])) { // remover acentos
            $palavra = preg_replace("/&([a-z])[a-z]+;/i", "$1", htmlentities(strtolower(trim($_POST['palavra']))));
        }
        if (!empty($palavra) &&
            in_array($palavra, array('andrey ferraz', 'andrey', 'ferraz', 'andrey martins ferraz'))){
            require 'andreyferraz.php';

        }
        if (!empty($palavra) &&
            in_array($palavra, array('melfort'))){
            require 'melfort.php';

        }

    } }else{
   echo "<h3 align='center'>Empresa ainda não cadastrada!</h3>";
}
    
asked by anonymous 09.11.2017 / 13:46

1 answer

1

Hey friend, I've found some details in the code that may be causing these errors.

Initially:

 <form class="form-inline" action="<? $PHP_SELF; ?>" method="post">

Two Points .. Must be used:

<?=$PHP_SELF?> 

to text a variable in the output, in addition to:

<form class="form-inline" action="" method="post">

I would give the message, because it does not have a URL, it is redirected to the same page

Then I see another problem in:

<? 
if (isset($_POST['btnEnviarMensagem'])){

PHP is currently initialized with the

<?PHP

What may be causing conflict within decisions.

I say this for the next.

Copy your code: I changed the decisions to if (true) .. I commented on the JavaScript redirect lines

Tested: The alert () was called in both cases of the decision: TRUE and FALSE, and also in html content your PHP script appeared as text.

I modified from

<?
//para 
<?php

The alert was called only once and this time no PHP script appeared on the screen.

Try this, this may be the problem, I know that new php versions do not start with the simple tag. PHP version used by me: 5.2

    
16.11.2017 / 20:08