Íslensk kennitala
Skrifað af Tómas A. Árnason þann 14. desember 2007 - 18:26
7 athugasemdir skrifaðar - toppur / botn
Fjöldi lestra: 2141
Þessi aðgerð athugar hvort að uppgefin kennitala standist útreikninga Hagstofu.
 1 |
 2 |
 3 |
 4 |
 5 |
 6 |
 7 |
 8 |
 9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
<?php

/*
Nánari útskýringar má finna á slóðinni http://www.thjodskra.is/en/id-numbers/
*/

function is_valid($kt)
{
    
$stafur_1 substr($kt0,1);
    
$stafur_2 substr($kt1,1);
    
$stafur_3 substr($kt2,1);
    
$stafur_4 substr($kt3,1);
    
$stafur_5 substr($kt4,1);
    
$stafur_6 substr($kt5,1);
    
$stafur_7 substr($kt6,1);
    
$stafur_8 substr($kt7,1);
    
$stafur_9 substr($kt8,1);
    
$stafur_110 substr($kt9,1);
    
    
$multiply = ($stafur_1 3) + ($stafur_2 2) + ($stafur_3 7) + ($stafur_4 6) +  ($stafur_5 5) + ($stafur_6 4) + ($stafur_7 3) + ($stafur_8 2);
    
$reminder = ($multiply 11);
    
$check_number = (11 $reminder); 
    
    if(
$stafur_9 == $check_number)
    {
        return 
true;
    }
    else
    {
        return 
false;
    }
}

if(
is_valid($kennitala))
{
    echo 
"Þetta er kennitala";
}
else
{
    echo 
"Þetta er ekki kennitala";
}
?>



8. apríl 2008 - 17:17
#1 - Birkir Rafn Guðjónsson
http://innsyn.is
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;
}
?>

8. apríl 2008 - 21:10
#2 - Gaui
http://www.gaui.is
if(...){}else{ ?

28. apríl 2009 - 16:54
#3 - Arnar
http://a2.is
Þ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!!

30. apríl 2009 - 13:01
#4 - Arnar
http://a2.is
[php]if($stafur_9 == $check_number)
{
return true;
}
elseif( $check_number

30. júní 2009 - 00:18
#5 - andri-33
http://blabla
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?
...........................................

20. ágúst 2009 - 10:40
#6 - Arnar G
http://a2.is
É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;
}

20. ágúst 2009 - 20:43
#7 - Gaui
http://www.gaui.is
Eða bara... $stafur{0} = fyrsti stafurinn, o.s.frv.




Nafn:


Netfang:


Veffang:


Hvað er tólf plús einn?



Skilaboð: