Jump to content
Sign in to follow this  
barakuda

Personas koda algoritms / čeksumma

Recommended Posts

barakuda

Kādam nav apraksts, kā personas kodam pareizību pārbauda?

Share this post


Link to post
Share on other sites
DJ_BioniX

ja nemaldos, tad tas algoritms ir valsts nosleepums.

 

ja pareizi atceros, kautkad laiku atpakal ssii teema bija pacelta forumaa

Share this post


Link to post
Share on other sites
barakuda

Ok, danke schön.

Varbūt kāds var pielikt pie sticky, lai nākamais neprasa atkal?

Edited by barakuda

Share this post


Link to post
Share on other sites
Hornicn

hmmm... man kautkas nestrādā ar tā php iedabūšanu html, kāds var ieraksīt post komandu pareizu?

Share this post


Link to post
Share on other sites
Val
if(isset($_POST['pk']) && !empty($_POST['pk'])) {
if(PK_VALID($_POST['pk'])===true) {
	//ok 
}
else {
	//nav ok
};
};

Share this post


Link to post
Share on other sites
Hornicn

es ar php tā nedaudz uz Jūs, man ir perskods.html -

 

<form action="validation.php" method=post target="_self">

<span class="style3">Parbaudamais personas kods :</span>

<input name="pk" type="text" class="style1" value="XXXXXXXXXXX" size="12" maxlength="12">

<input type=submit class="style1" value="Pārbaudīt">

</form>

 

kas ved uz validation.php failu -

 

<?

function PK_VALID($pk) { $pk = trim(str_replace("-", "", $pk)); if (!$pk || !strlen($pk)==11) return false;

$checksum = 1; for ($i=0; $i<10; $i++) $checksum -= (int)substr($pk, $i, 1) *

(int)substr("01060307091005080402", $i * 2, 2); if ( ($checksum - floor($checksum / 11) * 11) != (int)substr($pk, 10, 1) ) return false; return true; }

?>

 

tātad ko man darīt lai html formā ievadītie dati tiktu post php failā, apstrādāti un izvadīta atbilde... FALSE vai TRUE? loti kārojas šo mehanismu izveidot :)

Share this post


Link to post
Share on other sites
Roboc

tam validation.php failam beigās iemet rindiņu:

echo  PK_VALID($_POST['pk']);

Share this post


Link to post
Share on other sites
Hornicn

iemetu, bet efekta nekāda... ;( izmeginaju to rindinju visas iespejamajas pozicijas, un tad pamaniju ka man tur tada jau bijusi, nelidzeja, nodzesu meklejot citus apkartcelus...

 

tam validation.php failam beigās iemet rindiņu:

echo  PK_VALID($_POST['pk']);

Share this post


Link to post
Share on other sites
versatile

php uzstadits? mazums kas.... :roll:

Share this post


Link to post
Share on other sites
Didulis

Faila beigās ieliec šo

 

$valid = PK_VALID($_POST['pk']);
echo ($valid ? 'Personas kods ir valīds' : 'Personas kods ir invalīds;-)');

Share this post


Link to post
Share on other sites
Hornicn

html fails ir tiesi tads pats, validation.php tagad izskatās šads...

bet tik un tā nekas neiet ;( echo vietā izmet baltu ekrānu bez jebkā :(

 

un php ir uz servera ;)

 

<?

function PK_VALID($pk) {

 

$pk = trim(str_replace("-", "", $pk));

 

 

if (!$pk || !strlen($pk)==11) return false;

 

 

$checksum = 1;

for ($i=0; $i<10; $i++) $checksum -= (int)substr($pk, $i, 1) *

(int)substr("01060307091005080402", $i * 2, 2);

 

if ( ($checksum - floor($checksum / 11) * 11) != (int)substr($pk, 10, 1) )

return false;

 

 

return true;

$valid = PK_VALID($_POST['pk']);

echo ($valid ? 'Personas kods ir valīds' : 'Personas kods ir invalīds;-)');

}

?>

 

(atstarpes sametu uz izjūtu)

Edited by Hornicn

Share this post


Link to post
Share on other sites
Didulis

Jābūt šādi ->

<?
function PK_VALID($pk) {

$pk = trim(str_replace("-", "", $pk));


if (!$pk || !strlen($pk)==11) return false;


$checksum = 1;
for ($i=0; $i<10; $i++) $checksum -= (int)substr($pk, $i, 1) *
(int)substr("01060307091005080402", $i * 2, 2);

if ( ($checksum - floor($checksum / 11) * 11) != (int)substr($pk, 10, 1) )
return false;


return true;
}
$valid = PK_VALID($_POST['pk']);
echo ($valid ? 'Personas kods ir valīds' : 'Personas kods ir invalīds;-)');

?>

Share this post


Link to post
Share on other sites
itanium

Priekš jaunā PK arī ir pieejams tāds algoritms?

Vai arī tur viss pa vienkāršo: garums = 11, sākas ar 32 un visi pārējie ir random cipari (0-9)?

Share this post


Link to post
Share on other sites
Mezavecis

Pēc šī dokumenta spriežot, jaunajiem PK nav nekāds validācijas algoritms un regex stipri noīsināts. Ja tagad jaunie kodi sākas ar 32, tad nav teikts, ka pēc gada tie nebūs 33, 34 utt.

https://viss.gov.lv/-/media/Files/VRAA/Dokumentacija/Vadlinijas/E_pakalpojumi/Programmetaja_rokasgramatas/VISS2014REKPKMEPAK.ashx

 

 

Share this post


Link to post
Share on other sites
snukurins

A kāpēc pk nevar sākties vīriešiem ar garumu bet sievietēm ar dziļumu?

Share this post


Link to post
Share on other sites
AndrisBB

Tapēc ka tad tavs kods sāktos ar nulli

  • Atbalstu 1
  • Haha 3

Share this post


Link to post
Share on other sites
itanium
Posted (edited)

BURN :D

 

 

  

Pirms 13 minūtēm , Mezavecis teica:

Ja tagad jaunie kodi sākas ar 32, tad nav teikts, ka pēc gada tie nebūs 33, 34

Kā būs, tā būs - PK ar 32 sākumā ir no 2017. gada jūlija.

Edited by itanium

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...