php – How to make the form alert correctly?


I have a contact form, so when filled in it is not showing the failed submission alert or sent successfully, it is redirecting to a search page, here is 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 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 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 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 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>
    <button type="submit" class="btn btn-default" name="btnEnviarMensagem">Enviar Mensagem</button>

if (isset($_POST['btnEnviarMensagem'])){
    // Passando os dados obtidos pelo formulário para as variáveis abaixo
    $nome    = $_POST['nome'];
    $emailremetente    = trim($_POST['email']);
    $emaildestinatario = ''; // 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");
        echo '
        <script type="text/JavaScript">
        alert("Aconteceu um erro, tente novamente mais tarde");

When I click send it executes the else of 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>";


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

Initially on:

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

Colon… Must be used:


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

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

It would already do the job, as not having a directing url, it is redirected to the same page

Then I see another problem in:

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

Currently PHP initializes itself with the tag


What may be causing the conflict within decisions.

I say this for the following.

I copied your code: Changed decisions to if(true). Commented JavaScript redirect lines

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

modified from


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

Try this, this could be the problem, I know that new versions of php don't start with the simple tag. Version used by me of PHP: 5.2

Scroll to Top