Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Walidacja PESEL - brak informacji
n3xt
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 7.11.2014

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


Użyłem skryptu, który jest najbardziej popularnym w sieci i problem jest w tym, że nie wyświetla mi się żadna informacja zwrotna czy wprowadzona wartość jest poprawna.

  1. <?php
  2.  
  3. ini_set('display_errors','1');
  4.  
  5. echo 'Podany numer PESEL: ';
  6.  
  7. $PES = $_POST['PES'];
  8.  
  9. echo $PES;
  10.  
  11. echo ' jest: ';
  12.  
  13. function PESEL($PES)
  14. {
  15. if (!preg_match('/^[0-9]{11}$/',$PES))
  16. {
  17. echo 'za krótki';
  18. return false;
  19.  
  20. }
  21.  
  22. $arrSteps = array(1, 3, 7, 9, 1, 3, 7, 9, 1, 3);
  23. $intSum = 0;
  24. for ($i = 0; $i < 10; $i++)
  25. {
  26. $intSum += $arrSteps[$i] * $PES[$i];
  27. }
  28. $int = 10 - $intSum % 10;
  29. $intControlNr = ($int == 10)?0:$int;
  30. if ($intControlNr == $PES[10])
  31. {
  32. return true;
  33. echo 'prawidłowy';
  34. }
  35. return false;
  36. echo 'nieprawidłowy';
  37. }
  38. ?>


gdzie jest błąd?
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

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


Nie wywołujesz nigdzie funkcji PESEL.
Jeśli zwracasz return, to raczej echo już się nie wykona. Zresztą dla porządku, to echo powinno być poza tą funkcją, lecz zależne od wyniku jaki zwróci.
Go to the top of the page
+Quote Post
jacobson
post
Post #3





Grupa: Zarejestrowani
Postów: 468
Pomógł: 36
Dołączył: 14.12.2010

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


nie wywolales funkcji sprawdzajacej pesel
Go to the top of the page
+Quote Post
n3xt
post
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 7.11.2014

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


ok, dodałem

  1. echo PESEL($PES);


i już sprawdza. tylko, jak teraz opuścić tą funkcję aby mając poprawny Pesel skrypt szedł dalej w moim przypadku to już zapisanie do bazy danych, bo wpisując tą walidację w cały skrypt nie działa nic a próbuje poprać plik test.php

  1. <?php
  2.  
  3. ini_set('display_errors','1');
  4.  
  5.  
  6. $NAZ = $_POST['NAZ'];
  7. $NIP = $_POST['NIP'];
  8. $REG = $_POST['REG'];
  9. $SEX = $_POST['SEX'];
  10. $IMIE = $_POST['IMIE'];
  11. $NAZW = $_POST['NAZW'];
  12. $PES = $_POST['PES'];
  13. $DOK = $_POST['DOK'];
  14. $SER = $_POST['SER'];
  15. $KOD = $_POST['KOD'];
  16. $MIE = $_POST['MIE'];
  17. $ULI = $_POST['ULI'];
  18. $TEL = $_POST['TEL'];
  19. $KOD2 = $_POST['KOD2'];
  20. $MIE2 = $_POST['MIE2'];
  21. $ULI2 = $_POST['ULI2'];
  22. $MAIL = $_POST['MAIL'];
  23.  
  24. $Y = date ('Y');
  25.  
  26. echo PESEL($PES);
  27.  
  28. function PESEL($PES)
  29. {
  30. if (!preg_match('/^[0-9]{11}$/',$PES))
  31. {
  32. echo 'za krótki';
  33. return false;
  34.  
  35. }
  36.  
  37. $arrSteps = array(1, 3, 7, 9, 1, 3, 7, 9, 1, 3);
  38. $intSum = 0;
  39. for ($i = 0; $i < 10; $i++)
  40. {
  41. $intSum += $arrSteps[$i] * $PES[$i];
  42. }
  43. $int = 10 - $intSum % 10;
  44. $intControlNr = ($int == 10)?0:$int;
  45. if ($intControlNr == $PES[10])
  46. {
  47. echo 'prawidłowy';
  48. return true;
  49.  
  50. }
  51. echo 'nieprawidłowy';
  52. return false;
  53.  
  54. }
  55. switch($SEX)
  56. {
  57. case 'K';
  58. $PL = 'Panią';
  59. break;
  60. case 'M';
  61. $PL = 'Panem';
  62. break;
  63. }
  64.  
  65.  
  66.  
  67. if($IMIE and $NAZW and $PES) {
  68. $connection = mysql_connect('localhost', 'root', '******')
  69. or die('Brak połączenia z serwerem MySQL');
  70. $db = mysql_select_db('klienci', $connection)
  71. or die('nie mogę połączyć się z bazą danych');
  72. $U = mysql_query("select count(distinct umowa) from umowy;");
  73. $UMO = mysql_fetch_array($U);
  74. $ins = mysql_query("INSERT INTO umowy SET Id=NULL, Umowa='$UMO', Firma='$NAZ', Nip='$NIP', Regon='$REG', Plec='$SEX', Imie='$IMIE', Nazwisko='$NAZW', Pesel='$PES', Dokument='$DOK', Seria='$SER', Kodpocz='$KOD', Miasto='$MIE', Ulica='$ULI', Kodpocz2='$KOD2', Miasto2='$MIE2', Ulica2='$ULI2', Telefon='$TEL', Email='$MAIL'");
  75. mysql_close($connection);
  76.  
  77.  
  78. header( 'Content-type: application/msword' );
  79. header( 'Content-Disposition: inline, filename:"umo.rtf"');
  80.  
  81. $DATA = date( 'd-m-Y' );
  82.  
  83.  
  84. $nazwa_pliku = 'umowa.rtf';
  85. $wyswietl = file_get_contents($nazwa_pliku);
  86. $wyswietl = str_replace( '<<UMO>>', $UMO.'/'. $Y, $wyswietl );
  87. $wyswietl = str_replace( '<<DATA>>', $DATA, $wyswietl );
  88. $wyswietl = str_replace( '<<NAZ>>', $NAZ, $wyswietl );
  89. $wyswietl = str_replace( '<<NIP>>', $NIP, $wyswietl );
  90. $wyswietl = str_replace( '<<REG>>', $REG, $wyswietl );
  91. $wyswietl = str_replace( '<<SEX>>', $PL, $wyswietl );
  92. $wyswietl = str_replace( '<<IMIE>>', $IMIE, $wyswietl );
  93. $wyswietl = str_replace( '<<NAZW>>', $NAZW, $wyswietl );
  94. $wyswietl = str_replace( '<<PES>>', $PES, $wyswietl );
  95. $wyswietl = str_replace( '<<DOK>>', $DOK, $wyswietl );
  96. $wyswietl = str_replace( '<<SER>>', $SER, $wyswietl );
  97. $wyswietl = str_replace( '<<KOD>>', $KOD, $wyswietl );
  98. $wyswietl = str_replace( '<<MIE>>', $MIE, $wyswietl );
  99. $wyswietl = str_replace( '<<ULI>>', $ULI.',', $wyswietl );
  100. $wyswietl = str_replace( '<<KOD2>>', $KOD2, $wyswietl );
  101. $wyswietl = str_replace( '<<MIE2>>', $MIE2, $wyswietl );
  102. $wyswietl = str_replace( '<<ULI2>>', $ULI2.',', $wyswietl );
  103. $wyswietl = str_replace( '<<TEL>>', $TEL, $wyswietl );
  104. $wyswietl = str_replace( '<<MAIL>>', $MAIL, $wyswietl );
  105. $wyswietl = str_replace( 'ą', '\u261a', $wyswietl );
  106. $wyswietl = str_replace( 'ó', '\u243a', $wyswietl );
  107.  
  108. echo $wyswietl;
  109. }
  110. ?>


Ten post edytował n3xt 16.11.2014, 22:00:24
Go to the top of the page
+Quote Post

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: 20.12.2025 - 21:47