Ir para conteúdo
Fórum Script Brasil
  • 0

Validar CNPJ


HUGO BORGES

Pergunta

Galera eu peguei um scrip na net que valida o CNPJ (verifica se ele e valido).

// Verifica se  o CPF é verdadeiro
 function verificaCNPJ($cnpj) {
  if (strlen($cnpj) <> 18) return 0;
   $soma1 = ($cnpj[0] * 5) +
    ($cnpj[1] * 4) +
    ($cnpj[3] * 3) +
    ($cnpj[4] * 2) +
    ($cnpj[5] * 9) +
    ($cnpj[7] * 8) +
    ($cnpj[8] * 7) +
    ($cnpj[9] * 6) +
    ($cnpj[11] * 5) +
    ($cnpj[12] * 4) +
    ($cnpj[13] * 3) +
    ($cnpj[14] * 2);
   $resto = $soma1 % 11;
   $digito1 = $resto < 2 ? 0 : 11 - $resto;
   $soma2 = ($cnpj[0] * 6) +
    ($cnpj[1] * 5) +
    ($cnpj[3] * 4) +
    ($cnpj[4] * 3) +
    ($cnpj[5] * 2) +
    ($cnpj[7] * 9) +
    ($cnpj[8] * 8) +
    ($cnpj[9] * 7) +
    ($cnpj[11] * 6) +
    ($cnpj[12] * 5) +
    ($cnpj[13] * 4) +
    ($cnpj[14] * 3) +
    ($cnpj[16] * 2);
   $resto = $soma2 % 11;
   $digito2 = $resto < 2 ? 0 : 11 - $resto;
  return (($cnpj[16] == $digito1) && ($cnpj[17] == $digito2));
 }

 if (!verificaCNPJ($cnpj)){
  $erro=1;
  echo "<script>alert('ERRO. CNPJ não é valido.'); history.back();</script>"; die;
 }
 // Fim Verifica se  o CPF é verdadeiro

Ele funciona 100%, porem eu tenho que colocar o CNPJ com os . pontos e -

Queria colocar apenas os números, alguém sabe como posso fazer isto?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Galera eu peguei um scrip na net que valida o CNPJ (verifica se ele e valido).

// Verifica se  o CPF é verdadeiro
 function verificaCNPJ($cnpj) {
  if (strlen($cnpj) <> 18) return 0;
   $soma1 = ($cnpj[0] * 5) +
    ($cnpj[1] * 4) +
    ($cnpj[3] * 3) +
    ($cnpj[4] * 2) +
    ($cnpj[5] * 9) +
    ($cnpj[7] * 8) +
    ($cnpj[8] * 7) +
    ($cnpj[9] * 6) +
    ($cnpj[11] * 5) +
    ($cnpj[12] * 4) +
    ($cnpj[13] * 3) +
    ($cnpj[14] * 2);
   $resto = $soma1 % 11;
   $digito1 = $resto < 2 ? 0 : 11 - $resto;
   $soma2 = ($cnpj[0] * 6) +
    ($cnpj[1] * 5) +
    ($cnpj[3] * 4) +
    ($cnpj[4] * 3) +
    ($cnpj[5] * 2) +
    ($cnpj[7] * 9) +
    ($cnpj[8] * 8) +
    ($cnpj[9] * 7) +
    ($cnpj[11] * 6) +
    ($cnpj[12] * 5) +
    ($cnpj[13] * 4) +
    ($cnpj[14] * 3) +
    ($cnpj[16] * 2);
   $resto = $soma2 % 11;
   $digito2 = $resto < 2 ? 0 : 11 - $resto;
  return (($cnpj[16] == $digito1) && ($cnpj[17] == $digito2));
 }

 if (!verificaCNPJ($cnpj)){
  $erro=1;
  echo "&lt;script>alert('ERRO. CNPJ não é valido.'); history.back();</script>"; die;
 }
 // Fim Verifica se  o CPF é verdadeiro
Ele funciona 100%, porem eu tenho que colocar o CNPJ com os . pontos e - Queria colocar apenas os números, alguém sabe como posso fazer isto?
Pelo o que eu entendi, você quer passar um CNPJ com os [.]´s e [-]´s pra essa função, que recebe só numeros. é só colocar no inicio da função o seguinte:
$cnpj = str_replace(".","",$cnpj);
$cnpj = str_replace("-","",$cnpj);
vai ficar assim:
// Verifica se  o CPF é verdadeiro
 function verificaCNPJ($cnpj) {
  $cnpj = str_replace(".","",$cnpj);
  $cnpj = str_replace("-","",$cnpj);

  if (strlen($cnpj) <> 18) return 0;
   $soma1 = ($cnpj[0] * 5) +
    ($cnpj[1] * 4) +
    ($cnpj[3] * 3) +
    ($cnpj[4] * 2) +
    ($cnpj[5] * 9) +
    ($cnpj[7] * 8) +
    ($cnpj[8] * 7) +
    ($cnpj[9] * 6) +
    ($cnpj[11] * 5) +
    ($cnpj[12] * 4) +
    ($cnpj[13] * 3) +
    ($cnpj[14] * 2);
   $resto = $soma1 % 11;
   $digito1 = $resto < 2 ? 0 : 11 - $resto;
   $soma2 = ($cnpj[0] * 6) +
    ($cnpj[1] * 5) +
    ($cnpj[3] * 4) +
    ($cnpj[4] * 3) +
    ($cnpj[5] * 2) +
    ($cnpj[7] * 9) +
    ($cnpj[8] * 8) +
    ($cnpj[9] * 7) +
    ($cnpj[11] * 6) +
    ($cnpj[12] * 5) +
    ($cnpj[13] * 4) +
    ($cnpj[14] * 3) +
    ($cnpj[16] * 2);
   $resto = $soma2 % 11;
   $digito2 = $resto < 2 ? 0 : 11 - $resto;
  return (($cnpj[16] == $digito1) && ($cnpj[17] == $digito2));
 }

 if (!verificaCNPJ($cnpj)){
  $erro=1;
  echo "&lt;script>alert('ERRO. CNPJ não é valido.'); history.back();</script>"; die;
 }
 // Fim Verifica se  o CPF é verdadeiro

[]'s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...