Erro no meu script PHP

Luan Potter

Membro
Já posetei isso em vários fóruns, então resolvi postar aqui também.
Criei um script simples em php para verificar se o cpf de uma pessoa está certo, de acordo com as regras deste site:
http://www.pontosevirgulas.hpg.com.br/curiosos/cpf_falso.htm
Criei duas páginas, uma com o form (cpf.php) e outra que processa e exibe o resultado (final.php).
cpf.php (pode baixar em txt aqui se quiser)
Código:
<html>
<head>
<title>Teste</title>
</head>
<body>
<form action="final.php" method="post">
Digite os primeiros nove dígitos: <input type="text" maxlength="1" name="v1"><input type="text" maxlength="1" name="v2"><input type="text" maxlength="1" name="v3"><input type="text" maxlength="1" name="v4"><input type="text" maxlength="1" name="v5"><input type="text" maxlength="1" name="v6"><input type="text" maxlength="1" name="v7"><input type="text" maxlength="1" name="v8"><input type="text" maxlength="1" name="v9">
<input type="submit" value="Vai">
</form>
</body>
</html>
final.php (pode baixar em txt aqui se quiser)
Código:
<html>
<head>
<title>Resultado</title>
</head>
<body>
<? 
$f1 = $v1 * $v9;
$f2 = $v2 * $v8;
$f3 = $v3 * $v7;
$f4 = $v4 * $v6;
$f5 = $v5 * $v5;
$f6 = $v6 * $v4;
$f7 = $v7 * $v3;
$f8 = $v8 * $v2;
$f9 = $v1 * $v9;
$fa = $f1 + $f2 + $f3 + $f4 + $f5 + $f6 + $f7 + $f8 + $f9; 
$fb1 = fmod($fa, 11);
$g1 = $fb1 * $v9;
$g2 = $v1 * $v8;
$g3 = $v2 * $v7;
$g4 = $v3 * $v6;
$g5 = $v4 * $v5;
$g6 = $v5 * $v4;
$g7 = $v6 * $v3;
$g8 = $v7 * $v2;
$g9 = $v8 * $v1;
$g10 = $v9 * $fb1;
$ga = $g1 + $g2 + $g3 + $g4 + $g5 + $g6 + $g7 + $g8 + $g9 + $g10;
$gb1 = fmod($ga, 11);
if ($fb1 == "10") {
$fb1 = 0;
}
if ($gb1 == "10") {
$gb1 = 0;
}
?>
CPF: <? echo $v1.$v2.$v3.$v4.$v5.$v6.$v7.$v8.$v9; ?><br>
Dígitos de confirmação: <? echo $fb1.$gb1; ?>
</body>
</html>
.
Acontece que, quando rodo no localhost, aparece:
CPF:
Dígitos de confirmação:
E quando rodo no meu site em construção, aparece:
CPF:
Dígitos de confirmação: 00
Mesmo quando não era para ser 00.
Gostaria de saber qual é o problema. Obrigado
 
Última edição:
No cpf.php, onde tens name="v1" até name="v9", acrescenta em cada campo uma propriedade id idêntica, id="v1" a id="v9".
 
Em $f1 = $1 * $9; onde é que defines $1 e $9 ?
R: em lado nenhum!

Pelo que vi do site o que tu queres é

$f1 = $_POST["v1"] * 9;
$f2 = $_POST["v2"] * 8;
....


E em $g1 = $fb1 * $9;

Não será

$g1 = $fb1 * 9 ?

Em $g2 = $1 * $8;

não será

$g2 = $_POST["v2"] * 8;
$g3 = $_POST["v2"] * 7;
....

Eu penso que não ideia do que estás a fazer aprende PHP primeiro.
Mesmo assim com o que disse já deves conseguir ou então define o que é $1 $2 $3 ....
 
Eu apenas disse isto porque tens o final mal escrito.. A minha dúvida é apenas se te enganaste a escrever aqui ou se fizeste copy paste do teu ficheiro e ele não trabalhar por ter o nome mal escrito..lol

Cumps,
Morphine0225
Não, o nome está certo, foi erro de digitação mesmo, já arrumei.

Luan Potter
Descreve aqui no forum o procedimento para verficar o cpf e talvez possa ajudar.
Pegeui desse site:
Pontos e Vírgulas
"Identificar CPF falso não é difícil
O CPF é composto por 11 números. Nove para a inscrição e dois para controle. Há regras para definir tais números. O primeiro ponto para a identificação do CPF diz respeito ao local onde foi obtido. Se uma pessoa tirou o documento em Brasília, o número que estiver escrito imediatamente anterior ao traço ou barra do controle, tem obrigatoriamente que ser 1(um). Se o CPF foi tirado no Rio de Janeiro, o numero anterior ao traço terá que ser 7(sete). O CPF 123.018.181-00 foi tirado em Brasília, uma vez que o número antes do controle é 1 (um). Esse numero, o nono na numeração dos CPFs, identifica a região fiscal onde mora o contribuinte ( ou onde o mesmo obteve o documento) Essas regiões fiscais são as seguintes:
1º) Distrito Federal,Goiás, Tocatins e Mato Grosso;- 2º) Pará;- ) Ceará; 4º) Pernambuco;​
5º) Bahia; 6º) Minas Gerais; 7º) Rio de Janeiro e Espírito Santo; 8º) São Paulo; ) Paraná;​
10º) Rio Grande do Sul​
Identificar a veracidade do restante dos números exigirá um maior número de contas. No CPF 987654321 por exemplo, o contribuinte terá que multiplicar o número nove por um, o oito por dois e assim sucessivamente até que resultará nas seguintes operações:
Primeira Operação: 9 8 7 6 5 4 3 2 1 X 1 2 3 4 5 6 7 8 9
-------------------------------------------
9 + 16+ 21+ 24+ 25+ 24+ 21+ 16+ 9 = 165 : 11 = 15
O resto deverá ser o primeiro número do controle após o traço ou barra. Isso significa que o número do CPF por enquanto é 9 8 7 6 5 4 3 2 1 - 0 faltando apenas o segundo número do controle.
Segunda Operação: 9 8 7 6 5 4 3 2 1 - 0 X 0 1 2 3 4 5 6 7 8 9
-----------------------------------------------------
0 + 8 + 14 + 18 + 20 + 20 + 18 + 14+ 8 + 0 = 120 : 11 = 10
A partir dessas operações, conclui-se que o segundo número do controle também é 0 (zero) O zero é obtido sempre que a conta for exata e o resto for zero ou igual a 10 ( dez)."
 
Back
Topo