Check when writing to BD

Asked

Viewed 55 times

1

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

I wonder if someone could help me find the mistake!?

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>
  • 1

    You initialize $erro = 0; and then you check if if ($erro==0) and in no time will you arrow anything to that variable. Then will you always insert.

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, it is not necessary to use this variable since you already set the variable $error when there is error. Therefore, just test only if $error is set, otherwise (else) record.

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";
}
  • Allan, your excerpt helped me to show the error message when the field is null. But right now the fields filled and when recording in the database, appears the message that is saved in the database but when I check, the database is blank. You could tell me why you made a mistake?

  • You need to create another question and put in it your write codes in the database to be able to analyze why of this error.

  • Let me know when you come up with another question I’ll take a look to try to help you.

0

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

$erro = 0;

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

if ($erro==0)...

Like $erro has already been set to 0 it will fall as truth true in its verification.

To fix this you have 2 options.

  1. Increment each empty field check, for example.

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

    Thus the variable $erro will be added 1 in 1 for each field that is empty.

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

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

Browser other questions tagged

You are not signed in. Login or sign up in order to post.