Validating form for the same page only when clicking

-1

In this code I'm going to use it on the same page for the result to return to it, how do I validate the form only when I click the submit button?

The code below on the same page returns the error that the query field is empty. Notice: Undefined index: consulta in C:\xampp\htdocs\index.php on line 227

<form method="POST" action="#" id="consulta" target=”_self”>
            <p>
            <font face="Verdana, Arial, Helvetica, sans-serif">
            <font size="2"> 
                <label for="consulta">Buscar:</label>
                    <input type="text" name="consulta" size="16" style="padding-left: 5px; outline: none; font-size: 9 pt; color: #000000; font-family: Verdana; font-variant: small-;  border-radius: 8px; border: 1px solid #000000">
        </font>
        </font> 
        <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
        <input type="hidden" value="Ok" name="consulta" />
            <input type="submit" value="Pesquisar" style="outline: none; font-size: 8 pt; color: #000000; font-family: Verdana; font-variant: small-caps; border-radius: 8px; border: 1 solid #000000">
        </font></p>
     </form>

PHP

<?php
        $host = 'localhost'; // endereço do seu mysql
        $user = 'root'; // usuário
        $pass = ''; // senha
        $con = mysql_connect($host,$user,$pass); // função de conexão
        $db = 'consultapagina'; // nome do banco de dados
        mysql_select_db($db,$con) or print mysql_error(); // seleção do banco de dados
    // Conecte-se ao MySQL antes desse ponto
    // Salva o que foi buscado em uma variável

    $busca = mysql_real_escape_string($_POST['consulta']);
    // ============================================

    // Monta outra consulta MySQL para a busca
    $consultasql = "SELECT * FROM 'pagina' WHERE (('descricao'LIKE '%".$busca."%') OR ('titulo'LIKE '%".$busca."%')) ORDER BY 'titulo' DESC";
    // Executa a consulta
    $resultadosql = mysql_query($consultasql) OR DIE(mysql_error());

    // ============================================
    // Começa a exibição dos resultados



    while ($resultado = mysql_fetch_assoc($resultadosql)) {
      $titulo = $resultado['titulo'];
      $texto = $resultado['descricao'];
      $link = $resultado['link'];
      $arquivo = $resultado['arquivo'];
    echo "<ul>";  
      echo "<li>";
        echo "<a href='{$arquivo}'>" ;
          echo "{$titulo} </a>- {$texto}";
      echo "</li>";
      echo "</ul>";
        $conta= $resultado;

    }
    $contador = mysql_num_rows($resultadosql);
    // conta quantos registros encontrados com a nossa especificação
    if ($contador == 0) {
        echo "Nenhum resultado encontrado para ".$busca."!";
    } else {
        // senão
        if ($contador == 1) {
            echo "1 resultado encontrado para ".$busca."!";
        }
        // se houver um resultado diz que existe um resultado
        if ($contador > 1) {
            echo "$contador resultados encontrados para ".$busca."!";
        }
    }
    ?>
    
asked by anonymous 14.04.2016 / 00:41

1 answer

1

Use this way before the codes that use the form data:

if (isset($_POST['consulta'])) { código }
    
14.04.2016 / 01:21