Jump to content
Fórum Script Brasil
  • 0

Validar CPF com PHP ao submeter formulário


Question

Boa tarde. Estou fazendo um site em PHP que tem um formulário de cadastro com diversos campos, e um deles pede o CPF.

Preciso que, assim que for acionado o Submit, seja feita uma validação do CPF e, se for inválido, exiba uma mensagem antes de mandar os dados para processamento, assim como o HTML5 já faz com o campo Email, por exemplo.

Como resolver? 

Obrigado

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Opa bão,

Roberto, encontrei um script em PHP na web que pode lhe ajudar. É uma função que você pode utilizar para validar o CPF e se ele for inválido retornar alguma mensagem de erro. Esta é uma solução para o "backend" ou seja, ele vai validar depois que você fizer a requisição, é possível validar também antes de enviar o formulário como o HTML5 mas aí já é um script em JS/Jquery. Se este abaixou não servir, posso publicar também o JS.

<?php

function validaCPF($cpf) {
    if (strlen($value) !== 11 || preg_match('/(\d)\1{10}/', $value)) {
        return false;
    }

    for ($t = 9; $t < 11; $t++) {
        for ($d = 0, $c = 0; $c < $t; $c++) {
            $d += $value{$c} * (($t + 1) - $c);
        }

        $d = ((10 * $d) % 11) % 10;

        if ($value{$c} != $d) {
            return false;
        }
    }

    return true;
}

Fonte: https://gist.github.com/rafael-neri/ab3e58803a08cb4def059fce4e3c0e40

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148887
    • Total Posts
      644946
×
×
  • Create New...