Jump to content

Personas koda algoritms / čeksumma


barakuda
 Share

Recommended Posts

DJ_BioniX

ja nemaldos, tad tas algoritms ir valsts nosleepums.

 

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

Link to comment
Share on other sites

barakuda
(labots)

Ok, danke schön.

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

Labots - barakuda
Link to comment
Share on other sites

  • 4 weeks later...

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

Link to comment
Share on other sites

if(isset($_POST['pk']) && !empty($_POST['pk'])) {
if(PK_VALID($_POST['pk'])===true) {
	//ok 
}
else {
	//nav ok
};
};

Link to comment
Share on other sites

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 :)

Link to comment
Share on other sites

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']);

Link to comment
Share on other sites

Faila beigās ieliec šo

 

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

Link to comment
Share on other sites

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)

Labots - Hornicn
Link to comment
Share on other sites

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;-)');

?>

Link to comment
Share on other sites

  • 12 years later...
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)?

Link to comment
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

 

 

Link to comment
Share on other sites

itanium

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.

Labots - itanium
Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...