Checking when writing to DB

1

So, I got my form to save the information entered in the Database, but even if there is no information entered, and you click on record, it saves. I could not find the error, since the verification file has the lines that check the empty field.

Can anyone help me find the error!?

The code is below:

<html>
<head>
    <meta name="description" content="Guia de Consulta CNS"/>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="stylesheet" href="_css/style.css" />
</head>
<body>


<?php
$tAut       =$_POST ["tAut"];
$tPrest     =$_POST ["tPrest"];
$tCart      =$_POST ["tCart"];
$cDadm      =$_POST ["cDadm"];
$tNome      =$_POST ["tNome"];
$tNasc      =$_POST ["tNasc"];
$tCnpj      =$_POST ["tCnpj"];
$tNomecont  =$_POST ["tNomecont"];
$tCodcnes   =$_POST ["tCodcnes"];
$tProf      =$_POST ["tProf"];
$tEsp       =$_POST ["tEsp"];
$tConsr     =$_POST ["tConsr"];
$tNcons     =$_POST ["tNcons"];
$tCbos      =$_POST ["tCbos"];
$tDatatm    =$_POST ["tDatatm"];
$tTab       =$_POST ["tTab"];
$tCodp      =$_POST ["tCodp"];
$erro       =0;

//Verifica se o campo não está em branco.
if (empty($tAut))
{
  $error[] = 'Preenchimento da Autorização obrigatório!<br>';
}
//Verifica se o campo não está em branco.

if (empty($tPrest))
{
   $error[] = 'Preenchimento do Número da Guia do Prestador obrigatório!<br>';
}
//Verifica se o campo não está em branco.

if (empty($tCart))
{
    $error[] = 'Preenchimento do Número da Carteirinha obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($cDadm))
{
    $error[] = 'Preenchimento da Data de Admissão obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tNome))
{
    $error[] = 'Preenchimento do Nome obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tNasc))
{
    $error[] = 'Preenchimento da Data de Nascimento obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tCnpj))
{
    $error[] = 'Preenchimento do CNPJ obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tNomecont))
{
    $error[] = 'Preenchimento do Nome do Contratado obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tCodcnes))
{
    $error[] = 'Preenchimento do Código CNES obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tProf))
{
    $error[] = 'Preenchimento  do Profissional Executante obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tEsp))
{
    $error[] = 'Preenchimento da Especialidade obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tConsr))
{
    $error[] = 'Preenchimento do Conselho Regional obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tNcons))
{
    $error[] = 'Preenchimento do Número do Conselho obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tCbos))
{
    $error[] = 'Preenchimento do Número do CBOS obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tDatatm))
{
    $error[] = 'Preenchimento da Data de Atendimento obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tTab))
{
    $error[] = 'Preenchimento da Tabela  obrigatório!<br>';
}
//Verifica se o campo não está em branco.
if (empty($tCodp))
{
    $error[] = 'Preenchimento do Código do Procedimento obrigatório!<br>';
}

if (isset($error))
{
    foreach($error as $msg) {
        echo $msg;
    }
}
//Verifica se não houve erro.
if ($erro==0)
{
    $error[] = 'Todos os campos preenchidos corretamente!';
include "insere.php";
}
?>
</body>
</html>
    
asked by anonymous 20.09.2016 / 16:06

2 answers

1

The variable $erro , you just created but did not change the value of it at any time. For this reason, it will always record.

However, you do not need to use this variable since you already set the $error variable when there is an error. So, just test if $error is set, otherwise ( else ) write.

if (isset($error)){ // se houve erro
    foreach($error as $msg) {
        echo $msg;
    }
} else { // não houve erro
    $error[] = 'Todos os campos preenchidos corretamente!';
    include "insere.php";
}
    
20.09.2016 / 16:18
0

At the beginning of your code you declare the variable erro to 0;

$erro = 0;

And in the end you check if error is equal to 0;

if ($erro==0)...

Since $erro has already been set to 0 it will fall as true truth in your scan.

To fix this you have 2 options.

  • Enhance each check of empty fields, for example.

    if (empty($tCodp))
    {
       $error[] = 'Preenchimento do Código do Procedimento obrigatório!<br>';
       $erro += 1;
    }
    

    In this way the variable $erro will be added by 1 in 1 for each field that is empty.

  • Remove the variable $erro from the code start and validate using array $error , for example;

    if (empty($error))
    {
       $error[] = 'Todos os campos preenchidos corretamente!';
       include "insere.php";
    }
    
  • 20.09.2016 / 16:18