Validation criticism for form fields

Asked

Viewed 70 times

0

I’m having a problem making the blank field reviews of a form. I made the criticism in a check.php file and whenever I fill the fields and try to write the information in the database, appear all the criticism, and all the code that was developed. So far I couldn’t find the error at all, and I’ve done countless searches and nothing.

Can someone evaluate the comfort and see if you find the mistake???!!!

The complete code is below.

<html>
<body>
<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>
<?php

$tAut       =$_POST ["tAut"];
$tPrest     =$_POST ["tPrest"];
$tCart      =$_POST ["tCart"];
$cDadm      =$_POST ["cDadm"];
$tNome      =$_POST ["tNome"];
$tNasc      =$_POST ["tCnasc"];
$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) OR strstr ($tAut, ' ')==FALSE)
{echo "Preenchimento da Autorização obrigatório!<br>"; $erro=1;}

//Verifica se o campo não está em branco.

if (empty($tPrest) OR strstr ($tPrest, ' ')==FALSE)
{echo "Preenchimento do Número da Guia do Prestador obrigatório!<br>"; $erro=1;}

//Verifica se o campo não está em branco.

if (empty($tCart) OR strstr ($tCart, ' ')==FALSE)
{echo "Preenchimento do Número da Carteirinha obrigatório!<br>"; $erro=1;}

//Verifica se o campo não está em branco.

if (empty($cDadm) OR strstr ($cDadm, ' ')==FALSE)
{echo "Preenchimento da Data de Admissão obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tNome) OR strstr ($tNome, ' ')==FALSE)
{echo "Preenchimento do Nome obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tNasc) OR strstr ($tNasc, ' ')==FALSE)
{echo "Preenchimento da Data de Nascimento obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tCnpj) OR strstr ($tCnpj, ' ')==FALSE)
{echo "Preenchimento do CNPJ obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tNomecont) OR strstr ($tNomecont, ' ')==FALSE)
{echo "Preenchimento do Nome do Contratado obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tCodcnes) OR strstr ($tCodcnes, ' ')==FALSE)
{echo "Preenchimento do Código CNES obrigatório!<br>"; $erro=1;}

//Verifica se o campo não está em branco.

if (empty($tProf) OR strstr ($tProf, ' ')==FALSE)
{echo "Preenchimento  do Profissional Executante obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tEsp) OR strstr ($tEsp, ' ')==FALSE)
{echo "Preenchimento da Especialidade obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tConsr) OR strstr ($tConsr, ' ')==FALSE)
{echo "Preenchimento do Conselho Regional obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tNcons) OR strstr ($tNcons, ' ')==FALSE)
{echo "Preenchimento do Número do Conselho obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tCbos) OR strstr ($tCbos, ' ')==FALSE)
{echo "Preenchimento do Número do CBOS obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tDatatm) OR strstr ($tDatatm, ' ')==FALSE)
{echo "Preenchimento da Data de Atendimento obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tTab) OR strstr ($tTab, ' ')==FALSE)
{echo "Preenchimento da Tabela  obrigatório!<br>"; $erro=1;}
//Verifica se o campo não está em branco.

if (empty($tCodp) OR strstr ($tCodp, ' ')==FALSE)
{echo "Preenchimento do Código do Procedimento obrigatório!<br>"; $erro=1;}
//Verifica se não houve erro.

if ($erro==0)
{echo "Todos os campos preenchidos corretamente!";
    include "insere.inc";}
?>
</body>
</html>
  • Tips: 1) Use readable names for variables. 2) Use a array to store and organize error messages.

2 answers

1


Your HTML markup is wrong, note your code:

<html>
<body>
<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>

The right thing would be:

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

Note: As for your PHP code, try to save the error messages in one array

Just try it like this:

if (empty($tAut))
{
   $error[] = 'Preenchimento da Autorização obrigatório!<br>';
}

To display errors do so:

if (isset($error))
{
    foreach($error as $msg) {
       echo $msg;
    }
}

It’s just a hint so it will show one warning at a time. (Do it with all fields).

Just one question, only from your form? could show ?

Check that the fomulário button has been pressed:

if(isset($_POST['nome_do_botão_do_formulário'])) {
   //código PHP
}
  • I did as you say and you continue to show the errors.

  • which error shows ? NOTE: I made an edit on the post in the part that shows the foreach

  • I added the foreach and decreased the errors that appeared on screen. But even if filled, appear.

  • you have to check if the post exists...

  • It worked great! The errors that appeared, are two that I need to fill, if it is not filled, will present on screen. Thanks!!!

0

The detail is that your code when it perceives an error it immediately writes the error on the screen.

A more interesting implementation is to create an array of errors. Within this array you save the last error occurrence for each of the fields.

$erro = array( "tAut"=>"","tPrest"=>"");

if(!$tAut){
   $erro['tAut'] = "O valor é falso";
}

if(empty($tAut)){
   $erro['tAut'] = "Preenchimento em branco";
}

if($tPrest<11){
   $erro['tAut'] = "Valor inválido";
}

Then just write the error on the page if it exists. If there is more than one error for the same field, only the last one will be displayed

if (isset($erro['tAut'])){
   echo $erro['tAut'];
}
if (isset($erro['tPrest'])){
   echo $erro['Prest'];
}

Browser other questions tagged

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