Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Programowanie Obiektowe..., czy tak nalezy postepowac
mhs
post
Post #1





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

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


Witam serdecznie,
mam nastepujaca klase (wlasciwie jej poczatek), jest to klasa odpowiedzialna za prawdzanie danych...

wyglada ona w sposob nastepujacy:
SprawdzanieDanych.class.php
  1. <?php
  2.  
  3.  class SprawdzanieDanych
  4.  {
  5.  // sprawdzany ciag
  6.  var $ciag;
  7.  
  8.  
  9.  /**
  10. * @desc Kontruktor klasy
  11. */
  12.  function SprawdzanieDanych($ciag) {
  13.  $this->ciag = $ciag;
  14.  }
  15.  
  16.  
  17.  /**
  18. * @desc Sprawdzenie poprawnosci adresu poczty elektronicznej
  19. *
  20. * @return bool
  21. */
  22.  function sprawdzEmail() {
  23. return preg_match('/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/', $this->ciag);
  24.  }
  25. }
  26.  
  27. ?>


a teraz wykorzystanie tej klasy w kodzie

index.php
  1. <?php
  2.  
  3. require_once('SprawdzanieDanych.class.php');
  4.  
  5. $ciag = 'mhs_news@interia.pl';
  6.  
  7. $spr = new SprawdzanieDanych($ciag);
  8. var_export($spr->sprawdzEmail());
  9.  
  10. $ciag = 'mhs_newsinteria.pl';
  11.  
  12. $spr->ciag = $ciag;
  13. var_export($spr->sprawdzEmail());
  14.  
  15. ?>


co do tego kodu to mam pytanie czy w prawidlowy sposob tworze konstruktor klasy oraz czy pozniej prawidlowo wykonuje czynnosci w pliku index.php zwlaszcza chodzi mi o linie 12 - czy w ten sposob powinno sie postepowac... gdyz moge przekazywac ciag poprzez argument w metodzie (czyli: $spr->email($ciag), oczywiscie trzeba zmienic troche kod klasy) ale wowczas z kolei nie mam co "wrzucic" do kontruktora klasy...

prosze o podpowiedzi...

mhs
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mhs
post
Post #2





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

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


jezeli chodzi o sama klase to mysle, ja rozbudowac o kolejne metody sprawdzajace nip, regon, pesel i troche innych rzeczy...

w chwili obecnej to ona ma nastepujaca postac:

  1. <?php
  2.  
  3. class SprawdzanieDanych
  4. {
  5. // sprawdzany ciag
  6. var $ciag;
  7.  
  8. // zmienna przechowujaca sume
  9. var $suma;
  10.  
  11. // liczba kontrolna
  12. var $liczba_kontrolna;
  13.  
  14. // tablica przechowujaca wagi dla poszczegolnych pozycji w sprawdzanym numerze
  15. var $wagi;
  16.  
  17. // licznik petli
  18. var $i;
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25. /**
  26.  * @desc Kontruktor klasy
  27.  */
  28. function SprawdzanieDanych($ciag) {
  29. $this->ciag = $ciag;
  30. }
  31.  
  32.  
  33.  
  34. /**
  35.  * @desc Sprawdzenie poprawnosci adresu poczty elektronicznej
  36.  *
  37.  * @return bool
  38.  */
  39. function email() {
  40. return preg_match('/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/', $this->ciag);
  41. }
  42.  
  43.  
  44.  
  45. /**
  46.  * @desc Sprawdzenie poprawnosci kodu pocztowego
  47.  *
  48.  * @return bool
  49.  */
  50. function kodPocztowy() {
  51. return preg_match('/^[0-9]{2}[-][0-9]{3}$/', $this->ciag);
  52. }
  53.  
  54.  
  55.  
  56. /**
  57.  * @desc Sprawdzanie poprawnosci numeru NIP wg. wzorca: xxx-xxx-xx-xx
  58.  *
  59.  * @return bool
  60.  */
  61. function nip() {
  62. // sprawdzenie dopasowania do wzorca
  63. if (!ereg('^[0-9]{3}-[0-9]{3}-[0-9]{2}-[0-9]{2}$', $this->ciag))
  64. return 0;
  65.  
  66. $this->ciag = str_replace('-', '', $this->ciag);
  67.  
  68. $this->wagi = array(6, 5, 7, 2, 3, 4, 5, 6, 7);
  69.  
  70. $this->suma = 0;
  71. for ($this->i = 0; $this->i < count($this->wagi); $this->i++)
  72. $this->suma += substr($this->ciag, $this->i, 1) * $this->wagi[$this->i];
  73.  
  74. if ( ($this->suma % 11) == substr($this->ciag, 9, 1) )
  75. return 1;
  76. else
  77. return 0;
  78. }
  79.  
  80.  
  81.  
  82. /**
  83.  * @desc Sprawdzanie poprawnosci numeru REGON
  84.  *
  85.  * @return bool
  86.  */
  87. function regon() {
  88. if (!ereg('^[0-9]{9}$', $this->ciag))
  89. return 0;
  90.  
  91. $this->wagi = array(8, 9, 2, 3, 4, 5, 6, 7);
  92.  
  93. $this->suma = 0;
  94. for ($this->i = 0; $this->i < count($this->wagi); $this->i++)
  95. $this->suma += substr($this->ciag, $this->i, 1) * $this->wagi[$this->i];
  96.  
  97. if ( ($this->suma % 11) == substr($this->ciag, 8, 1))
  98. return 1;
  99. elseif ( (($this->suma % 11) == 10) && (substr($this->ciag, 8, 1) == 0) )
  100. return 1;
  101. else
  102. return 0;
  103. }
  104.  
  105.  
  106.  
  107. /**
  108.  * @desc Sprawdzanie poprawnosci numeru PESEL
  109.  *
  110.  * @return bool
  111.  */
  112. function pesel() {
  113. if (!ereg('^[0-9]{11}$', $this->ciag))
  114. return 0;
  115.  
  116. $this->wagi = array(1, 3, 7, 9, 1, 3, 7 , 9, 1, 3);
  117.  
  118. $this->suma = 0;
  119. for ($this->i = 0; $this->i < count($this->wagi); $this->i++)
  120. $this->suma += substr($this->ciag, $this->i, 1) * $this->wagi[$this->i];
  121.  
  122. $this->liczba_kontrolna = 10 - ($this->suma % 10);
  123.  
  124. if ( ($this->liczba_kontrolna == 10) && (substr($this->ciag, 10, 1) == 0) )
  125. return 1;
  126. elseif ($this->liczba_kontrolna == substr($this->ciag, 10, 1))
  127. return 1;
  128. else
  129. return 0;
  130. }
  131. }
  132.  
  133. ?>


Ten post edytował mhs 1.09.2004, 10:54:13
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: 7.10.2025 - 19:31