Ir para conteúdo

Arquivado

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

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;

}

 

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros 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';
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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;
}

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.