Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mr Crowley

rotina para validar CNPJ alguem tem ai?

Recommended Posts

Este é o formulário:

<html><head><title>Valida CPF/CNPJ</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFFFF"><p> </p><form name="valida_dados" method="post" action="validar.php">  <p><font face="Arial, Helvetica, sans-serif">Validar: </font></p>  <p><font face="Arial, Helvetica, sans-serif">    <input type=radio name="chkCPF" value="on" checked>    CPF (pessoa física) ou</font></p>  <p><font face="Arial, Helvetica, sans-serif">    <input type=radio name="chkCPF" value="off">    CNPJ (pessoa jurídica)</font></p>  <p><font face="Arial, Helvetica, sans-serif">Número:</font>    <input type="text" name="CampoNumero" size="18" maxlength="18">  </p>  <p>    <input type="submit" name="Submit" value="Verificar">    <input type="reset" name="Submit2" value="Limpa">  </p></form><p> </p><p></p></body></html>

Esta é a rotina para validar:

<?if (${"chkCPF"}=="on"){  CalculaCPF($CampoNumero);}  else{  CalculaCNPJ($CampoNumero);}//*******************************// funcao para calcular cpf//*******************************function CalculaCPF($CampoNumero){  $RecebeCPF=$CampoNumero;  $s=""; //Retira todos os caracteres que nao sejam 0-9  for ($x=1; $x<=strlen($RecebeCPF); $x=$x+1)  {    $ch=substr($RecebeCPF,$x-1,1);    if (ord($ch)>=48 && ord($ch)<=57)    {      $s=$s.$ch;    }  }  $RecebeCPF=$s;  if (strlen($RecebeCPF)!=11)  {      echo"<script>\n";      echo"window.alert('CPF deve ter 11 dígitos')\n";      echo"history.back()\n";      echo"</script>\n";}    else  if ($RecebeCPF=="00000000000")  {    $then;    echo"<script>\n";    echo"window.alert('CPF Inválido')\n";    echo"history.back()\n";    echo"</script>\n";  }    else  {    $Numero[1]=intval(substr($RecebeCPF,1-1,1));    $Numero[2]=intval(substr($RecebeCPF,2-1,1));    $Numero[3]=intval(substr($RecebeCPF,3-1,1));    $Numero[4]=intval(substr($RecebeCPF,4-1,1));    $Numero[5]=intval(substr($RecebeCPF,5-1,1));    $Numero[6]=intval(substr($RecebeCPF,6-1,1));    $Numero[7]=intval(substr($RecebeCPF,7-1,1));    $Numero[8]=intval(substr($RecebeCPF,8-1,1));    $Numero[9]=intval(substr($RecebeCPF,9-1,1));    $Numero[10]=intval(substr($RecebeCPF,10-1,1));    $Numero[11]=intval(substr($RecebeCPF,11-1,1));    $soma=10*$Numero[1]+9*$Numero[2]+8*$Numero[3]+7*$Numero[4]+6*$Numero[5]+5*$Numero[6]+4*$Numero[7]+3*$Numero[8]+2*$Numero[9];    $soma=$soma-(11*(intval($soma/11)));    if ($soma==0 || $soma==1)    {      $resultado1=0;    }      else    {      $resultado1=11-$soma;    }    if ($resultado1==$Numero[10])    {      $soma=$Numero[1]*11+$Numero[2]*10+$Numero[3]*9+$Numero[4]*8+$Numero[5]*7+$Numero[6]*6+$Numero[7]*5+$Numero[8]*4+$Numero[9]*3+$Numero[10]*2;      $soma=$soma-(11*(intval($soma/11)));      if ($soma==0 || $soma==1)      {        $resultado2=0;      }        else      {        $resultado2=11-$soma;      }      if ($resultado2==$Numero[11])      {        //echo "<h1>CPF Válido</h1>";      }        else      {        echo"<script>\n";        echo"window.alert('CPF Inválido')\n";        echo"history.back()\n";        echo"</script>\n";      }    }      else    {        echo"<script>\n";        echo"window.alert('CPF Inválido')\n";        echo"history.back()\n";        echo"</script>\n";    }  }}//*******************************// funcao para calcular cgc//*******************************function CalculaCNPJ($CampoNumero){  $RecebeCNPJ=${"CampoNumero"};  $s="";  for ($x=1; $x<=strlen($RecebeCNPJ); $x=$x+1)  {    $ch=substr($RecebeCNPJ,$x-1,1);    if (ord($ch)>=48 && ord($ch)<=57)    {      $s=$s.$ch;    }  }  $RecebeCNPJ=$s;  if (strlen($RecebeCNPJ)!=14)  {    echo "<h1>É obrigatório o CNPJ com 14 dígitos</h1>";}    else  if ($RecebeCNPJ=="00000000000000")  {    $then;    echo "<h1>CNPJ Inválido</h1>";  }    else  {    $Numero[1]=intval(substr($RecebeCNPJ,1-1,1));    $Numero[2]=intval(substr($RecebeCNPJ,2-1,1));    $Numero[3]=intval(substr($RecebeCNPJ,3-1,1));    $Numero[4]=intval(substr($RecebeCNPJ,4-1,1));    $Numero[5]=intval(substr($RecebeCNPJ,5-1,1));    $Numero[6]=intval(substr($RecebeCNPJ,6-1,1));    $Numero[7]=intval(substr($RecebeCNPJ,7-1,1));    $Numero[8]=intval(substr($RecebeCNPJ,8-1,1));    $Numero[9]=intval(substr($RecebeCNPJ,9-1,1));    $Numero[10]=intval(substr($RecebeCNPJ,10-1,1));    $Numero[11]=intval(substr($RecebeCNPJ,11-1,1));    $Numero[12]=intval(substr($RecebeCNPJ,12-1,1));    $Numero[13]=intval(substr($RecebeCNPJ,13-1,1));    $Numero[14]=intval(substr($RecebeCNPJ,14-1,1));    $soma=$Numero[1]*5+$Numero[2]*4+$Numero[3]*3+$Numero[4]*2+$Numero[5]*9+$Numero[6]*8+$Numero[7]*7+$Numero[8]*6+$Numero[9]*5+$Numero[10]*4+$Numero[11]*3+$Numero[12]*2;    $soma=$soma-(11*(intval($soma/11)));    if ($soma==0 || $soma==1)    {      $resultado1=0;    }      else    {      $resultado1=11-$soma;    }    if ($resultado1==$Numero[13])    {      $soma=$Numero[1]*6+$Numero[2]*5+$Numero[3]*4+$Numero[4]*3+$Numero[5]*2+$Numero[6]*9+$Numero[7]*8+$Numero[8]*7+$Numero[9]*6+$Numero[10]*5+$Numero[11]*4+$Numero[12]*3+$Numero[13]*2;      $soma=$soma-(11*(intval($soma/11)));      if ($soma==0 || $soma==1)      {        $resultado2=0;      }        else      {        $resultado2=11-$soma;      }      if ($resultado2==$Numero[14])      {        echo "<h1>CNPJ válido</h1>";      }        else      {        echo "<h1>CNPJ inválido</h1>";      }    }      else    {      echo "<h1>CNPJ inválido</h1>";    }  }}?>

Bom, se quiser colocar isso em uma função é só quebrar um pouco a cabeça agora.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cuidado com validações em Js.. se o usuario salvar a pagina no computador dele e alterar o fonte retirando o javascript, se você não tomar certas precauções ele vai poder enviar qualquer dados sem ter sido validado.Por isso que a validação server-side também é fundamental...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.