Isikukood: erinevus redaktsioonide vahel

Eemaldatud sisu Lisatud sisu
PResümee puudub
Tormit (arutelu | kaastöö)
88. rida:
|-
|
<syntaxhighlight lang="php">
function validateCode($code){<br />
$is = substr($code, strlen($code) - 1, 1);<br />
$shouldBe = 0;<br />
<br />
 
// esimese astme skaala<br />
for($i = 1; $i < 11; $i++){<br />
for($i = 1; $i < 11; $i++){
$shouldBe += ($i % 10 + intval($i / 10)) * substr($code, $i - 1, 1);<br />
}<br />
$shouldBe = $shouldBe % 11;<br />
 
<br />
// teise astme skaala kui $shouldBe on võrdne 10ga<br />
if($shouldBe == 10){<br />
$shouldBe = 0;<br />
for($i = 3; $i < 13; $i++){<br />
$shouldBe += ($i % 10 + intval($i / 10)) * substr($code, $i - 3, 1);<br />
}<br />
$shouldBe = $shouldBe % 11;<br />
 
<br />
// kui jääk on 10 siis muuda $shouldBe 0'ks<br />
if($shouldBe == 10){$shouldBe = 0;}<br />
}<br />
 
<br />
if($is == $shouldBe){return true;}<br />
 
<br />
return false;<br />
}<br />
</syntaxhighlight>
|}
 
121. rida ⟶ 123. rida:
|-
|
<syntaxhighlight lang="php">
function validatePersonalCode($code)<br />
{ <br />
{
if(strlen($code) != 11 || !is_numeric($code)) return false;<br />
 
$subcode = substr($code, 0, -1); <br />
for ( $k = 1; $k <= 3; $k += 2 ) <br />
{ <br />
$s = 0;<br />
for ( $i = 0; $i < 10; ++$i ) <br />
{ <br />
$s += $k * $subcode{$i}; <br />
$k = ( 9 == $k ? 1 : $k + 1 ); <br />
} <br />
if ( ( $s %= 11 ) < 10 ) <br />
{ <br />
break;<br />
} <br />
}<br />
if (substr($code, -1) != $s)<br />
{<br />
return false;<br />
}<br />
 
return true;<br />
}<br />
</syntaxhighlight>
|}