Íslensk kennitala
Skrifað af Tómas A. Árnason þann 14. desember 2007 - 18:26
Fjöldi lestra: 2141Þessi aðgerð athugar hvort að uppgefin kennitala standist útreikninga Hagstofu.
1 | | |
Ahh damn var búinn að brasa í að reyna gera etta, samkvæmt þessum útreikningum, bara örlítið einfaldari function.
<?php
function ath_kt($kennitala){
$kennitala = str_replace('-','',$kennitala);
$margf = array(3,2,7,6,5,4,3,2);
$summa = 0;
for($i=0;$i!=8; $i++){
$summa = $summa + ($margf[$i] * $kennitala[$i]);
}
$oryggistala = (11-($summa % 11));
if($oryggistala != $kennitala[8]){
return false;
}
if($kennitala[9] == 0 || $kennitala[9] == 8 || $kennitala[9] == 9){}else{
return false;
}
return true;
}
?>
if(...){}else{ ?
Það vantar að reikna út hvað ef að það er ekki afgangur. Þeas þegar 11 stafur er 0
Þessi function reiknar með því núna að athuga hvort að 11 stafurinn gæti verið negatívur!!
Þessi function reiknar með því núna að athuga hvort að 11 stafurinn gæti verið negatívur!!
[php]if($stafur_9 == $check_number)
{
return true;
}
elseif( $check_number
{
return true;
}
elseif( $check_number
Hæ.
Ég var að sjá þennan kóða..
hvað gerir hann..
fer þetta beint í þjóðskránna.
eða er þetta bara system til að gera bann á fólk?
...........................................
Ég var að sjá þennan kóða..
hvað gerir hann..
fer þetta beint í þjóðskránna.
eða er þetta bara system til að gera bann á fólk?
...........................................
Ég var að sjálfsögðu að ruglast eitthvað í síðustu athugasemd eins og ég komst að næst þegar kom að því að nota þennan kóða.
Það sem var að þessu er ef að 9. stafurinn í kennitöluni er 0 þá kemur villa í þetta function. Vegna þess að að $check_number er 11 en hún vill athuga hvort það sé ekki 0.
þetta er uppfærð og rétt lagfæring á þessu functioni =)
if($stafur_9 == $check_number)
{
return true;
}
elseif( $check_number == '11' && $stafur110 == '0' )
{
return true;
}
else
{
return false;
}
Það sem var að þessu er ef að 9. stafurinn í kennitöluni er 0 þá kemur villa í þetta function. Vegna þess að að $check_number er 11 en hún vill athuga hvort það sé ekki 0.
þetta er uppfærð og rétt lagfæring á þessu functioni =)
if($stafur_9 == $check_number)
{
return true;
}
elseif( $check_number == '11' && $stafur110 == '0' )
{
return true;
}
else
{
return false;
}
Eða bara... $stafur{0} = fyrsti stafurinn, o.s.frv.


7 athugasemdir skrifaðar -