Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
Wklejka 1tn734nds6xqb dodana przez Skull., 05.10.2014 13:39
GM.php
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272.
<?php defined('SYSPATH') or die('No direct script access.'); /** * Wszystkie prawa zastrzeżone, na coś muszą być xD */ class AmxBans_GM { /** * Uchwyt PDO * @private object */ private $db = null; /** * Prefix tabel mysql itp * @private array */ private $data = null; /** * Konstruktor * * @param array */ function __construct($data) { $this->data = $data; } /** * Łączy... * * */ public function connect() { $this->db = DataBase::initialize($this->data, $this->data['name']); if($this->db && $this->db->query("SELECT * FROM `{$this->data['prefix']}_amxadmins`")) { return true; } return false; } /** * Zwraca ilość serwerów w danym połączeniu amxbans * * @return array */ public function serverList() { return $this->db->query("SELECT * FROM `{$this->data['prefix']}_serverinfo`")->fetchAll(); } /** * Zwraca dane konkretnego serwera * * @param integer * @return array */ public function server($id) { $stmt = $this->db->prepare("SELECT * FROM `{$this->data['prefix']}_serverinfo` where `id`=? LIMIT 1"); $stmt->execute(array($id)); return $stmt->fetch(); } /** * Pobiera wybranego użytkownika.. * * @param integer * @return array * @access public */ public function uzytkownik($id) { $stmt = $this->db->prepare("SELECT * FROM `{$this->data['prefix']}_amxadmins` where `id` = ? LIMIT 1"); $stmt -> execute(array($id)); return $stmt->fetch(); } /** * Dodaje flagi * * $sid - server id * $flags - flagi np. de * $upraw - uprawnienia np. abcdefg * $dane - wymagane dane, zalezne od typu * * add(4, 'de', 'abcdefg', array('nickname' => 'byCZEK', 'na_co' => 'STEAM_0:0:12676239', 'dni' => 30)); * * daje admina na 30 dni z flagami abcdefg na steamid STEAM_0:0:12676239, nick gracza byCZEK, serwer id 4 */ public function add($sid, $flags, $upraw, $dane) { $user = ($flags == 'a') ? $dane['nick'] : $dane['steam']; $pass = ($flags == 'a') ? md5($dane['password']) : ''; $dni = $dane['dni']; if($user == '') { return array(0, 'Nie podałeś '.($flags == 'a' ? 'nicku' : 'steama' ).' na serwerze.'); } if($flags == 'ce' && !$this->SprawdzDane('steamid', $user)) { return array(0, 'Podany steam id nie jest poprawny'); } // Pobierzmy dane $flagi = $this->SprawdzDostepnosc($sid, $user); // Jeśli wynik nie istnieje if(!$flagi[1]) { $dat = time(); $exp = $dat + (Date::DAY * $dni); $stmt = $this->db->prepare("INSERT INTO `{$this->data['prefix']}_amxadmins` VALUES ( NULL, ?, ?, ?, ?, ?, ?, 0, 0, ?, ?, ?)"); $stmt->execute(array($user, $pass, $upraw, $flags, $user, $user, $dat, $exp, $dni)); $user_id = $this->db->lastInsertId(); $stmt = $this->db->prepare("INSERT INTO `{$this->data['prefix']}_admins_servers` VALUES (?, ?, '', 'no')"); $stmt->execute(array($user_id, $sid)); } // Jeśli wynik istnieje else { $nowe = $this->wyznaczFlagi($upraw, $flagi[0]); // Zapobiega powtarzaniu się flag $this->ZmienFlagi($nowe, $flagi[1]); $user_id = $flagi[1]; if($flags == 'a') { return array(1, 'Flagi zostały dodane, lecz hasło nie uległo zmianie dla bezpieczeństwa. Zaloguj się na serwerze podając stare hasło', $flagi[1]); } } return array(1, 'Flagi zostały dodane, wejdź na serwer i ciesz się zakupem !', $user_id); } /** * Nawet nie wiem co ta metoda robi, to już wymysł byCZKA * * * @param string * @param string * @return array */ private function SprawdzDostepnosc($sid, $dane) { $stmt = $this->db->prepare("SELECT a.`id`, a.`access`FROM `{$this->data['prefix']}_amxadmins` a, `{$this->data['prefix']}_admins_servers` b WHERE a.`steamid` = ? AND a.`id` = b.`admin_id` AND b.`server_id` = ?"); $stmt->execute(array($dane, $sid)); $stmt = $stmt->fetch(); return array($stmt['access'], $stmt['id']); } /** * * * */ public function extend($amxbans_member_id, $time, $flags) { $stmt = $this->db->prepare("SELECT `access`, `flags` FROM `{$this->data['prefix']}_amxadmins` WHERE `id` = ?"); $stmt -> execute(array($amxbans_member_id)); $stmt = $stmt->fetch(); $flags = $this->wyznaczFlagi($flags, $stmt['access']); $stmt = $this->db->prepare("UPDATE `{$this->data['prefix']}_amxadmins` SET `expired` = ?, `access` = ? where `id` = ?"); $stmt->execute(array($time, $flags, $amxbans_member_id)); } /** * Usuwa flagi... * * * @param integer * @param string * * @access public */ public function usunFlagi($amxbans_member_id, $flagi) { $stmt = $this->db->prepare("SELECT `id`, `access` FROM `{$this->data['prefix']}_amxadmins` where `id` = ?"); $stmt->execute(array($amxbans_member_id)); $stmt = $stmt->fetch(); $access = $stmt['access']; $flagi = str_split($flagi); for($i=0; $i<count($flagi); $i++) { $access = str_replace($flagi[$i], '', $access); } $this->ZmienFlagi($access, $amxbans_member_id); } /** * Wyznacza flagi w taki sposób aby nie było problemu z dublowaniem... * * * @param string * @param integer * @return string */ function wyznaczFlagi($nowe, $aktualne) { $flagi = $nowe.$aktualne; $flagi = str_split($flagi); sort($flagi); $c=count($flagi); $flagi[$c] = ''; $ret = ''; for($i = 0; $i < $c ; $i++) { if($flagi[$i] == $flagi[$i+1]) { continue; } $ret .= $flagi[$i]; } return $ret; } /** * Updatuje flagi... * * @param string * @param integer * @return bool */ function ZmienFlagi($nowe, $aid) { $stmt = $this->db->prepare("UPDATE `{$this->data['prefix']}_amxadmins` SET `access` = ? WHERE `id` = ?"); return $stmt->execute(array($nowe, $aid)); } /** * Sprwadza poprawność danych... * * @param string * @param string * @return bool */ public function SprawdzDane($type, $value) { $regexp = ''; switch(mb_strtolower($type)) { case 'steamid': $regex = '/^STEAM_0:(0|1):[0-9]{1,10}$/'; break; case 'ip': $regex = '/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$/'; break; } return preg_match($regex, $value) ? true : false; } } ?>
Dodanych wklejek: 11179
Powered By (Pav32) Pastebin © 2011