Olá,

Esta issue tem duas partes, ambas referentes ao código em brazilianids.check.inc

A primeira:
As seguintes funções
_brazilianids_validate_cnpj(&$cnpj, $clean = TRUE)
_brazilianids_validate_cpf(&$cpf, $clean = TRUE)
recebem como parâmetro este $clean, mas fazem a seguinte verificação:
if (empty($clean)) { .... }
Isto está errado, porque empty(FALSE) é TRUE, invalidando o que está escrito na própria documentação:
" @param $clean Boolean, FALSE to not clear the number".

A segunda:
A limpeza das strings está sendo reescrita toda vez, e fazendo uso da função eregi_replace, que está deprecated.
Além disso, algumas vezes se retira a barra ( / ) e outras não [caso problemático na linha 115, na limpeza do CNPJ, que normalmente tem barra].

Sugiro, em meu patch, centralizar a limpeza da string, passando a usar a função preg_replace, e quanto à verificação da variável $clean, sugiro não colocá-la dentro de um empty.

CommentFileSizeAuthor
brazilianids.check_.inc_.patch2.64 KBeltermann

Comments

franz’s picture

Status: Active » Reviewed & tested by the community

It's working fine so on so far

wasare’s picture

Assigned: Unassigned » wasare
Status: Reviewed & tested by the community » Fixed

felipe.eltermann,

Your patch was applied to repository. I did a little improvement in your regexp (i think). I replaced '/[.\-\/A-Za-z]/' for '/[^0-9]/'.

Cheers,
wasare

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.