FórumGdH

Página Inicial do Guia do Hardware

Registrar FAQ Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Voltar   FórumGdH > Profissional > Programação, scripts, web e banco de dados
Bem-vindo ao FórumGdH
Não se esqueça de se registrar, é grátis . Nós temos 754.112 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.

Resposta
 
Opções do Tópico
Antigo 19-02-2003, 16:49   #1 (permalink)
renatamiyagusku
Novo Membro
 
Registrado em: Jan 2002
Localização: São Paulo
Mensagens: 102
Reputação: 21 renatamiyagusku está indo no caminho certo
Enviar mensagem via ICQ para renatamiyagusku
Padrão Formatar/Validar R.G.

Oi pessoal!

Alguém teria uma rotina que formate e outra que valide R.G.?

Obrigada desde já.

Renata
renatamiyagusku está offline   Responder com Quote
Antigo 19-02-2003, 23:25   #2 (permalink)
mjs
Zumbi
 
Registrado em: Jun 2001
Localização: São José dos Pinhais - Pr
Idade: 27
Mensagens: 9.452
Reputação: 33 mjs está indo no caminho certo
Padrão

Você está quer dizer em um form?
__________________
|254374| www.linuxhard.org | www.quati.com
mjs está offline   Responder com Quote
Antigo 20-02-2003, 8:01   #3 (permalink)
rwar
GeeK
 
Avatar de rwar
 
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23 rwar está indo no caminho certo
Padrão

Depende em que linguagem você quer fazer?
__________________
No caminho dos scripts. Por enquanto, powershell...
rwar está offline   Responder com Quote
Antigo 20-02-2003, 9:56   #4 (permalink)
renatamiyagusku
Novo Membro
 
Registrado em: Jan 2002
Localização: São Paulo
Mensagens: 102
Reputação: 21 renatamiyagusku está indo no caminho certo
Enviar mensagem via ICQ para renatamiyagusku
Padrão

Eu só queria saber a fórmula de calcular o dígito verificador a fim de saber se o RG é válido ou não, como aquelas rotinas que fazem isso com CPF e CNPJ.
Eu vou usar isso através de uma procedure/function SQL (que retorne TRUE ou FALSE), mas a lógica é uma só independente da linguagem.
E qto aos formatos, RG sempre é "99.999.999-9"?

Obrigada,

Renata
renatamiyagusku está offline   Responder com Quote
Antigo 20-02-2003, 10:47   #5 (permalink)
rwar
GeeK
 
Avatar de rwar
 
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23 rwar está indo no caminho certo
Padrão

No formato faltou o último dígito (são sempre 11): 999.999.999-99

Achei isso:
Código:
1 - Formulário - form.php <html> <head> <title>Valida CPF/CNPJ - Coluna PHP / MySQL - iMasters </title> </head> <body bgcolor="#FFFFFF"> <form name="valida" method="post" action="validar.php"> <p><font face="Arial">Validar: </font></p> <p><font face="Arial"> <input type=radio name="chkCPF" value="on" checked> CPF (pessoa física) ou</font></p> <p><font face="Arial"> <input type=radio name="chkCPF" value="off"> CNPJ (pessoa jurídica)</font></p> <p><font face="Arial">N&uacute;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>&nbsp;</p> <p></p> </body> </html> 2 - Validar os dados que foram digitados - validar.php <? if (${"chkCPF"}=="on") { CalculaCPF($CampoNumero); } else { CalculaCNPJ($CampoNumero); } //Calcula CPF function CalculaCPF($CampoNumero) { $RecebeCPF=$CampoNumero; //Retirar todos os caracteres que nao sejam 0-9 $s=""; 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 "<h1>&Eacute; obrigat&oacute;rio o CPF com 11 d&iacute;gitos</h1>"; } else if ($RecebeCPF=="00000000000") { $then; echo "<h1>CPF Inválido</h1>"; } 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 "<h1>CPF Inválido</h1>"; } } else { echo "<h1>CPF Inválido</h1>"; } } } // Fim do Calcula CPF //Função que calcula CNPJ 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>&Eacute; obrigat&oacute;rio o CNPJ com 14 d&iacute;gitos</h1>"; } else if ($RecebeCNPJ=="00000000000000") { $then; echo "<h1>CNPJ Inv&aacute;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>"; } } } //Fim do Calcula CNPJ ?>
Está sem identação nem nada. Mas veja o que pode fazer, ok? Ah! Está em HTML/PHP... :wink:
__________________
No caminho dos scripts. Por enquanto, powershell...
rwar está offline   Responder com Quote
Antigo 20-02-2003, 10:53   #6 (permalink)
renatamiyagusku
Novo Membro
 
Registrado em: Jan 2002
Localização: São Paulo
Mensagens: 102
Reputação: 21 renatamiyagusku está indo no caminho certo
Enviar mensagem via ICQ para renatamiyagusku
Padrão

Mas essas funções são para validar CPF e CNPJ. O que eu preciso é para validar RG, que possui apenas um dígito verificador, e não 2 como o CPF.

De qq forma, obrigada.

Renata
renatamiyagusku está offline   Responder com Quote
Antigo 20-02-2003, 11:28   #7 (permalink)
romulo
Zumbi
 
Registrado em: Dec 2001
Localização: Fortaleza / CE
Mensagens: 7.506
Reputação: 30 romulo está indo no caminho certo
Enviar mensagem via ICQ para romulo
Padrão

Pra RG é complicado, pois dependendo do órgão emissor a regra muda. Pode ser a Secretaria de Segurança, os Conselhos Regionais (Medicina, Engenharia, etc), Forças Armadas, etc.
__________________
Minha coleção de jogos (todos originais)
romulo está offline   Responder com Quote
Antigo 20-02-2003, 13:06   #8 (permalink)
rwar
GeeK
 
Avatar de rwar
 
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23 rwar está indo no caminho certo
Padrão

Citação:
Postado Originalmente por renatamiyagusku
Mas essas funções são para validar CPF e CNPJ. O que eu preciso é para validar RG, que possui apenas um dígito verifi...
Bah! Foi mal mesmo. Agora que tu colocou é que fui ver que era RG no tópico inicial... :lol:

Mas como o romulo explicou, para RG tem de tudo quanto é formato...
__________________
No caminho dos scripts. Por enquanto, powershell...
rwar está offline   Responder com Quote
Antigo 20-02-2003, 14:14   #9 (permalink)
renatamiyagusku
Novo Membro
 
Registrado em: Jan 2002
Localização: São Paulo
Mensagens: 102
Reputação: 21 renatamiyagusku está indo no caminho certo
Enviar mensagem via ICQ para renatamiyagusku
Padrão

Foi nisso que eu pensei... tem várias máscaras diferentes, alguns tem letras junto com os número...

Que dureza....

:?
renatamiyagusku está offline   Responder com Quote
Antigo 20-02-2003, 15:01   #10 (permalink)
rwar
GeeK
 
Avatar de rwar
 
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23 rwar está indo no caminho certo
Padrão

Sinceramente, não entendi prá que tu queres isso... :?:
__________________
No caminho dos scripts. Por enquanto, powershell...
rwar está offline   Responder com Quote
Antigo 20-02-2003, 15:53   #11 (permalink)
renatamiyagusku
Novo Membro
 
Registrado em: Jan 2002
Localização: São Paulo
Mensagens: 102
Reputação: 21 renatamiyagusku está indo no caminho certo
Enviar mensagem via ICQ para renatamiyagusku
Padrão

É parte de um site onde será feito o cadastro de funcionários de um rede de supermercados. Na hora de gravar os dados (incluindo RG e CPF), esses números devem ser validados antes de irem pra base de dados.
renatamiyagusku está offline   Responder com Quote
Resposta


Opções do Tópico

Regras de Mensagens
Você não pode criar tópicos
Você não pode postar respostas
Você não pode anexar arquivos
Você não pode editar suas mensagens

Código vB está Ligado
Smiles estão Ligado
Código [IMG] está Ligado
Código HTML está Desligado
Ir para...


Horários baseados na GMT -3. Agora são 12:09.