![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
szukałem wczoraj dość długo generatora numerów pesel w PHP ... zamiast tego znalazłem w JS ... Tylko nie za bardzo wiem jak przerobić to na PHP. Wygenerowane liczby chcę zakodować w mcrypt i przesłać do innego skryptu, rozkodować i sprawdzić czy wygenerowane liczby są prawidłowe ![]() Kod function getDigit()
{ return Math.floor(Math.random() * 10); } function calcPesel(date, sex) { var wagi = new Array (1, 3, 7, 9, 1, 3, 7, 9, 1, 3); var fullYear = date.getFullYear(); var y=fullYear % 100; var m=date.getMonth()+1; var d=date.getDate(); if (fullYear>=1800 && fullYear<=1899){ m += 80; } else if (fullYear>=2000 && fullYear<=2099){ m += 20; } else if (fullYear>=2100 && fullYear<=2199){ m += 40; } else if (fullYear>=2200 && fullYear<=2299){ m += 60; } var cyfry = new Array (Math.floor(y/10),y%10,Math.floor(m/10),m%10,Math.floor(d/10),d%10); for (var i = cyfry.length; i < wagi.length-1; i++) cyfry[i] = getDigit(); if (sex == 'M'){ cyfry[wagi.length-1] = getLetter('13579'); } else if (sex == 'F'){ cyfry[wagi.length-1] = getLetter('02468'); } else { cyfry[wagi.length-1] = getDigit(); } var cyfra_kontrolna = 0; for (var i=0; i<cyfry.length; i++) cyfra_kontrolna += wagi[i] * cyfry[i]; cyfra_kontrolna = (10 - (cyfra_kontrolna % 10)) % 10; var r = ''; for (var i=0; i<cyfry.length; i++) r += String(cyfry[i]); r += String(cyfra_kontrolna); return r; } -------------------- GG: 564555
|
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Ale w czym masz problem?
Masz w tym kodzie same if-y i for-y plus jedna deklaracja tablicy i jedno wywołanie f-cji floor() plus f-cje daty. Zamieniasz linijka po linijce na kod zgodny ze składną PHP (wywalasz var, przed nazwami zmiennych dodajesz $ itd.) i po robocie. Tam, gdzie masz wywołania f-cji pomieniasz na analogiczne z PHP ( floor(), date() ). -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
OK
![]()
I błędy : Kod Warning: strlen() expects parameter 1 to be string, array given in pesel.php on line 41 Warning: strlen() expects parameter 1 to be string, array given in pesel.php on line 41 Warning: strlen() expects parameter 1 to be string, array given in pesel.php on line 41 Warning: strlen() expects parameter 1 to be string, array given in pesel.php on line 44 Warning: strlen() expects parameter 1 to be string, array given in pesel.php on line 47 Warning: strlen() expects parameter 1 to be string, array given in pesel.php on line 52 0 ----Edit: Trochę pozamieniałem to z tym strlen i teraz mam kod:
I błąd: Kod Fatal error: Unsupported operand types in pesel.php on line 31
Ten post edytował Elber 9.11.2011, 11:54:33 -------------------- GG: 564555
|
|
|
![]()
Post
#4
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Jak chcesz do $i przypisac tablicę, no to się nie dziw, że masz błąd -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
A jak ten błąd naprawić ? Bo kombinuję i to jest moment w którym jestem bezradny
![]() -------------------- GG: 564555
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
nie strlen a count
-------------------- gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet. Zarabianie bez wysiłku na domenach bez ruchu: prolink. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Już tak próbowałem, ale jak odpalę to to cały czas myśli ... nic się nie wyświetla tylko cały czas się coś robi ...
Teraz wpadłem na pomysł że można trochę to obejść ... ale nie jest to zbyt optymalne rozwiązanie ...
Taki kod wyświetli mi poprawny kod pesel, jednak chyba lepszym i szybszym rozwiązaniem byłoby naprawić ten kod wyżej ![]() -------------------- GG: 564555
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Funkcja z pierwszego posta przepisana prawie 1 do 1 w PHP. Działa, aczkolwiek możnaby to napisać dużo ładniej i dużo prościej.
Ten post edytował mls 9.11.2011, 22:36:23 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.04.2025 - 04:46 |