Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 57.11 KB | None | 0 0
  1. <?php
  2. /*
  3. Памятка функций
  4. //проверка прав
  5. $this->getPrava( $_SESSION['id'], 3 ) //Ид юзера и его группа
  6. */
  7. require_once "conf/ittems.php";
  8. require_once "modules_class.php";
  9. set_include_path( get_include_path() . PATH_SEPARATOR . "lib/mysql" . PATH_SEPARATOR . "lib/tables" . PATH_SEPARATOR . "lib/function" );
  10. spl_autoload_extensions("_class.php");
  11. spl_autoload_register();
  12.  
  13. grey::run();
  14.  
  15.  
  16. class Manage {
  17. protected $sql;
  18. protected $stg;
  19. public function __construct() {
  20. //session_start();
  21. //$this->sql = new DataBase();
  22. $this->sql = grey::$sql;
  23. $stg = $this->sql->select(
  24. 'setting',
  25. [ 'setting' ],
  26. [ 'id' => '1' ]
  27. );
  28. $this->stg = unserialize( $stg[0]['setting'] );
  29. }
  30.  
  31. public function readUserAdmin() {
  32. if( !$this->getPrava( $_SESSION['id'], 4 ) ) {
  33. $_SESSION['err_msg'] = 'нету прав для редактирования';
  34. return ADDRESS;
  35. }
  36. $username = $_POST['username'];
  37. $password = $_POST['password'];
  38. $group = ( int ) $_POST['group'];
  39. $money = ( int ) $_POST['money'];
  40. $email = $_POST['email'];
  41. $vk_id = ( int ) $_POST['vk_id'];
  42. $avatar = $_POST['avatar'];
  43. $count_like = ( int ) $_POST['count_like'];
  44. $count_theard = ( int ) $_POST['count_theard'];
  45. $count_post = ( int ) $_POST['count_post'];
  46. $id = ( int ) $_POST['read_user_admin'];
  47. $r = ADDRESS.'user?id='.$id;
  48.  
  49.  
  50. if( empty( $username ) ) {
  51. $_SESSION['err_msg'] = 'Напишите ник';
  52. return $r;
  53. }
  54. if( empty( $email ) ) {
  55. $_SESSION['err_msg'] = 'Напишите почту';
  56. return $r;
  57. }
  58. if( empty( $password ) ) {
  59. $_SESSION['err_msg'] = 'Напишите пароль';
  60. return $r;
  61. }
  62.  
  63. if( is_array( $username ) || is_array( $email ) || is_array( $password ) ) {
  64. $_SESSION['err_msg'] = 'Массив запрещен';
  65. return $r;
  66. }
  67. if( mb_strlen( $username ) > 32 || mb_strlen( $username ) < 1 ) {
  68. $_SESSION['err_msg'] = 'Логин должен содержать больше 1 символа и максимум 32';
  69. return $r;
  70. }
  71.  
  72. if( !filter_var( $email, FILTER_VALIDATE_EMAIL ) ){
  73. $_SESSION['err_msg'] = 'Почта заполнена не верно';
  74. return $r;
  75. }
  76.  
  77. users::update(
  78. [
  79. 'username' => $username,
  80. 'password' => $password,
  81. 'group' => $group,
  82. 'money' => $money,
  83. 'email' => $email,
  84. 'vk_id' => $vk_id,
  85. 'avatar' => $avatar,
  86. 'count_like' => $count_like,
  87. 'count_theard' => $count_theard,
  88. 'count_post' => $count_post,
  89. ],
  90. [ 'id' => $id ]
  91. );
  92.  
  93. $_SESSION['msg'] = 'Профиль обновлен';
  94. return $r;
  95. }
  96.  
  97. public function updateForumCategory() {
  98. if( !$this->getPrava( $_SESSION['id'], 4 ) ) {
  99. $_SESSION['err_msg'] = 'нету прав для редактирования';
  100. return ADDRESS;
  101. }
  102.  
  103. $title = trim( $_POST['title']);
  104. $desc = trim( $_POST['desc'] );
  105. $id = ( int ) $_POST['update_forum_category'];
  106.  
  107. if( $id == 0 ){
  108. $_SESSION['err_msg'] = 'Не выбран раздел';
  109. return ADDRESS.'admin/forum/';
  110. }
  111.  
  112. if( empty( $title ) ) {
  113. $_SESSION['err_msg'] = 'Заполните название раздела';
  114. return ADDRESS.'admin/forum/';
  115. }
  116.  
  117. #Обновляем категорию форум
  118.  
  119. $sql = forum_category::update(
  120. [
  121. 'title' => $title,
  122. 'desc' => $desc,
  123. ],
  124. [ 'id' => $id ]
  125. );
  126.  
  127. if( !$sql ) {
  128. $_SESSION['err_msg'] = 'Ошибка Обновления категории';
  129. return ADDRESS.'admin/forum/';
  130. }
  131.  
  132. $_SESSION['msg'] = 'Категория обновлена';
  133. return ADDRESS.'admin/forum/';
  134. }
  135.  
  136. public function updateForumForum() {
  137. if( !$this->getPrava( $_SESSION['id'], 4 ) ) {
  138. $_SESSION['err_msg'] = 'нету прав для редактирования';
  139. return ADDRESS;
  140. }
  141. $title = trim( $_POST['title']);
  142. $desc = trim( $_POST['desc'] );
  143. $category = ( int ) $_POST['category'];
  144. $id = ( int ) $_POST['update_forum_forum'];
  145. $icon = trim( $_POST['icon']);
  146.  
  147. if( $id == 0 ){
  148. $_SESSION['err_msg'] = 'Ошибка ID форума';
  149. return ADDRESS.'admin/forum/';
  150. }
  151. if( $category == 0 ){
  152. $_SESSION['err_msg'] = 'Не выбрана категория форума';
  153. return ADDRESS.'admin/forum/';
  154. }
  155.  
  156. if( empty( $title ) ) {
  157. $_SESSION['err_msg'] = 'Заполните название форума';
  158. return ADDRESS.'admin/forum/?cate='.$category;
  159. }
  160. /*
  161. if( empty( $desc ) ) {
  162. $_SESSION['err_msg'] = 'Заполните описание форума';
  163. return ADDRESS.'admin/forum/?cate='.$category;
  164. }
  165. */
  166. if( empty( $icon ) ) {
  167. $_SESSION['err_msg'] = 'Выберите иконку форума';
  168. return ADDRESS.'admin/forum/?cate='.$category;
  169. }
  170.  
  171. #Добавляем форум
  172.  
  173. $sql = forum_forums::update(
  174. [
  175. 'title' => $title,
  176. 'desc' => $desc,
  177. 'category' => $category,
  178. 'icon' => $icon,
  179. ],
  180. [ 'id' => $id ]
  181. );
  182.  
  183. if( !$sql ) {
  184. $_SESSION['err_msg'] = 'Ошибка Обновления форума';
  185. return ADDRESS.'admin/forum/?cate='.$category;
  186. }
  187.  
  188. $_SESSION['msg'] = 'Форум успешно обновлен';
  189. return ADDRESS.'admin/forum/?cate='.$category;
  190. }
  191.  
  192. public function addForumForum() {
  193. if( !$this->getPrava( $_SESSION['id'], 4 ) ) {
  194. $_SESSION['err_msg'] = 'нету прав для редактирования';
  195. return ADDRESS;
  196. }
  197. $title = trim( $_POST['title']);
  198. $desc = trim( $_POST['desc'] );
  199. $category = ( int ) $_POST['category'];
  200. $icon = trim( $_POST['icon']);
  201.  
  202. if( $category == 0 ){
  203. $_SESSION['err_msg'] = 'Не выбрана категория форума';
  204. return ADDRESS.'admin/forum/';
  205. }
  206.  
  207. if( empty( $title ) ) {
  208. $_SESSION['err_msg'] = 'Заполните название форума';
  209. return ADDRESS.'admin/forum/?cate='.$category;
  210. }
  211. /*
  212. if( empty( $desc ) ) {
  213. $_SESSION['err_msg'] = 'Заполните описание форума';
  214. return ADDRESS.'admin/forum/?cate='.$category;
  215. }
  216. */
  217. if( empty( $icon ) ) {
  218. $_SESSION['err_msg'] = 'Выберите иконку форума';
  219. return ADDRESS.'admin/forum/?cate='.$category;
  220. }
  221.  
  222. #Добавляем форум
  223.  
  224. $sql = forum_forums::insert([
  225. 'title' => $title,
  226. 'desc' => $desc,
  227. 'category' => $category,
  228. 'icon' => $icon,
  229. ]);
  230.  
  231. if( !$sql ) {
  232. $_SESSION['err_msg'] = 'Ошибка добавления форума';
  233. return ADDRESS.'admin/forum/?cate='.$category;
  234. }
  235.  
  236. $_SESSION['msg'] = 'Форум успешно добавлен';
  237. return ADDRESS.'admin/forum/?cate='.$category;
  238. }
  239.  
  240. public function readForumList () {
  241. if( !$this->getPrava( $_SESSION['id'], 4 ) ) {
  242. $_SESSION['err_msg'] = 'нету прав для редактирования';
  243. return ADDRESS;
  244. }
  245.  
  246. $new_pos = 1;
  247. $forum_id = ( int ) $_POST['category_forum_change'];
  248. foreach ( $_POST['read_forum_list'] as $item )
  249. {
  250. forum_forums::update(
  251. [ 'num' => $new_pos ],
  252. [ 'category' => $forum_id, 'id' => $item ]
  253. );
  254. $new_pos++;
  255. }
  256. return true;
  257. }
  258.  
  259. public function readCategory () {
  260. if( !$this->getPrava( $_SESSION['id'], 4 ) ) {
  261. $_SESSION['err_msg'] = 'нету прав для редактирования';
  262. return ADDRESS;
  263. }
  264.  
  265. $new_pos = 1;
  266. foreach ( $_POST['read_category'] as $item )
  267. {
  268. forum_category::update(
  269. [ 'num' => $new_pos ],
  270. [ 'id' => $item ]
  271. );
  272. $new_pos++;
  273. }
  274. return true;
  275. }
  276.  
  277. public function addForumCategory() {
  278. if( !$this->getPrava( $_SESSION['id'], 4 ) ) {
  279. $_SESSION['err_msg'] = 'нету прав для редактирования';
  280. return ADDRESS;
  281. }
  282.  
  283.  
  284. $title = trim( $_POST['title'] );
  285. $desc =trim( $_POST['desc'] );
  286. if( empty( $title ) ) {
  287. $_SESSION['err_msg'] = 'Заполните название категории';
  288. return ADDRESS.'admin/forum/';
  289. }
  290. if( empty( $title ) ) {
  291. $_SESSION['err_msg'] = 'Заполните описание категории';
  292. return ADDRESS.'admin/forum/';
  293. }
  294.  
  295. $cate = forum_category::insert([
  296. 'title' => $title,
  297. 'desc' => $title,
  298. 'num' => time(),
  299. ]);
  300. if( $cate ) {
  301. $_SESSION['msg'] = 'Категория успешно создана';
  302. return ADDRESS.'admin/forum/?cate='.$cate;
  303. }
  304.  
  305. $_SESSION['err_msg'] = 'Ошибка добавления категории';
  306. return ADDRESS.'admin/forum/';
  307. }
  308.  
  309. public function vipServerPrivileg() {
  310. if( !isset( $_SESSION['id'] ) ) {
  311. $_SESSION['err_msg'] = 'Активировать вип можно только пользователям';
  312. return ADDRESS;
  313. }
  314. $vip_server_id = ( int ) $_POST['vip_server_id'];
  315. $vip_server_days = ( int ) $_POST['vip_server_days'];
  316. $vip_server_privileg = ( int ) $_POST['vip_server_privileg'];
  317.  
  318.  
  319. $vip_servers = vip_servers::getIdAdmin( $vip_server_id );
  320.  
  321. if( !is_array( $vip_servers['privileg_data'][$vip_server_privileg] ) ) {
  322. $_SESSION['err_msg'] = 'Ошибка! Попробуйте еще раз, нету такой привилегии';
  323. return ADDRESS;
  324. }
  325. GLOBAL $vip_days;
  326. #Цена за день
  327. $const = $vip_servers['privileg_data'][$vip_server_privileg]['const'];
  328. #Флаги
  329. $flags = $vip_servers['privileg_data'][$vip_server_privileg]['flags'];
  330. #Общая цена
  331. $allConst = $vip_days[$vip_server_days] * $const;
  332.  
  333. #Получаем деньги юзера
  334. $getUserMoney = $this->sql->select(
  335. 'users',
  336. [ 'username','password', 'money' ],
  337. [ 'id' => $_SESSION['id'] ]
  338. );
  339.  
  340.  
  341. if( $vip_servers['type'] == '0' ) {
  342. if( $getUserMoney[0]['money'] >= $allConst ) {
  343. #Получаем данные подключения
  344. $host = $vip_servers['host'];
  345. $user = $vip_servers['user'];
  346. $password = $vip_servers['password'];
  347. $bd = $vip_servers['bd'];
  348. $prefix = $vip_servers['prefix'];
  349.  
  350. #проверяем юзера в amxADmin
  351.  
  352. $getUserAmxAdmin = amxadmins::getAmxAdmin( $getUserMoney[0]['username'], $host, $user, $password, $bd, $prefix );
  353.  
  354. if( !is_array( $getUserAmxAdmin ) ) {
  355. #Создаем юзера в amxADmin
  356.  
  357. $insertAdmin = amxadmins::addAmxBans(
  358. [
  359. 'username' => $getUserMoney[0]['username'],
  360. 'password' => md5( $getUserMoney[0]['password'] ),
  361. 'steamid' => $getUserMoney[0]['username'],
  362. 'nickname' => $getUserMoney[0]['username'],
  363. 'created' => time(),
  364. 'expired' => 0,
  365. 'flags' => 'a',
  366. 'days' => 0,
  367. ],
  368. $host, $user, $password, $bd, $prefix );
  369. } else {
  370. $insertAdmin = $getUserAmxAdmin['id'];
  371. #Сверяем хеш паролей
  372.  
  373. if( $getUserAmxAdmin['password'] != md5( $getUserMoney[0]['password'] ) ) {
  374. #Обновляем пароль если он не верный
  375. $update_password = amxadmins::updateAmxAdmin(
  376. [ 'password' => md5( $getUserMoney[0]['password'] ) ],
  377. [ 'id' => $insertAdmin ],
  378. $host, $user, $password, $bd, $prefix
  379. );
  380. if( !$update_password ) {
  381. $_SESSION['err_msg'] = 'Ошибка обновления пароля';
  382. return ADDRESS.'vip/';
  383. }
  384. }
  385. }
  386.  
  387. if( !$insertAdmin ) {
  388.  
  389. $_SESSION['err_msg'] = 'Ошибка отправки запроса на сервер, пожалуйста подождите немного и попробуйте еще раз. А так же сообщите администратору.';
  390. return ADDRESS.'vip/';
  391. }
  392.  
  393. $getVipUsersSite = vip_users::select([
  394. 'user_id' => $_SESSION['id'],
  395. 'amx_id' => $insertAdmin,
  396. 'server_id' => $vip_servers['id'],
  397. ]);
  398.  
  399. if( !$getVipUsersSite ) {
  400. #добавляем пользователя
  401. $timeAdmin = time() + $vip_days[$vip_server_days] * 86400;
  402. vip_users::insert([
  403. 'user_id' => $_SESSION['id'],
  404. 'amx_id' => $insertAdmin,
  405. 'server_id' => $vip_servers['id'],
  406. 'custom_flags' => $flags,
  407. 'created' => time(),
  408. 'expired' => $timeAdmin,
  409. ]);
  410. } else {
  411.  
  412. #Сверяем флаги, если он активирует ту же услугу - продливаем её, если нет - активируем новое время
  413. if( $getVipUsersSite[0]['custom_flags'] == $flags ) {
  414. $timeAdmin = $getVipUsersSite[0]['expired'] + $vip_days[$vip_server_days] * 86400;
  415. } else {
  416. $timeAdmin = time() + $vip_days[$vip_server_days] * 86400;
  417. }
  418.  
  419. vip_users::update(
  420. [
  421. 'custom_flags' => $flags,
  422. 'expired' => $timeAdmin,
  423. ],
  424. [
  425. 'user_id' => $_SESSION['id'],
  426. 'amx_id' => $insertAdmin,
  427. 'server_id' => $vip_servers['id'],
  428. ]
  429. );
  430. }
  431.  
  432. $getAmmxPrava = admins_servers::getAmxAdmin(
  433. [
  434. 'admin_id' => $insertAdmin,
  435. 'server_id' => $vip_servers['amx_id'],
  436. ],
  437. $host,
  438. $user,
  439. $password,
  440. $bd,
  441. $prefix
  442. );
  443. #проверяем права
  444. if( !$getAmmxPrava ) {
  445. #Создаем ему права на сервере
  446. $admins_servers = admins_servers::addAmxBans(
  447. [
  448. 'admin_id' => $insertAdmin,
  449. 'server_id' => $vip_servers['amx_id'],
  450. 'custom_flags' => $flags,
  451. 'use_static_bantime' => 'yes',
  452. ],
  453. $host,
  454. $user,
  455. $password,
  456. $bd,
  457. $prefix
  458. );
  459. } else {
  460. #Обновляем ему флаги
  461. admins_servers::updateAmxAdmin(
  462. [ 'custom_flags' => $flags ],
  463. [ 'admin_id' => $insertAdmin, 'server_id' => $vip_servers['amx_id'] ],
  464. $host,
  465. $user,
  466. $password,
  467. $bd,
  468. $prefix
  469. );
  470. }
  471. #обновляем деньги пользователя
  472. users::update(
  473. [
  474. 'money' => $getUserMoney[0]['money'] - $allConst
  475. ],
  476. [ 'id' => $_SESSION['id'] ]
  477. );
  478. #записываем в логи
  479. money_logs::insert([
  480. 'user_id' => $_SESSION['id'],
  481. 'tupe' => '1',
  482. 'money' => $allConst,
  483. 'title' => 'За активацию привилегий',
  484. ]);
  485.  
  486. logs::add( $getUserMoney[0]['username'].' активировал привилегию на сервере '.$vip_servers['id'].' флаги '.$flags );
  487.  
  488. $_SESSION['msg'] = 'Вы успешно активировали Вип, теперь Вам необходимо прописать в консоль игры перед входом игру setinfo "_pw" "Ваш пароль от панели"';
  489. return ADDRESS.'vip/success';
  490. }
  491. $_SESSION['err_msg'] = 'Вам не хватает денег '.$getUserMoney[0]['money'];
  492. return ADDRESS.'vip/';
  493. } else if( $vip_servers['type'] == '1' ) {
  494. if( $getUserMoney[0]['money'] >= $allConst ) {
  495. #Получаем данные подключения
  496. $ftp_server = $vip_servers['host'];
  497. $user = $vip_servers['user'];
  498. $password = $vip_servers['password'];
  499. $bd = $vip_servers['bd'];
  500. $prefix = $vip_servers['prefix'];
  501.  
  502. // устанавливает соединение или выходит
  503. $conn_id = ftp_connect( $ftp_server );
  504. if( $conn_id ) {
  505. if ( ftp_login( $conn_id, $user, $password ) )
  506. {
  507. if (!ftp_get($conn_id, 'upload/users.ini', $bd, FTP_BINARY)) {
  508. $_SESSION['err_msg'] = 'Не удалось поключиться к файлу настройки сервера';
  509. return ADDRESS.'vip/';
  510. }
  511.  
  512. #Получаем всех юзеров с сервера
  513. $getAllUsersServer = vip_users::select([
  514. 'server_id' => $vip_servers['id']
  515. ]);
  516. $formateUsers = '';
  517. for( $i = 0; $i < count( $getAllUsersServer ); $i++ ) {
  518.  
  519. #Получаем юзера
  520. $getUserName = $this->sql->select(
  521. 'users',
  522. [ 'username','password' ],
  523. [ 'id' => $getAllUsersServer[$i]['user_id'] ]
  524. );
  525.  
  526. $formateUsers .= "\"".$getUserName[0]['username']."\" \"".$getUserName[0]['password']."\" \"".$getAllUsersServer[$i]['custom_flags']."\" \"a\" ;Автоматическое добавление, конец админки ".$getAllUsersServer[$i]['timeAgo']."\n";
  527. }
  528.  
  529. $of = fopen( 'upload/users.ini', "w+");
  530. $line=fgets( $of );
  531. rewind( $of );
  532. fwrite( $of, $formateUsers );
  533. fclose($of);
  534.  
  535.  
  536. $fp = fopen( 'upload/users.ini', 'r' );
  537. #Загружаем новый файл на сервер
  538. if ( !ftp_fput( $conn_id, $bd, $fp, FTP_ASCII ) ) {
  539. ftp_close( $conn_id );
  540. fclose($fp);
  541. $_SESSION['err_msg'] = 'Ошибка сохраненнии прав, обратитесь к администратору и сообщите ему об этом';
  542. return ADDRESS.'vip';
  543. }
  544. ftp_close( $conn_id );
  545. fclose($fp);
  546.  
  547.  
  548. $of = fopen( 'upload/users.ini', "w+");
  549. $line=fgets( $of );
  550. rewind( $of );
  551. fwrite( $of, '' );
  552. fclose($of);
  553.  
  554. $getVipUsersSite = vip_users::select([
  555. 'user_id' => $_SESSION['id'],
  556. 'server_id' => $vip_servers['id'],
  557. ]);
  558.  
  559. if( !$getVipUsersSite ) {
  560. #добавляем пользователя
  561. $timeAdmin = time() + $vip_days[$vip_server_days] * 86400;
  562. vip_users::insert([
  563. 'user_id' => $_SESSION['id'],
  564. 'amx_id' => '0',
  565. 'server_id' => $vip_servers['id'],
  566. 'custom_flags' => $flags,
  567. 'created' => time(),
  568. 'expired' => $timeAdmin,
  569. ]);
  570. } else {
  571. #Сверяем флаги, если он активирует ту же услугу - продливаем её, если нет - активируем новое время
  572. if( $getVipUsersSite[0]['custom_flags'] == $flags ) {
  573. $timeAdmin = $getVipUsersSite[0]['expired'] + $vip_days[$vip_server_days] * 86400;
  574. } else {
  575. $timeAdmin = time() + $vip_days[$vip_server_days] * 86400;
  576. }
  577.  
  578. //$timeAdmin = $getVipUsersSite[0]['expired'] + $vip_days[$vip_server_days] * 86400;
  579. vip_users::update(
  580. [
  581. 'custom_flags' => $flags,
  582. 'expired' => $timeAdmin,
  583. ],
  584. [
  585. 'user_id' => $_SESSION['id'],
  586. 'server_id' => $vip_servers['id'],
  587. ]
  588. );
  589. }
  590.  
  591. #обновляем деньги пользователя
  592. users::update(
  593. [
  594. 'money' => $getUserMoney[0]['money'] - $allConst
  595. ],
  596. [ 'id' => $_SESSION['id'] ]
  597. );
  598. #записываем в логи
  599. money_logs::insert([
  600. 'user_id' => $_SESSION['id'],
  601. 'tupe' => '0',
  602. 'money' => $allConst,
  603. 'title' => 'За активацию привилегий',
  604. ]);
  605.  
  606. logs::add( $getUserMoney[0]['username'].' активировал привилегию на сервере '.$vip_servers['id'].' флаги '.$flags );
  607.  
  608. $_SESSION['msg'] = 'Вы успешно активировали Вип, теперь Вам необходимо прописать в консоль игры перед входом игру setinfo "_pw" "Ваш пароль от панели"';
  609. return ADDRESS.'vip/success';
  610. }
  611. $_SESSION['err_msg'] = 'Ошибка в настройках сервера.. не верный логин и пароль';
  612. return ADDRESS.'vip';
  613. }
  614. $_SESSION['err_msg'] = 'Ошибка в подключении к серверу';
  615. return ADDRESS.'vip';
  616. }
  617. $_SESSION['err_msg'] = 'Вам не хватает денег , пополните счет';
  618. return ADDRESS.'vip/';
  619. } else if( $vip_servers['type'] == '2' ) {
  620. if( $getUserMoney[0]['money'] >= $allConst ) {
  621. #Получаем данные подключения
  622. $host = $vip_servers['host'];
  623. $user = $vip_servers['user'];
  624. $password = $vip_servers['password'];
  625. $bd = $vip_servers['bd'];
  626. $prefix = $vip_servers['prefix'];
  627.  
  628. $getUser = userssql::getUser(
  629. [ 'auth' => $getUserMoney[0]['username'] ],
  630. $host, $user, $password, $bd, $prefix
  631. );
  632.  
  633. if( is_array( $getUser ) ) {
  634. $getStatus = userssql::updateUser(
  635. [
  636. 'password' => $getUserMoney[0]['password'],
  637. 'access' => 'a',
  638. 'flags' => $flags
  639. ],
  640. [
  641. 'auth' => $getUserMoney[0]['username']
  642. ],
  643. $host, $user, $password, $bd, $prefix
  644. );
  645.  
  646. } else {
  647. $getStatus = userssql::addUser(
  648. [
  649. 'auth' => $getUserMoney[0]['username'],
  650. 'password' => $getUserMoney[0]['password'],
  651. 'access' => 'a',
  652. 'flags' => $flags,
  653. ],
  654. $host, $user, $password, $bd, $prefix
  655. );
  656. }
  657.  
  658. if( !$getStatus ) {
  659. $_SESSION['err_msg'] = 'Ошибка в добавлении прав. Сообщите администору об этой ошибке.. код #421';
  660. return ADDRESS.'vip/';
  661. }
  662.  
  663.  
  664. $getVipUsersSite = vip_users::select([
  665. 'user_id' => $_SESSION['id'],
  666. 'server_id' => $vip_servers['id'],
  667. ]);
  668.  
  669. if( !$getVipUsersSite ) {
  670. #добавляем пользователя
  671. $timeAdmin = time() + $vip_days[$vip_server_days] * 86400;
  672. vip_users::insert([
  673. 'user_id' => $_SESSION['id'],
  674. 'amx_id' => 0,
  675. 'server_id' => $vip_servers['id'],
  676. 'custom_flags' => $flags,
  677. 'created' => time(),
  678. 'expired' => $timeAdmin,
  679. ]);
  680. } else {
  681.  
  682. #Сверяем флаги, если он активирует ту же услугу - продливаем её, если нет - активируем новое время
  683. if( $getVipUsersSite[0]['custom_flags'] == $flags ) {
  684. $timeAdmin = $getVipUsersSite[0]['expired'] + $vip_days[$vip_server_days] * 86400;
  685. } else {
  686. $timeAdmin = time() + $vip_days[$vip_server_days] * 86400;
  687. }
  688.  
  689. vip_users::update(
  690. [
  691. 'custom_flags' => $flags,
  692. 'expired' => $timeAdmin,
  693. ],
  694. [
  695. 'user_id' => $_SESSION['id'],
  696. 'amx_id' => $insertAdmin,
  697. 'server_id' => $vip_servers['id'],
  698. ]
  699. );
  700. }
  701.  
  702.  
  703. #обновляем деньги пользователя
  704. users::update(
  705. [
  706. 'money' => $getUserMoney[0]['money'] - $allConst
  707. ],
  708. [ 'id' => $_SESSION['id'] ]
  709. );
  710. #записываем в логи
  711. money_logs::insert([
  712. 'user_id' => $_SESSION['id'],
  713. 'tupe' => '0',
  714. 'money' => $allConst,
  715. 'title' => 'За активацию привилегий',
  716. ]);
  717. logs::add( $getUserMoney[0]['username'].' активировал привилегию на сервере '.$vip_servers['id'].' флаги '.$flags );
  718.  
  719. $_SESSION['msg'] = 'Вы успешно активировали Вип, теперь Вам необходимо прописать в консоль игры перед входом игру setinfo "_pw" "Ваш пароль от панели"';
  720. return ADDRESS.'vip/success';
  721. }
  722.  
  723. $_SESSION['err_msg'] = 'Вам не хватает денег , пополните счет';
  724. return ADDRESS.'vip/';
  725. }
  726.  
  727.  
  728. $_SESSION['err_msg'] = 'Ошибка! Активации вип, тип сервера не настроен, сообщите администратору';
  729. return ADDRESS;
  730.  
  731. }
  732.  
  733. private function getPrava( $id, $number ) {
  734. #получаем группу юзера
  735. $getUserGroup = $this->sql->select(
  736. 'users',
  737. [ 'group' ],
  738. [ 'id' => $id ]
  739. );
  740. #Проверяем права, если он не рот админ - посылаем в лес)
  741. if( $getUserGroup[0]['group'] == $number ) {
  742. return true;
  743. }
  744.  
  745. return false;
  746. }
  747.  
  748. public function addServerVip( $method ) {
  749.  
  750. if( empty( $method ) ) {
  751. $_SESSION['err_msg'] = 'Не могу найти метод';
  752. return ADDRESS;
  753. }
  754. if( !$this->getPrava( $_SESSION['id'], 4 ) ) {
  755. $_SESSION['err_msg'] = 'Нету прав для добавления';
  756. return ADDRESS;
  757. }
  758.  
  759. $type = $_POST['type'];
  760. $host = $_POST['host'];
  761. $user = $_POST['user'];
  762. $password = $_POST['password'];
  763. $bd = $_POST['bd'];
  764. $prefix = $_POST['prefix'];
  765. $amx_id = $_POST['amx_id'];
  766. $server_name = $_POST['server_name'];
  767. $server_ip = $_POST['server_ip'];
  768. $server_port = $_POST['server_port'];
  769.  
  770. if( !is_numeric( $type ) || empty( $host ) || empty( $user ) || empty( $password ) || empty( $bd ) || empty( $server_ip ) || empty( $server_name ) || !is_numeric( $server_port ) ) {
  771. $_SESSION['err_msg'] = 'Заполните все поля';
  772.  
  773. return ADDRESS.'vip/admin/';
  774. }
  775.  
  776. if( $method == 'insert' ) {
  777. $insert = vip_servers::insert([
  778. 'type' => $type,
  779. 'host' => $host,
  780. 'user' => $user,
  781. 'password' => $password,
  782. 'bd' => $bd,
  783. 'prefix' => $prefix,
  784. 'amx_id' => $amx_id,
  785. 'server_name' => $server_name,
  786. 'server_ip' => $server_ip,
  787. 'server_port' => $server_port,
  788. ]);
  789. if( !$insert ) {
  790. $_SESSION['err_msg'] = 'Ошибка добавления сервера';
  791.  
  792. return ADDRESS.'vip/admin/';
  793. }
  794.  
  795. return ADDRESS.'vip/admin/?id='.$insert;
  796. } else if( $method == 'update' ) {
  797. if( !is_numeric( $_POST['refresh_server_vip'] ) ) {
  798. $_SESSION['msg'] = 'Ошибка обновления сервера.. не могу найти ID';
  799. return ADDRESS.'vip/admin/';
  800. }
  801. $id = ( int ) $_POST['refresh_server_vip'];
  802. $privileg_data = !empty( $_POST['privileg_data'] ) ? $_POST['privileg_data'] : '';
  803.  
  804. if( is_array( $privileg_data ) ) {
  805. $z = 0;
  806. foreach( $privileg_data as $key => $value ) {
  807. $newData[$z]['title'] = $value['title'];
  808. $newData[$z]['flags'] = $value['flags'];
  809. $newData[$z]['const'] = $value['const'];
  810. $z++;
  811. }
  812. } else {
  813. $newData = '';
  814. }
  815. $update = vip_servers::update(
  816. [
  817. 'type' => $type,
  818. 'host' => $host,
  819. 'user' => $user,
  820. 'password' => $password,
  821. 'bd' => $bd,
  822. 'prefix' => $prefix,
  823. 'amx_id' => $amx_id,
  824. 'server_name' => $server_name,
  825. 'server_ip' => $server_ip,
  826. 'server_port' => $server_port,
  827. 'privileg_data' => serialize( $newData ),
  828. ],
  829. [ 'id' => $id ]
  830. );
  831. if( !$update ) {
  832. $_SESSION['msg'] = 'Ошибка обновления сервера.. ';
  833. return ADDRESS.'vip/admin/';
  834. }
  835. $_SESSION['msg'] = 'Сервер успешно обновлен';
  836. return ADDRESS.'vip/admin/?id='.$id;
  837. }
  838.  
  839. $_SESSION['err_msg'] = 'Ошибка';
  840. return ADDRESS.'vip/admin/';
  841.  
  842. }
  843.  
  844. public function seendDeleteBan( $id ) {
  845. if( !isset( $_SESSION['id'] ) ) {
  846. $this->rJson( [ 'status' => 0 ] );
  847. }
  848. if( !is_numeric( $id ) )
  849. $this->rJson( [ 'status' => 0 ] );
  850.  
  851. #получаем группу юзера
  852. $getUserGroup = $this->sql->select(
  853. 'users',
  854. [ 'group' ],
  855. [ 'id' => $_SESSION['id'] ]
  856. );
  857.  
  858. #Проверяем права
  859. if( $getUserGroup[0]['group'] == 3 || $getUserGroup[0]['group'] == 4 ) {
  860. bans::delete( [ 'bid' => $id ] ); //удаляем бан
  861. $this->rJson( [ 'status' => 1 ] );
  862. }
  863.  
  864. $this->rJson( [ 'status' => 0 ] );
  865. }
  866.  
  867.  
  868. public function seendZayavkaBans( $id ) {
  869. if( !isset( $_SESSION['id'] ) ) {
  870. $this->rJson( [ 'status' => 0 ] );
  871. }
  872. if( !is_numeric( $id ) )
  873. $this->rJson( [ 'status' => 0 ] );
  874.  
  875. $getBan = bans::select( '*', [ 'bid' => $id ] );
  876.  
  877. if( !is_array( $getBan ) )
  878. $this->rJson( [ 'status' => 0 ] );
  879.  
  880. $bid = $getBan[0]['bid'];
  881.  
  882. $player_nick = $getBan[0]['player_nick'];
  883. $admin_nick = $getBan[0]['admin_nick'];
  884.  
  885. $textDemoUrl = '';
  886.  
  887. if( isset( $_GET['demo_url'] ) ) {
  888. $demo_url = trim( $_GET['demo_url'] );
  889. $textDemoUrl = !empty( $demo_url ) ? 'Скачать демо [url='.$demo_url.']'.$demo_url.'[/url]' : '';
  890. }
  891.  
  892. $ban_reason = !empty( $getBan[0]['ban_reason'] ) ? $getBan[0]['ban_reason'] : $getBan[0]['cs_ban_reason'];
  893.  
  894. $ban_created = times::formatDate( $getBan[0]['ban_created'] );
  895. $expired = $getBan[0]['expired'];
  896. $server_name = $getBan[0]['server_name'];
  897.  
  898. $content = "Здравствуйте, прошу разбанить меня {$player_nick}
  899. На сервере {$server_name}
  900. Меня забанили {$ban_created}
  901. Меня забанил админ {$admin_nick}
  902. По причине {$ban_reason}
  903.  
  904. {$textDemoUrl}
  905.  
  906. (Сообщение сгенерировано автоматически)";
  907.  
  908. $sql = $this->sql->insert(
  909. 'forum_theards',
  910. [
  911. 'title' => 'Заявка на разбан от '.$getBan[0]['player_nick'],
  912. 'content' => trim( $content ),
  913. 'created' => time(),
  914. 'autor_id' => $_SESSION['id'],
  915. 'forum_id' => $this->stg['AMXBANS_FORUM'],
  916. 'this_liked' => serialize( [] ),
  917. 'last_post' => time(),
  918. ]
  919. );
  920. $this->rJson( [ 'status' => $sql ] );
  921. }
  922. public function searchBans( $queri ) {
  923. $class = '';
  924. $data = '';
  925. $banList = bans::search( $queri );
  926. if( is_array( $banList ) ) {
  927. for( $i = 0; $i < count( $banList ); $i++ ) {
  928. include( 'theme/bans/table_ittem.tpl' );
  929. }
  930. }
  931. exit();
  932. }
  933.  
  934. public function deleteReplie( $id ) {
  935.  
  936. if( !isset( $_SESSION['id'] ) )
  937. exit();
  938.  
  939. if( !is_numeric( $id ) )
  940. exit();
  941.  
  942. $id = ( int ) $id;
  943.  
  944. $forum_replay = $this->sql->select(
  945. 'forum_replay',
  946. [ 'autor_id', 'theard_id' ],
  947. [ 'id' => $id ]
  948. );
  949.  
  950.  
  951. if( !is_array( $forum_replay ) ) {
  952. $data = [
  953. 'status' => 1,
  954. 'msg' => 'Ошибка удааления',
  955. ];
  956.  
  957. $this->rJson( $data );
  958. }
  959.  
  960. #получаем группу юзера
  961. $getUserGroup = $this->sql->select(
  962. 'users',
  963. [ 'group' ],
  964. [ 'id' => $_SESSION['id'] ]
  965. );
  966.  
  967. #Проверяем права
  968. if( ( $getUserGroup[0]['group'] == 3 || $getUserGroup[0]['group'] == 4 || $getUserGroup[0]['group'] == 2 ) || ( $_SESSION['id'] == $forum_replay[0]['autor_id'] ) ) {
  969.  
  970. $getTheard = $this->sql->select(
  971. 'forum_theards',
  972. [ 'count_replay', 'created' ],
  973. [ 'id' => $forum_replay[0]['theard_id'] ]
  974. );
  975.  
  976. /*
  977.  
  978. */
  979.  
  980. $this->sql->delete(
  981. 'forum_replay',
  982. [ 'id' => $id ]
  983. );
  984. $get_last_replay = $this->sql->select( 'forum_replay', [ 'created' ], [ 'theard_id' => $forum_replay[0]['theard_id'] ], 'created', false, 1 );
  985.  
  986. if( is_array( $get_last_replay ) ) {
  987. $get_last_Data = $get_last_replay[0]['created'];
  988. } else {
  989. $get_last_Data = $getTheard[0]['created'];
  990. }
  991. $this->sql->update(
  992. 'forum_theards',
  993. [
  994. 'last_post' => $get_last_Data,
  995. 'count_replay' => ( $getTheard[0]['count_replay'] - 1 )
  996.  
  997. ],
  998. [ 'id' => $forum_replay[0]['theard_id'] ]
  999. );
  1000.  
  1001.  
  1002.  
  1003. $getUserData = $this->sql->select(
  1004. 'users',
  1005. [ 'id', 'count_post' ],
  1006. [ 'id' => $forum_replay[0]['autor_id'] ]
  1007. );
  1008. if( $getUserData[0]['count_post'] != 0 ) {
  1009. users::update(
  1010. [ 'count_post' => $getUserData[0]['count_post'] - 1 ],
  1011. [ 'id' => $forum_replay[0]['autor_id'] ]
  1012. );
  1013. }
  1014. $data = [
  1015. 'status' => 200,
  1016. ];
  1017.  
  1018. $this->rJson( $data );
  1019. }
  1020. exit();
  1021. }
  1022.  
  1023. public function theardLike( $theard_lite, $table ) {
  1024. if( !isset( $_SESSION['id'] ) )
  1025. return ADDRESS;
  1026.  
  1027. if( !is_numeric( $theard_lite ) )
  1028. return ADDRESS;
  1029. #Фикс на получение таблицы ИД админов
  1030. $getAutorTable = ( $table == 'forum_replay' ) ? 'autor_id' : 'autor_id';
  1031.  
  1032. $getTheard = $this->sql->select(
  1033. $table,
  1034. [ 'this_liked', 'autor_id' ],
  1035. [ 'id' => $theard_lite ]
  1036. );
  1037. if( !is_array( $getTheard ) ) {
  1038. $data = [
  1039. 'status' => 1,
  1040. 'msg' => 'Темы не существует',
  1041. ];
  1042.  
  1043. $this->rJson( $data );
  1044. }
  1045.  
  1046. $this_liked = unserialize( $getTheard[0]['this_liked'] );
  1047. if( in_array( $_SESSION['id'], $this_liked) ) {
  1048. $data = [
  1049. 'status' => 1,
  1050. 'msg' => 'Вы уже лайкали ',
  1051. ];
  1052.  
  1053. $this->rJson( $data );
  1054. }
  1055.  
  1056. $this_liked[] = $_SESSION['id'];
  1057.  
  1058. #Ищем юзера
  1059. /*
  1060. $getUserData = users::getId( $getTheard[0]['autor_id'] );
  1061. */
  1062. #Ищем юзера
  1063. $getUserData = $this->sql->select(
  1064. 'users',
  1065. [ 'id', 'count_like' ],
  1066. [ 'id' => $getTheard[0]['autor_id'] ]
  1067. );
  1068.  
  1069. users::update(
  1070. [ 'count_like' => $getUserData[0]['count_like'] + 1 ],
  1071. [ 'id' => $getUserData[0]['id'] ]
  1072. );
  1073. $this->sql->update(
  1074. $table,
  1075. [ 'this_liked' => serialize( $this_liked ) ],
  1076. [ 'id' => $theard_lite ]
  1077. );
  1078.  
  1079. $data = [
  1080. 'status' => 200,
  1081. ];
  1082.  
  1083. $this->rJson( $data );
  1084. }
  1085.  
  1086.  
  1087. public function deleteTheard( $id, $method, $tupe ) {
  1088. if( !isset( $_SESSION['id'] ) )
  1089. return ADDRESS;
  1090.  
  1091. if( !is_numeric( $tupe ) )
  1092. return ADDRESS;
  1093.  
  1094. if( !is_numeric( $id ) )
  1095. return ADDRESS;
  1096.  
  1097. if( $tupe == 0 || $tupe == 1) {
  1098.  
  1099. $id = ( int ) $id;
  1100. $tupe = ( int ) $tupe;
  1101.  
  1102. #получаем группу юзера
  1103. $getUserGroup = $this->sql->select(
  1104. 'users',
  1105. [ 'group' ],
  1106. [ 'id' =>$_SESSION['id'] ]
  1107. );
  1108.  
  1109. #Проверяем права
  1110. if( $getUserGroup[0]['group'] == 3 || $getUserGroup[0]['group'] == 4 || $getUserGroup[0]['group'] == 2 ) {
  1111. if( $method == 'delete' ) {
  1112. #удаляем, просто меняем значение темы deleted на 1
  1113. $this->sql->update(
  1114. 'forum_theards',
  1115. [ 'deleted' => $tupe ],
  1116. [ 'id' => $id ]
  1117. );
  1118. if( $tupe == 1) {
  1119. $_SESSION['msg'] = 'Тема успешно удалена';
  1120. } else {
  1121. $_SESSION['msg'] = 'Тема успешно восстановлена';
  1122. }
  1123.  
  1124. }
  1125. if( $method == 'status' ) {
  1126. #Меняем статус темы значение темы status на 1
  1127. $this->sql->update(
  1128. 'forum_theards',
  1129. [ 'status' => $tupe ],
  1130. [ 'id' => $id ]
  1131. );
  1132. if( $tupe == 1) {
  1133. $_SESSION['msg'] = 'Тема успешно закреплена';
  1134. } else {
  1135. $_SESSION['msg'] = 'Тема успешно откреплена';
  1136. }
  1137.  
  1138. }
  1139. if( $method == 'closed' ) {
  1140. #Меняем статус темы значение темы closed на 1
  1141. $this->sql->update(
  1142. 'forum_theards',
  1143. [ 'closed' => $tupe ],
  1144. [ 'id' => $id ]
  1145. );
  1146. if( $tupe == 1) {
  1147. $_SESSION['msg'] = 'Тема успешно была закрыта';
  1148. } else {
  1149. $_SESSION['msg'] = 'Тема успешно была открыта';
  1150. }
  1151.  
  1152. }
  1153. return ADDRESS.'forum/topic?id='.$id;
  1154. }
  1155. }
  1156. return ADDRESS;
  1157.  
  1158. }
  1159.  
  1160. public function readTheard( $table, $post, $msg ) {
  1161. if( !isset( $_SESSION['id'] ) )
  1162. exit();
  1163.  
  1164. if( !is_numeric( $post ) ) {
  1165. $data = [
  1166. 'status' => 1,
  1167. 'msg' => 'Произоша ошибка... Сообщите администратору',
  1168. ];
  1169.  
  1170. $this->rJson( $data );
  1171. }
  1172.  
  1173. $theard = ( int ) $post;
  1174. //$read_theard = $_POST['read_theard'];
  1175. $read_theard = $msg;
  1176.  
  1177. if( empty( $read_theard ) ) {
  1178. $data = [
  1179. 'status' => 1,
  1180. 'msg' => 'Пустое сообщение',
  1181. ];
  1182. $this->rJson( $data );
  1183. }
  1184.  
  1185. $getTheard = $this->sql->select(
  1186. $table,
  1187. '*',
  1188. [ 'id' => $theard ]
  1189. );
  1190.  
  1191.  
  1192. if( !is_array( $getTheard ) ) {
  1193. $data = [
  1194. 'status' => 1,
  1195. 'msg' => 'Темы не существует',
  1196. ];
  1197.  
  1198. $this->rJson( $data );
  1199. }
  1200.  
  1201. #получаем группу юзера
  1202. $getUserGroup = $this->sql->select(
  1203. 'users',
  1204. [ 'group' ],
  1205. [ 'id' =>$_SESSION['id'] ]
  1206. );
  1207. //$autor = ( $table == 'forum_replay' ) ? 'autor_id' : 'autor';
  1208. if( $getTheard[0]['autor_id'] == $_SESSION['id'] || $getUserGroup[0]['group'] == 3 || $getUserGroup[0]['group'] == 4 || $getUserGroup[0]['group'] == 2 ) {
  1209. #обновляем тему
  1210. $update = $this->sql->update(
  1211. $table,
  1212. [ 'content' => $read_theard ],
  1213. [ 'id' => $theard ]
  1214. );
  1215. if( $update ) {
  1216. $data = [
  1217. 'status' => 200,
  1218. 'post' => func::bcod(htmlspecialchars( trim( $read_theard ) ) ),
  1219. ];
  1220. } else {
  1221. $data = [
  1222. 'status' => 1,
  1223. 'msg' => 'При обновлении произошла ошибка.. Обратитесь к администратору',
  1224. ];
  1225. }
  1226. } else {
  1227. $data = [
  1228. 'status' => 1,
  1229. 'msg' => 'У вас недостаточно прав для этого',
  1230. ];
  1231. }
  1232.  
  1233.  
  1234. $this->rJson( $data );
  1235. }
  1236.  
  1237. public function postmessegeTopic() {
  1238. if( !isset( $_SESSION['id'] ) )
  1239. exit();
  1240.  
  1241. if( !is_numeric( $_POST['theard'] ) ) {
  1242. $data = [
  1243. 'status' => 1,
  1244. 'msg' => 'Произоша ошибка... Сообщите администратору',
  1245. ];
  1246.  
  1247. $this->rJson( $data );
  1248. }
  1249.  
  1250.  
  1251. $getUser = $this->sql->select(
  1252. 'users',
  1253. [ 'banned' ],
  1254. [ 'id' => $_SESSION['id'] ]
  1255. );
  1256.  
  1257. if( $getUser[0]['banned'] == 1 ) {
  1258. $_SESSION['err_msg'] = 'Ошибка! Вам запрещено отправлять сообщения';
  1259. return $r;
  1260. }
  1261. $theard = ( int ) $_POST['theard'];
  1262. $content = $_POST['content'];
  1263.  
  1264. if( !isset( $content ) || empty( $content) ) {
  1265. $data = [
  1266. 'status' => 1,
  1267. 'msg' => 'Заполните собщение',
  1268. ];
  1269.  
  1270. $this->rJson( $data );
  1271. }
  1272.  
  1273. $getTheard = $this->sql->select(
  1274. 'forum_theards',
  1275. '*',
  1276. [ 'id' => $theard ]
  1277. );
  1278.  
  1279. if( !is_array( $getTheard ) ) {
  1280. $data = [
  1281. 'status' => 1,
  1282. 'msg' => 'Темы не существует',
  1283. ];
  1284.  
  1285. $this->rJson( $data );
  1286. }
  1287.  
  1288. $sql = $this->sql->insert(
  1289. 'forum_replay',
  1290. [
  1291. 'theard_id' => $theard,
  1292. 'autor_id' => $_SESSION['id'],
  1293. 'content' => $content,
  1294. 'created' => time(),
  1295. 'this_liked' => serialize( [] ),
  1296. ]
  1297. );
  1298.  
  1299. $this->sql->update(
  1300. 'forum_theards',
  1301. [
  1302. 'count_replay' => ( $getTheard[0]['count_replay'] + 1),
  1303. 'last_post' => time()
  1304. ],
  1305. [ 'id' => $theard ]
  1306. );
  1307.  
  1308. $getUserData = $this->sql->select(
  1309. 'users',
  1310. [ 'id', 'count_post' ],
  1311. [ 'id' => $_SESSION['id'] ]
  1312. );
  1313.  
  1314. users::update(
  1315. [ 'count_post' => $getUserData[0]['count_post'] + 1 ],
  1316. [ 'id' => $_SESSION['id'] ]
  1317. );
  1318.  
  1319. if( $sql ) {
  1320. $data = [
  1321. 'status' => 200,
  1322. 'post_id' => $sql,
  1323. 'content_bb' => func::bcod( htmlspecialchars( $content ) ),
  1324. 'content' => htmlspecialchars( $content ),
  1325. ];
  1326. } else {
  1327. $data = [
  1328. 'status' => 1,
  1329. 'msg' => 'Ошибка отправки сообщения',
  1330. ];
  1331. }
  1332. $this->rJson( $data );
  1333. }
  1334.  
  1335.  
  1336. public function createTheard() {
  1337. if( !isset( $_SESSION['id'] ) )
  1338. return ADDRESS;
  1339. $create_theard = isset( $_POST['create_theard'] ) ? $_POST['create_theard'] : '';
  1340. $r = ADDRESS.mb_substr( $create_theard, 1);
  1341.  
  1342. $getUser = $this->sql->select(
  1343. 'users',
  1344. [ 'banned' ],
  1345. [ 'id' => $_SESSION['id'] ]
  1346. );
  1347.  
  1348. if( $getUser[0]['banned'] == 1 ) {
  1349. $_SESSION['err_msg'] = 'Ошибка! Вам запрещено создавать темы';
  1350. return $r;
  1351. }
  1352.  
  1353. $category = $_POST['category'];
  1354. $content = $_POST['content'];
  1355. $title = trim( $_POST['title'] );
  1356.  
  1357. if( !is_numeric( $category ) ) {
  1358. $_SESSION['err_msg'] = 'Ошибка создания топика';
  1359. return $r;
  1360. }
  1361.  
  1362. if( !isset( $content ) || empty( $content) ) {
  1363. $_SESSION['err_msg'] = 'Заполните собщение';
  1364. return $r;
  1365. }
  1366.  
  1367. if( !isset( $title ) || empty( $title) ) {
  1368. $_SESSION['err_msg'] = 'Заполните название топика';
  1369. return $r;
  1370. }
  1371.  
  1372. $sql = $this->sql->insert(
  1373. 'forum_theards',
  1374. [
  1375. 'title' => $title,
  1376. 'content' => $content,
  1377. 'created' => time(),
  1378. 'autor_id' => $_SESSION['id'],
  1379. 'forum_id' => ( int ) $category,
  1380. 'this_liked' => serialize( [] ),
  1381. 'last_post' => time(),
  1382. ]
  1383. );
  1384.  
  1385. $getUserData = $this->sql->select(
  1386. 'users',
  1387. [ 'id', 'count_theard' ],
  1388. [ 'id' => $_SESSION['id'] ]
  1389. );
  1390.  
  1391. $count_theard = $getUserData[0]['count_theard'] + 1;
  1392.  
  1393. /*
  1394. users::update(
  1395. [ 'count_theard' => $count_theard ],
  1396. [ 'id' => $_SESSION['id'] ]
  1397. );
  1398. */
  1399. $this->sql->update(
  1400. 'users',
  1401. [ 'count_theard' => $count_theard ],
  1402. [ 'id' => $_SESSION['id'] ]
  1403. );
  1404. if( $sql ) {
  1405. $_SESSION['msg'] = 'Тема успешно создана';
  1406. return ADDRESS.'forum/topic?id='.$sql;
  1407. }
  1408. $_SESSION['err_msg'] = 'ошибка создания темы.. Обратитесь к администратору';
  1409. return $r;
  1410. }
  1411.  
  1412. public function vkAutch( $code ) {
  1413. if( isset( $_SESSION['id'] ) )
  1414. return ADDRESS;
  1415.  
  1416.  
  1417.  
  1418. if ( isset( $_GET['code'] ) ) {
  1419. $redirect_uri = ADDRESS.'function.php?vk_autch=true';
  1420. $params = array(
  1421. 'user_ids' => $token['user_id'],
  1422. 'fields' => 'uid,first_name',
  1423. 'access_token' => $token['access_token'],
  1424. 'version' => '5.8'
  1425. );
  1426.  
  1427. $token = json_decode(file_get_contents('https://oauth.vk.com/access_token' . '?' . urldecode(http_build_query($params))), true);
  1428.  
  1429. if (isset($token['access_token'])) {
  1430. $getUser = $this->sql->select(
  1431. 'users',
  1432. '*',
  1433. [ 'vk_id' => $token['user_id'] ]
  1434. );
  1435. if( is_array( $getUser[0] ) ) {
  1436. $userid = md5( $getUser[0]['username'].':'.$getUser[0]['email'].':'.time() );
  1437. $this->sql->update(
  1438. 'users',
  1439. [
  1440. 'vk_id' => $token['user_id'],
  1441. 'access_token' => $token['access_token'],
  1442. 'userid' => $userid,
  1443. ],
  1444. [ 'id' => $getUser[0]['id'] ]
  1445. );
  1446. $addUser = $getUser[0]['id'];
  1447. } else {
  1448.  
  1449.  
  1450. $params = array(
  1451. 'uids' => $token['user_id'],
  1452. 'fields' => 'uid,first_name',
  1453. 'access_token' => $token['access_token']
  1454. );
  1455.  
  1456. $userInfo = json_decode(file_get_contents('https://api.vk.com/method/users.get' . '?' . urldecode(http_build_query($params))), true);
  1457.  
  1458. if (isset($userInfo['response'][0]['uid'])) {
  1459. $userInfo = $userInfo['response'][0];
  1460. $result = true;
  1461. }
  1462.  
  1463. if( $result ) {
  1464. $userid = md5( $userInfo['first_name'].':'.$userInfo['uid'].':'.time() );
  1465. $ppassword = rand( 10000, 999999);
  1466.  
  1467. #создаем юзера
  1468. $addUser = $this->sql->insert(
  1469. 'users',
  1470. [
  1471. 'username' => $userInfo['first_name'].' '.$userInfo['last_name'],
  1472. 'password' => $ppassword,
  1473. 'group' => '0',
  1474. 'money' => '0',
  1475. 'email' => '',
  1476. 'vk_id' => $userInfo['uid'],
  1477. 'userid' => $userid,
  1478. 'reg_data' => time(),
  1479. 'access_token' => $token['access_token']
  1480. ]
  1481. );
  1482. $_SESSION['msg'] = 'Мы создали Вам аккаунт, Ваш пароль '.$ppassword;
  1483. }
  1484.  
  1485. }
  1486. #убиваем все сессии
  1487. $this->logOut( false );
  1488.  
  1489. SetCookie( 'userid', $userid, time() + 2592000, '/', null, null, true );
  1490. $_SESSION['id'] = $addUser;
  1491. }
  1492. }
  1493. return ADDRESS;
  1494. }
  1495.  
  1496. public function changeavatar() {
  1497. if( !isset( $_SESSION['id'] ) )
  1498. exit();
  1499.  
  1500. if( !is_array( $_FILES['changeavatar'] ) )
  1501. exit();
  1502. $getUser = $this->sql->select(
  1503. 'users',
  1504. [ 'avatar' ],
  1505. [ 'id' => $_SESSION['id'] ]
  1506. );
  1507.  
  1508. //проверяем наличие старой аватары
  1509. if( !is_array( $getUser ) ) {
  1510. $data = [
  1511. 'status' => 1,
  1512. 'msg' => 'Ошибка загрузки аватара',
  1513. ];
  1514.  
  1515. $this->rJson( $data );
  1516. }
  1517.  
  1518. #загружаем аватар
  1519. $changeavatar = $this->uploadFile( $_FILES['changeavatar'] );
  1520.  
  1521. if( $changeavatar ) {
  1522. #обновляем аваратку
  1523. $this->sql->update(
  1524. 'users',
  1525. [ 'avatar' => $changeavatar ],
  1526. [ 'id' => $_SESSION['id'] ]
  1527. );
  1528. #Если это не стандартный аватар - удаляем
  1529. if( $getUser[0]['avatar'] != 'public/img/avatars/avatar11_big.png' ) {
  1530. //Удаляем стару аватару
  1531. unlink( $getUser[0]['avatar'] );
  1532. }
  1533. $data = [
  1534. 'status' => 200,
  1535. 'url' => $changeavatar
  1536. ];
  1537. } else {
  1538. $data = [
  1539. 'status' => 1,
  1540. 'url' => 'Ошибка загрузки аватара'
  1541. ];
  1542. }
  1543.  
  1544. return ADDRESS.'setting/';
  1545. $this->rJson( $data );
  1546. }
  1547.  
  1548. public function setting() {
  1549. if( !isset( $_SESSION['id'] ) )
  1550. return ADDRESS;
  1551.  
  1552. $settingPost = isset( $_POST['setting'] ) ? $_POST['setting'] : 'q';
  1553. $r = ADDRESS.mb_substr( $settingPost, 1);
  1554.  
  1555. $username = $_POST['username'];
  1556. $email = $_POST['email'];
  1557. $password = $_POST['password'];
  1558. $addUpdate = [];
  1559.  
  1560. if( is_array( $username ) || is_array( $email ) || is_array( $password ) ) {
  1561. $_SESSION['err_msg'] = 'Массив запрещен';
  1562. return $r;
  1563. }
  1564.  
  1565. if( empty( $username ) ) {
  1566. $_SESSION['err_msg'] = 'Напишите свой ник';
  1567. return $r;
  1568. }
  1569. if( empty( $email ) ) {
  1570. $_SESSION['err_msg'] = 'Напишите свою почту';
  1571. return $r;
  1572. }
  1573.  
  1574. if( mb_strlen( $username ) > 32 || mb_strlen( $username ) < 1 ) {
  1575. $_SESSION['err_msg'] = 'Логин должен содержать больше 1 символа и максимум 32';
  1576. return $r;
  1577. }
  1578.  
  1579. if( !filter_var( $email, FILTER_VALIDATE_EMAIL ) ){
  1580. $_SESSION['err_msg'] = 'Почта заполнена не верно';
  1581. return $r;
  1582. }
  1583.  
  1584.  
  1585. if( empty( $password ) ) {
  1586. $_SESSION['err_msg'] = 'Введите свой пароль';
  1587. return $r;
  1588. }
  1589.  
  1590. #Получаем данные юзера
  1591. $getUserSes = $this->sql->select(
  1592. 'users',
  1593. [ 'username', 'email', 'password' ],
  1594. [ 'id' => $_SESSION['id'], ]
  1595. );
  1596.  
  1597. if( $getUserSes[0]['password'] != $password ) {
  1598. #Создаем массив и добавляем пароль
  1599. $addUpdate['password'] = $password;
  1600.  
  1601. $getSErvers = $this->sql->select(
  1602. 'vip_users',
  1603. '*',
  1604. [ 'user_id' => $_SESSION['id'] ]
  1605. );
  1606.  
  1607.  
  1608. #Если есть сервера
  1609. if( is_array( $getSErvers ) ) {
  1610. for( $i = 0; $i < count( $getSErvers ); $i++ ){
  1611.  
  1612. $serverList = vip_servers::getIdAdmin( $getSErvers[$i]['server_id'] );
  1613.  
  1614. #Берем сервера только AmxAdmins
  1615. if( $serverList['type'] == '0' ) {
  1616. #подготавливаем данные сервера
  1617. $hostAmx = $serverList['host'];
  1618. $userAmx = $serverList['user'];
  1619. $passwordAmx = $serverList['password'];
  1620. $bdAmx = $serverList['bd'];
  1621. $prefixAmx = $serverList['prefix'];
  1622.  
  1623. amxadmins::updateAmxAdmin(
  1624. [ 'password' => md5( $password ) ],
  1625. [ 'id' => $getSErvers[$i]['amx_id'] ],
  1626. $hostAmx, $userAmx, $passwordAmx, $bdAmx, $prefixAmx
  1627. );
  1628.  
  1629. }
  1630. }
  1631. }
  1632. }
  1633.  
  1634. $getUser = $this->sql->select(
  1635. 'users',
  1636. [ 'id', 'username' ],
  1637. [ 'username' => $username, ]
  1638. );
  1639.  
  1640. #Добавляем в массив новый ник
  1641. if( !is_array( $getUser ) ) {
  1642. $addUpdate['username'] = $username;
  1643.  
  1644.  
  1645. $getSErvers = $this->sql->select(
  1646. 'vip_users',
  1647. '*',
  1648. [ 'user_id' => $_SESSION['id'] ]
  1649. );
  1650.  
  1651. if( isset( $this->stg['BATTLE_ACTIVE'] ) ) {
  1652. if( $this->stg['BATTLE_ACTIVE'] ) {
  1653. $getModelList = battle::getModSkins( $getUserSes[0]['username'] );
  1654.  
  1655. if( is_array( $getModelList ) ) {
  1656. for( $z = 0; $z < count( $getModelList ); $z++ ) {
  1657. battle::update(
  1658. [
  1659. 'username' => $username
  1660. ],
  1661. [
  1662. 'id' => $getModelList[$z]['id']
  1663. ],
  1664. 'grey_csgo_mod_skins'
  1665. );
  1666. }
  1667. }
  1668. $getGiftList = battle::getGiftList( $getUserSes[0]['username'] );
  1669.  
  1670. if( is_array( $getGiftList ) ) {
  1671. for( $z = 0; $z < count( $getGiftList ); $z++ ) {
  1672. battle::update(
  1673. [
  1674. 'username' => $username
  1675. ],
  1676. [
  1677. 'id' => $getGiftList[$z]['id']
  1678. ],
  1679. 'grey_csgo_gifts_list'
  1680. );
  1681. }
  1682. }
  1683. }
  1684. }
  1685.  
  1686.  
  1687. #Если есть сервера
  1688. if( is_array( $getSErvers ) ) {
  1689. for( $i = 0; $i < count( $getSErvers ); $i++ ){
  1690.  
  1691. $serverList = vip_servers::getIdAdmin( $getSErvers[$i]['server_id'] );
  1692.  
  1693. #Берем сервера только AmxAdmins
  1694. if( $serverList['type'] == '0' ) {
  1695. #подготавливаем данные сервера
  1696. $hostAmx = $serverList['host'];
  1697. $userAmx = $serverList['user'];
  1698. $passwordAmx = $serverList['password'];
  1699. $bdAmx = $serverList['bd'];
  1700. $prefixAmx = $serverList['prefix'];
  1701.  
  1702. amxadmins::updateAmxAdmin(
  1703. [
  1704. 'username' => $username,
  1705. 'steamid' => $username,
  1706. 'nickname' => $username
  1707. ],
  1708. [ 'id' => $getSErvers[$i]['amx_id'] ],
  1709. $hostAmx, $userAmx, $passwordAmx, $bdAmx, $prefixAmx
  1710. );
  1711.  
  1712. }
  1713. }
  1714. }
  1715. }
  1716.  
  1717. $getEmail = $this->sql->select(
  1718. 'users',
  1719. [ 'id', 'email' ],
  1720. [ 'email' => $email, ]
  1721. );
  1722.  
  1723. #Добавляем в массив новую почту если она не занята
  1724. if( !is_array( $getEmail ) ) {
  1725. $addUpdate['email'] = $email;
  1726. }
  1727. $update = $this->sql->update(
  1728. 'users',
  1729. $addUpdate,
  1730. [ 'id' => $_SESSION['id'] ]
  1731. );
  1732. if( $update )
  1733. $_SESSION['msg'] = 'Настройки сохранены!!';
  1734. else
  1735. $_SESSION['err_msg'] = 'Ошибка сохранения данных';
  1736. return $r;
  1737. }
  1738.  
  1739. public function autch() {
  1740. if( isset( $_SESSION['id'] ) )
  1741. return ADDRESS;
  1742.  
  1743.  
  1744. $registerPost = isset( $_POST['register'] ) ? $_POST['register'] : 'q';
  1745. $r = ADDRESS.mb_substr( $registerPost, 1);
  1746. $auth_name = $_POST['auth_name'];
  1747. //$auth_password = md5( $_POST['auth_password'] );
  1748. $auth_password = $_POST['auth_password'];
  1749.  
  1750. if( filter_var( $auth_name, FILTER_VALIDATE_EMAIL ) ){
  1751. $where = [
  1752. 'email' => $auth_name,
  1753. 'password' => $auth_password,
  1754. ];
  1755. } else {
  1756. $where = [
  1757. 'username' => $auth_name,
  1758. 'password' => $auth_password,
  1759. ];
  1760. }
  1761.  
  1762. $check = $this->sql->select(
  1763. 'users',
  1764. [ 'id', 'username', 'email' ],
  1765. $where
  1766. );
  1767.  
  1768. if( !is_array( $check ) ) {
  1769. $_SESSION['err_msg'] = 'Не верный логин или пароль.. попробуйте еще';
  1770. return $r.'register';
  1771. }
  1772. $userid = md5( $check[0]['username'].':'.$check[0]['email'].':'.time() );
  1773. $this->sql->update(
  1774. 'users',
  1775. [ 'userid' => $userid ],
  1776. [ 'id' => $check[0]['id'] ]
  1777. );
  1778. $_SESSION['id'] = $check[0]['id'];
  1779. SetCookie( 'userid', $userid, time() + 2592000, '/', null, null, true);
  1780. return $r;
  1781. }
  1782.  
  1783. public function register() {
  1784. if( isset( $_SESSION['id'] ) )
  1785. return ADDRESS;
  1786. $r = ADDRESS.'register';
  1787.  
  1788. if( isset( $this->stg['capcha'] ) && ( $this->stg['capcha'] == 'on' ) ) {
  1789. $recaptcha = $_POST['g-recaptcha-response'];
  1790. if( empty( $recaptcha ) ) {
  1791. $_SESSION['err_msg'] = 'Введите капчу';
  1792. return $r;
  1793. }
  1794. $google_url="https://www.google.com/recaptcha/api/siteverify";
  1795. $secret = $this->stg['capcha_key2'];
  1796. $ip=$_SERVER['REMOTE_ADDR'];
  1797. $url = file_get_contents( $google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip );
  1798. $res = json_decode( $url, true );
  1799. //reCaptcha введена
  1800. if( !$res['success'] ){
  1801. $_SESSION['err_msg'] = 'Введите капчу';
  1802. return $r;
  1803. }
  1804. }
  1805. //$r = ADDRESS.mb_substr( $_POST['register'], 1);
  1806. $registerPost = isset( $_POST['register'] ) ? $_POST['register'] : 'q';
  1807.  
  1808. $username = $_POST['username'];
  1809. $email = $_POST['email'];
  1810. $password = $_POST['password'];
  1811. $password2 = $_POST['password2'];
  1812. $_SESSION['username'] = htmlspecialchars( $username );
  1813. $_SESSION['email'] = htmlspecialchars( $email );
  1814.  
  1815. if( is_array( $username ) || is_array( $email ) || is_array( $password ) || is_array( $password2 ) ) {
  1816. $_SESSION['err_msg'] = 'Массив запрещен';
  1817. return $r;
  1818. }
  1819.  
  1820. if( empty( $username ) ) {
  1821. $_SESSION['err_msg'] = 'Напишите свой ник';
  1822. return $r;
  1823. }
  1824. if( empty( $email ) ) {
  1825. $_SESSION['err_msg'] = 'Напишите свою почту';
  1826. return $r;
  1827. }
  1828. if( empty( $password ) && empty( $password2 ) ) {
  1829. $_SESSION['err_msg'] = 'Напишите свой пароль';
  1830. return $r;
  1831. }
  1832. if( $password != $password2 ) {
  1833. $_SESSION['err_msg'] = 'Пароли не совпадают';
  1834. return $r;
  1835. }
  1836. if( mb_strlen( $username ) > 32 || mb_strlen( $username ) < 1 ) {
  1837. $_SESSION['err_msg'] = 'Логин должен содержать больше 1 символа и максимум 32';
  1838. return $r;
  1839. }
  1840.  
  1841. if( !filter_var( $email, FILTER_VALIDATE_EMAIL ) ){
  1842. $_SESSION['err_msg'] = 'Почта заполнена не верно';
  1843. return $r;
  1844. }
  1845.  
  1846. $getUser = $this->sql->select(
  1847. 'users',
  1848. [ 'id' ],
  1849. [ 'username' => $username, ]
  1850. );
  1851.  
  1852. if( is_array( $getUser ) ) {
  1853. $_SESSION['err_msg'] = 'Данный ник уже зарегистрирован';
  1854. unset( $_SESSION['username'] );
  1855. return $r;
  1856. }
  1857. $getMail = $this->sql->select(
  1858. 'users',
  1859. [ 'id' ],
  1860. [ 'email' => $email, ]
  1861. );
  1862.  
  1863. if( is_array( $getMail ) ) {
  1864. $_SESSION['err_msg'] = 'Данная почта уже занята';
  1865. unset( $_SESSION['email'] );
  1866. return $r;
  1867. }
  1868.  
  1869. $userid = md5( $username.':'.$email.':'.time() );
  1870. $referral = !empty( $_SESSION['referral'] ) ? $_SESSION['referral'] : '0';
  1871. #создаем юзера
  1872. $addUser = $this->sql->insert(
  1873. 'users',
  1874. [
  1875. 'username' => $username,
  1876. //'password' => md5( $password ),
  1877. 'password' => $password,
  1878. 'group' => '0',
  1879. 'money' => '0',
  1880. 'email' => $email,
  1881. 'vk_id' => '0',
  1882. 'userid' => $userid,
  1883. 'reg_data' => time(),
  1884. 'reg_ip' => $this->getRealIP(),
  1885. 'referral' => $referral,
  1886. ]
  1887. );
  1888. #убиваем все сессии
  1889. $this->logOut( false );
  1890. #присваиваем куки и сессию
  1891. SetCookie( 'userid', $userid, time() + 2592000, '/', null, null, true );
  1892. $_SESSION['id'] = $addUser;
  1893. $_SESSION['msg'] = 'Спасибо за регистрацию';
  1894. return ADDRESS;
  1895. }
  1896.  
  1897. public function logOut( $return = ADDRESS ) {
  1898. if( is_array( $_SESSION ) ) {
  1899. foreach ( $_SESSION as $key => $value ) {
  1900. unset( $_SESSION[$key] );
  1901. }
  1902. }
  1903. SetCookie( 'userid', '', 32600 );
  1904. return $return;
  1905. }
  1906.  
  1907. public function uploadFile( $fileValue ) {
  1908. if( !isset( $_SESSION['id'] ) ) {
  1909. die('Что-то тут не так..)');
  1910. }
  1911. if(
  1912. $fileValue['type'] == 'image/jpeg' ||
  1913. $fileValue['type'] == 'image/png'
  1914. ) {
  1915.  
  1916. if( $fileValue["size"] > 1024*3*1024 )
  1917. {
  1918. $_SESSION['msg'] = "Размер файла превышает три мегабайта";
  1919. return false;
  1920. }
  1921. if( is_uploaded_file( $fileValue["tmp_name"] ) )
  1922. {
  1923. $fileFormat = new SplFileInfo( $fileValue["name"] );
  1924.  
  1925. if( $fileFormat->getExtension() == 'php' )
  1926. exit;
  1927.  
  1928. $newFile = rand(99, 9999).time() . '.jpg';
  1929.  
  1930. if (! file_exists('upload/' . date('Y')))
  1931. {
  1932. mkdir('upload/' . date('Y'), 0777, true);
  1933. }
  1934.  
  1935. if (! file_exists('upload/' . date('Y') . '/' . date('m')))
  1936. {
  1937. mkdir('upload/' . date('Y') . '/' . date('m'), 0777, true);
  1938. }
  1939.  
  1940. $uploadDir = 'upload/' . date('Y') . '/' . date('m')."/";
  1941.  
  1942. move_uploaded_file(
  1943. $fileValue["tmp_name"],
  1944. $uploadDir . $newFile
  1945. );
  1946.  
  1947.  
  1948. return $uploadDir.$newFile;
  1949. }
  1950. }
  1951. else {
  1952. $_SESSION['msg'] = "Загрузить можно только картинку.. jpg формата";
  1953. return false;
  1954. }
  1955. }
  1956.  
  1957. public function redirect( $link ) {
  1958. header( "Location: {$link}" );
  1959. exit();
  1960. }
  1961.  
  1962. public function pre( $text ) {
  1963. echo '<pre>';
  1964. print_r( $text );
  1965. die();
  1966. }
  1967.  
  1968. public function rJson( $data ) {
  1969. header("Content-type: application/json; charset=utf-8");
  1970. echo json_encode( $data );
  1971. exit();
  1972. }
  1973.  
  1974. public function getRealIP()
  1975. {
  1976.  
  1977. if($_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
  1978. {
  1979. $client_ip =
  1980. ( !empty($_SERVER['REMOTE_ADDR']) ) ?
  1981. $_SERVER['REMOTE_ADDR']
  1982. :
  1983. ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
  1984. $_ENV['REMOTE_ADDR']
  1985. :
  1986. "unknown" );
  1987. $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);
  1988.  
  1989. reset($entries);
  1990. while (list(, $entry) = each($entries))
  1991. {
  1992. $entry = trim($entry);
  1993. if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) )
  1994. {
  1995. $private_ip = array(
  1996. '/^0\./',
  1997. '/^127\.0\.0\.1/',
  1998. '/^192\.168\..*/',
  1999. '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
  2000. '/^10\..*/');
  2001.  
  2002. $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
  2003.  
  2004. if ($client_ip != $found_ip)
  2005. {
  2006. $client_ip = $found_ip;
  2007. break;
  2008. }
  2009. }
  2010. }
  2011. }
  2012. else
  2013. {
  2014. $client_ip =
  2015. ( !empty($_SERVER['REMOTE_ADDR']) ) ?
  2016. $_SERVER['REMOTE_ADDR']
  2017. :
  2018. ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
  2019. $_ENV['REMOTE_ADDR']
  2020. :
  2021. "unknown" );
  2022. }
  2023.  
  2024. return $client_ip;
  2025.  
  2026. }
  2027. }
  2028. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement