Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Klasy abstrakcyjne...
sloenthran
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 2
Dołączył: 26.06.2013

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


Otóż mam taki kod:

  1. <?php
  2.  
  3. class Buy
  4. {
  5.  
  6. private $_id_serwera;
  7. private $_flaga;
  8. private $_flaga_dostepu;
  9. private $_dni;
  10. private $_time;
  11.  
  12. public function __construct($id_serwera, $flaga, $flaga_dostepu, $dni, $time)
  13. {
  14.  
  15. $this->_id_serwera = $id_serwera;
  16. $this->_flaga = $flaga;
  17. $this->_flaga_dostepu = $flaga_dostepu;
  18. $this->_dni = $dni;
  19. $this->_time = $time;
  20.  
  21. }
  22.  
  23. public function sprawdz($kod_sms, $numer)
  24. {
  25.  
  26. $Zapytanie = @mysql_query("SELECT `api_gamesol` FROM ustawienia");
  27. $Pobieranie = @mysql_fetch_array($Zapytanie);
  28.  
  29. $API = $Pobieranie['api_gamesol'];
  30.  
  31. if($kod_sms == 'test1' || $kod_sms == 'test2' || $kod_sms == 'test3' || $kod_sms == 'test4' || $kod_sms == 'test5' || $kod_sms == 'test6' || $kod_sms == 'test9' || $kod_sms == 'test17' || $kod_sms == 'test20' || $kod_sms == 'test25')
  32. {
  33.  
  34. return false;
  35.  
  36. }
  37.  
  38. $wynik = file_get_contents("http://gamesol.pl/api/sms-pro.php?id=".$API."&taryfa=".$numer."&kod=".$kod_sms."&opis=sloenthran:shop");
  39.  
  40. $wynik_tab = json_decode($wynik, true);
  41.  
  42. if($wynik_tab['blad'] != 0)
  43. {
  44.  
  45. return false;
  46.  
  47. }
  48.  
  49. else
  50. {
  51.  
  52. return true;
  53.  
  54. }
  55.  
  56. return false;
  57.  
  58. }
  59.  
  60. public function zakoncz($nick, $haslo)
  61. {
  62.  
  63. if(!empty($nick) and !empty($haslo))
  64. {
  65.  
  66. $pass = md5($haslo);
  67. $upraw = $this -> _flaga;
  68. $flagi = $this -> CheckFree($this->_id_serwera, $nick, $upraw);
  69.  
  70. if(!$flagi)
  71. {
  72.  
  73. $exp = $this->_time + ($this->_dni * 86400);
  74.  
  75. mysql_query("INSERT INTO `amx_amxadmins` VALUES(NULL, '{$nick}', '{$pass}', '{$upraw}', '{$this->_flaga_dostepu}', '{$nick}', '{$nick}', 0, 0, '{$this->_time}', '{$exp}', {$this->_dni})");
  76.  
  77. $id = mysql_insert_id();
  78.  
  79. mysql_query("INSERT INTO `amx_admins_servers` VALUES({$id}, {$this->_id_serwera}, '', 'no')");
  80.  
  81. return TRUE;
  82.  
  83. }
  84.  
  85. else
  86. {
  87.  
  88. return TRUE;
  89.  
  90. }
  91.  
  92. }
  93.  
  94. return FALSE;
  95.  
  96. }
  97.  
  98. private function CheckFree($sid = 0, $na_co = '', $upraw = '')
  99. {
  100.  
  101. $query = @mysql_query("SELECT * FROM `amx_amxadmins` WHERE `steamid` = '{$na_co}'");
  102.  
  103. if(mysql_num_rows( $query ) > 0)
  104. {
  105.  
  106. $row = mysql_fetch_assoc($query);
  107. $newFlags = $this->sumFlags($row['access'], $upraw);
  108. $ex = ($this->_time + ((($row['expired'] - $this->_time) + ($this->dni * 86400)) / 2));
  109.  
  110. mysql_query("UPDATE `amx_amxadmins` SET `access` = '{$newFlags}' WHERE `steamid` = '{$na_co}'");
  111.  
  112. $query2 = mysql_query("SELECT * FROM `amx_admins_servers` WHERE `admin_id` = '{$row['id']}' AND `server_id` = '{$this->_id_serwera}'");
  113.  
  114. if(mysql_num_rows( $query2 ) > 0)
  115. {
  116.  
  117. return TRUE;
  118.  
  119. }
  120.  
  121. else
  122. {
  123.  
  124. mysql_query("INSERT INTO `amx_admins_servers` VALUES ({$row['id']}, {$this->_id_serwera}, '', 'no')");
  125. return TRUE;
  126.  
  127. }
  128.  
  129. return FALSE;
  130.  
  131. }
  132.  
  133. return FALSE;
  134.  
  135. }
  136.  
  137. private function sumFlags($flagi_a = "", $flagi_b = "")
  138. {
  139.  
  140. for($i = 0; $i < strlen($flagi_b); $i++)
  141. {
  142.  
  143. if(!(strlen(strstr($flagi_a, $flagi_b[$i]))))
  144. $out .= $flagi_b[$i];
  145.  
  146. }
  147.  
  148. $to = str_split($flagi_a . $out);
  149. sort($to);
  150. $ciag = implode('', $to);
  151.  
  152. return $ciag;
  153.  
  154. }
  155.  
  156. }
  157.  
  158. ?>


I ktoś powiedział mi że lepiej abym zamiast za każdym razem ciągle pisać (kilka tych samych klas tylko z zmienioną funkcją sprawdź) to samo to lepiej skorzystać z klas abstrakcyjnych bądź interfejsów... Próbowałem taką klasę samemu jednakże nic mi nie wychodzi... Czy mógłby ktoś z kodu wyżej napisać mi coś takiego?
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: 23.08.2025 - 23:32