Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Generator numeru PESEL
Malinaa
post
Post #1





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Usiłuję wykonać generator numeru PESEL KOD TUTAJ
Mam prośbę o sprawdzenie i poprawienie błędów.

Ten post edytował Malinaa 29.01.2020, 13:50:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Malinaa
post
Post #2





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Poprawiłem, teraz jest tak

Kod
  // 10 digits (number)
  $digits_number = $year_last.$month_number.$day.$random_number.$sex;
  
  // Number sum
  $arrBalance = [9, 7, 3, 1, 9, 7, 3, 1, 9, 7];
  
  $number = (string)$digits_number;
  $strlen = strlen($number);
  $digit_sum = 0;
  
  for ($i=0; $i<$strlen; $i++) {
    $digit_sum += ($arrBalance[$i] * (int)$number[$i]);
  }
  
  // Checksum
  $checksum = $digit_sum % 10;
  
  // PESEL
  $pesel = $digits_number.$checksum;


Pomińmy PSR (w tym kodzie), gdzie tutaj można użyć === ? INT - czy o ten chodziło.
MODULO czy teraz jest dobrze?

Zobaczyłem jeszcze jedno

Kod
// Month
  $month_number = $arrMonthsMore[(int)$year_first][(int)$month];
  if (strlen($month_number) < 2) $month_number = (int)'0'.$month_number;


W większości przypadków liczba (dla miesięcy) jest dwu cyfrowa, ale
dla lat 1900-1999 są liczby jedno cyfrowe i brakuje 0 z przodu liczby
przez co PESEL ma 10 nie 11 cyfr. Jak dodać 0 przed liczbą: 1, 2, 3... (01, 02, 03)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 19:10