Jump to content

[Resolvido] validação php


esec.rom
 Share

Recommended Posts

boas, eu estou a fazer um form e preciso de validar o conteúdo de um imput antes de carregar no submit. a validação esta num ficheiro em php oque devo fazer?

por outras palavras tenho um form onde é pedido o nif e tenho um ficheiro em php que valida o nif. eu queria que enquando não fosse valido o nif nao era possivel avançar e aparecer uma mensagem

Link to comment
Share on other sites

verificar se é um nif valido

o que tenho para validar é isto, mas este consigo chamar com o post e ao clickar no submit, eu queria que fosse feita antes do submit

<?php
$nif = $_POST['nif'];
   if(!is_numeric($nif) || strlen($nif) != 9)
   {
 echo "Invalid NIF";
 return;
}   
   $nifArray = str_split($nif);

   if($nifArray[0] != 1 && $nifArray[0] != 2 &&  $nifArray[0] != 5 && $nifArray[0] != 6 && $nifArray[0] != 8 && $nifArray[0] != 9)
   {
 echo "Invalid NIF";
 return;
} 

   $checkbit = $nifArray[0] * 9;

   for($i=2; $i <=8; $i++){
    $checkbit += $nif[$i-1] * (10 - $i);
   }

   $checkbit = 11 - ($checkbit % 11);

   if($checkbit >= 10) $checkbit=0;

   if($nif[8] == $checkbit)
   {
 echo "Valid NIF";
 return;
}	
else
{
 echo "Invalid NIF";
 return;
}
?>
Link to comment
Share on other sites

HappyHippyHippo

ok, como parece teres o código completo de validação de um nif, a tua única solução é implementar-lo em javascript e fazer a validação antes do formulário ser enviado.

por isso, o que terás de fazer é :

- criar uma função de javascript que faz o mesmo processo de validação retornando um valor booleano dependendo do resultado do processo

- registar uma função a ser executada no processo de submissão do formulário que irá chamar a função criada que irá retornar um valor booleano indicando se o formulário é para ser enviado ou não

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

aqui fica se alguém precisar

var nifarray = nif.split("");
    var notific = document.getElementById("notific");
    if (nif.label!=9 && nifarray[0]!= 1 && nifarray[0]!= 2 && nifarray[0]!= 5 && nifarray[0]!= 6 && nifarray[0]!= 8 && nifarray[0]!= 9)
    {
	 notific.innerHTML = "Nif inválido";
   return false;
    }
    var checkbit  = nifarray[0]*9;
    for (var i = 2; i <= 8; i++)
    {
	 checkbit+=nifarray[i-1]*(10-i);
    }
  checkbit=11-(checkbit%11);

  if (checkbit>=10)
  {
   checkbit=0;
  }
  if (nifarray[8] ==checkbit)
  {
   notific.innerHTML = "OK";
   return false;
  }
  else
  {
   notific.innerHTML = "Nif inválido";
   return false;
  }
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.