Jak sprawdzić poprawność numeru PESEL?

790 views
Skip to first unread message

Artur Owczarek

unread,
Jan 19, 2016, 3:09:18 AM1/19/16
to Warszawa Java User Group (Warszawa JUG)
W każdym projekcie który zaczynam, od nowa pisze się mechanizmy walidacji popularnych rzeczy typu: PESEL, NIP, poprawnosć daty urodzenia względem numeru PESEL, adres e-mail itp. Czy znacie jakąś bibliotekę która to robi? Za każdym razem kiedy czegoś takiego potrzebowałem, niczego nie potrafiłem znaleźć. Jak powinna wyglądać taka biblioteka aby odniosła sukces (była wygodna i popularna wśród programistów)? Macie jakieś sugestie na czym można się wzorować żeby to było dobre, jak powinny być zorganizowane klasy, jakie wzorce byście wykorzystali?

Bartek Kuczyński

unread,
Jan 19, 2016, 3:34:06 AM1/19/16
to warsza...@googlegroups.com

Pozdrawiam
Bartek "Koziołek" Kuczyński
http://koziolekweb.pl
Lepiej pomyśleć dwa razy i zacząć programować
niż dwa razy programować i potem zacząć myśleć 
Prayer to Omnissiah is the best debugging
 \     /
 ~00~
  \_/
   |||

W dniu 19 stycznia 2016 09:09 użytkownik Artur Owczarek <owczare...@gmail.com> napisał:
W każdym projekcie który zaczynam, od nowa pisze się mechanizmy walidacji popularnych rzeczy typu: PESEL, NIP, poprawnosć daty urodzenia względem numeru PESEL, adres e-mail itp. Czy znacie jakąś bibliotekę która to robi? Za każdym razem kiedy czegoś takiego potrzebowałem, niczego nie potrafiłem znaleźć. Jak powinna wyglądać taka biblioteka aby odniosła sukces (była wygodna i popularna wśród programistów)? Macie jakieś sugestie na czym można się wzorować żeby to było dobre, jak powinny być zorganizowane klasy, jakie wzorce byście wykorzystali?

--
--
Wiadomość z grupy Warszawa Java User Group (Warszawa JUG).
Zachęcamy do odwiedzenia naszej strony domowej http://warszawa.jug.pl
Zakaz umieszczania ofert pracy, do tego celu służy oddzielna grupa, więcej na http://warszawa.jug.pl/#/cooperation
---
Otrzymujesz tę wiadomość, bo subskrybujesz grupę „Warszawa Java User Group (Warszawa JUG)” w Grupach dyskusyjnych Google.
Aby anulować subskrypcję tej grupy i przestać otrzymywać od niej wiadomości, wyślij e-maila na warszawa-jug...@googlegroups.com.
Aby opublikować wpis w tej grupie, wyślij e-maila na warsza...@googlegroups.com.
Więcej opcji znajdziesz na https://groups.google.com/d/optout.

Artur Owczarek

unread,
Jan 19, 2016, 4:42:36 AM1/19/16
to warsza...@googlegroups.com
Tylko dalej to jest dość biedne rozwiązanie. Użytkownik systemu lubi wiedzieć czy PESEL jest za krótki, za długi, suma kontrolna się nie zgadza, miesiąc nie ma sensu lub numer nie pasuje do daty urodzenia.

Bartek Kuczyński

unread,
Jan 19, 2016, 4:52:18 AM1/19/16
to warsza...@googlegroups.com
Takie sprawdzanie to zły pomysł. W systemie PESEL jest masa błędów w rodzaju nieprawidłowych, nieistniejących, dni, złej cyfry płci czy wadliwej sumy kontrolnej. Powyższe rozwiązanie jest to wersja minimum i można to rozwijać, ale będzie z tego więcej problemów niż pożytku. 

yu...@avd.pl

unread,
Jan 19, 2016, 4:55:30 AM1/19/16
to warsza...@googlegroups.com

Tylko czy na pewno potrzebujesz czegoś więcej? Może jako programista chciałbyś to mieć, ale czy użytkownik tego potrzebuje? Walidacja peselu ma na celu zapobieganie zwykłych pomyłek przy jego wprowadzaniu. System zgłasza, że pesel jest niepoprawny, to użytkownik wklepuje/przepisuje go na nowo. W zupełności wystarczy, jeśli walidator sprawdzi tylko sumę kontrolną i zgłosi jej niepoprawność. Za krótki / za długi – to możesz zapewne zdefiniować w kontrolce pola formularza, która zgłosi błąd jeszcze przed wysłaniem na serwer. Jeśli chcesz walidować datę urodzenia, to zrób to raczej dla pola daty urodzenia, które będzie porównywać ją z peselem.

 

Pamiętaj o najważniejszym, o czym wielu zapomina. Jest trochę numerów PESEL, które kiedyś zostały źle wygenerowane (raczej kilkadziesiąt lat temu, teraz już się pewnie to nie zdarza). Walidacja PESEL’u musi być opcjonalna, tj. użytkownik ma dostać ostrzeżenie, ale musi dalej mieć możliwość zatwierdzenia formularza. Zdarzają się też przypadki, że dwie osoby mają taki sam PESEL, więc unique constraint również odpada 😊

 

Pozdrawiam

Piotr Ostrowski

Kuba Kubryński

unread,
Jan 19, 2016, 5:05:53 AM1/19/16
to Warszawa Java User Group (Warszawa JUG)
Dokładnie tak - pamiętaj, że PESELu nie można walidować na zasadzie go/no-go. Możesz zasugerować sprawdzenie, czy na pewno wpisany PESEL jest zgodny np z dowodem, ale nie można zablokować inserta.

Pozdrawiam,
Kuba

Artur Owczarek

unread,
Jan 19, 2016, 5:39:06 AM1/19/16
to warsza...@googlegroups.com
Dzięki, właśnie o tego rodzaju uwagi mi chodziło. Jak by ktoś miał coś jeszcze do dodania, to chętnie poczytam.
Reply all
Reply to author
Forward
0 new messages