Jump to content
Ramon César

Validar campo para o numero do CARTÃO SUS

Recommended Posts

OLÁ PESSOAL TO COM UMA FUNÇÃO QUE FAZ A VALIDAÇÃO DO NUMERO DO CARTÃO SUS. NÃO SEI COMO FAZER PARA ELE VALIDAR MEU FOMULARIO. vOU ENVIAR O CÓDIGO, SE ALGUÉM ME MOSTRAR O CAMINHO JÁ FICO MUITO FELIZ.

 

<?php

function validaCNS_PROVISORIO($cns) {

if ((strlen(trim($cns))) != 15) {

return false;

}

$soma = (((substr($cns,0,1)) * 15) +

((substr($cns,1,1)) * 14) +

((substr($cns,2,1)) * 13) +

((substr($cns,3,1)) * 12) +

((substr($cns,4,1)) * 11) +

((substr($cns,5,1)) * 10) +

((substr($cns,6,1)) * 9) +

((substr($cns,7,1)) * 8) +

((substr($cns,8,1)) * 7) +

((substr($cns,9,1)) * 6) +

((substr($cns,10,1)) * 5) +

((substr($cns,11,1)) * 4) +

((substr($cns,12,1)) * 3) +

((substr($cns,13,1)) * 2) +

((substr($cns,14,1)) * 1));

$resto = fmod($soma,11);

if ($resto != 0) {

return false;

} else {

return true;

}

 

}

?>

Edited by Mário Monteiro
Retirada da Descrição por ser igual ao Titulo

Share this post


Link to post
Share on other sites

Exemplo para teste $cns pode ser $_POST['seucampo'] ou

$_GET['seucampo'] dependendo do metodo usado no seu form.

 

<?php
function validaCNS_PROVISORIO($cns) {
if ((strlen(trim($cns))) != 15) {
return false;
}
$soma = (((substr($cns,0,1)) * 15) +
((substr($cns,1,1)) * 14) +
((substr($cns,2,1)) * 13) +
((substr($cns,3,1)) * 12) +
((substr($cns,4,1)) * 11) +
((substr($cns,5,1)) * 10) +
((substr($cns,6,1)) * 9) +
((substr($cns,7,1)) * 8) +
((substr($cns,8,1)) * 7) +
((substr($cns,9,1)) * 6) +
((substr($cns,10,1)) * 5) +
((substr($cns,11,1)) * 4) +
((substr($cns,12,1)) * 3) +
((substr($cns,13,1)) * 2) +
((substr($cns,14,1)) * 1));
$resto = fmod($soma,11);
if ($resto != 0) {
return false;
} else {
return true;
}

}

$cns = '123456789123456';
$valida = validaCNS_PROVISORIO($cns);
if ($valida) {
   echo 'é valido';
} else {
   echo 'não é valido';
}

?>

Edited by Periscuelo

Share this post


Link to post
Share on other sites

Amigo to utilizando uma aplicação oop, quero estancia essa função.

quando o usuario enviar o formulario, se tiver errado o numero do cartão ele envia uma

menssagem. tem como você mostrar como eu posso estanciar essa função.

Share this post


Link to post
Share on other sites

Não se instância funções e sim classes que se tornam objetos. E de objetos se usa métodos.

Portanto instancie sua classe com operador new MinhaClasse; e depois chame o método.

Ex:

 

$obj = new Calcula();
$resultado = $obj->soma(2,4);
echo $resultado; //Vai imprimir 6

Presumo no código acima que você tem uma classe chamada

calcula onde existe um método chamado soma com 2 parametros

a serem passados. Número 1 e Número 2 e o return é o calculo

propriamente dito. Partindo destes principios você adapta para

a chamada do método que você tem.

Edited by Periscuelo

Share this post


Link to post
Share on other sites

Dei uma otimizada no algorítimo :)

function functionName($param) {
    $sum = 0;
    for ($i = 0, $j = strlen($param), $k = $j; $i < $j; $i++, $k--) {
        $sum += $param[$i] * $k;
    }
    return $sum % 11 == 0 && $j == 15;
}
  • +1 1

Share this post


Link to post
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

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.