cpr validering. hvor er fejlen i koden her?
if(isset($_POST['cpr']) AND $_POST['cpr'] != ''){if(strlen($_POST['cpr']) < '10'){
$fejl = "". @$fejl ."<br>CPR nummeret er for kort";
}
if(strlen($_POST['cpr']) > '10'){
$fejl = "". @$fejl ."<br>CPR nummeret er for langt";
}
$dag = 0 + substr($_POST['cpr'], 0, 2);
$maned = 0 + substr($_POST['cpr'], 2, 2);
$aar = 0 + substr($_POST['cpr'], 4, 2);
if($dag < '1' || $dag > '31'){
$fejl = "". @$fejl ."<br>Tegn 1 og 2 er forkerte";
}
if($dag == '31' && ($maned == '2' || $maned == '4' || $maned == '6' || $maned == '7' || $maned == '9' || $maned == '11') || $dag == '30' && $maned = '2'){
$fejl = "". @$fejl ."<br>Der er ikke ". $dag ." dage i ". $maned .". måned";
}
if($maned < '1' || $maned > '12'){
$fejl = "". @$fejl ."<br>Tegn 3 og 4 er forkerte";
}
for ($i=0; $i<10; $i++){
$c[$i] = substr($_POST['cpr'], $i, 1);
}
$cpr_checksum = ($c[0] * 4) + ($c[1] * 3) + ($c[2] * 2) + ($c[3] * 7) + ($c[4] * 6) + ($c[5] * 5) + ($c[6] * 4) + ($c[7] * 3) + $c[9];
$cpr_checksum = $cpr_checksum / 11;
if($cpr_checksum != ''){
$fejl = "". @$fejl ."<br>CPR nummeret er ugyldigt";
}
}
Hvad er der galt med denne her CPR validering? Den melder fejl, selvom CPR er rigtig
