
Kod: Markera allt
// Simpel personnummers verifierings grej
//
// Gjord av Rickard Andersson en tråkig Torsdag
// exz@slackware.se
//
// Tack sagge för sällskapet och idén
function persnr($person_nr) {
// Om personnumret är skrivet som ååmmdd-xxxx
// Tipstack lema2.0 @ http://forum.slackware.se
//
if (strstr($person_nr,"-")) { $person_nr=str_replace("-","",$person_nr); }
// Tar ut alla siffror utom sista
//
$p=substr($person_nr,0,9);
// Detta multiplicerar personnumret enligt
// http://susning.nu/Personnummer
//
// 8 9 0 4 2 6 5 2 6
// * 2 1 2 1 2 1 2 1 2
for ($x=0;isset($p[$x]);$x++) {
$t1=$x/2;
$t2=round($x/2);
if ($t1 == $t2) { $meep=$meep . $p[$x] * 2; }
else { $meep=$meep . $p[$x]; }
}
// Detta lägger ihop personnumret enligt
// http://susning.nu/Personnummer
//
// 1+6+9+0+4+4+6+1+0+2+1+2
for ($x=0;isset($meep[$x]);$x++) { $mjew=$mjew + $meep[$x]; }
// Detta kollar hur långt det är till närmsta 10-tal
//
// 36->40=4
while (substr($mjew,1,1) != 0) {
$mjew++;
$result++;
}
// Jämför siffran vi fått ut med den som är angiven
//
if ($result == substr($person_nr,9,1)) { return(1); }
else { return(0); }
}
$valid=persnr("890426526");