SHOW:
|
|
- or go back to the newest paste.
1 | - | <?php |
1 | + | <?php |
2 | - | //Параметры работы скрипта |
2 | + | //Параметры работы скрипта |
3 | - | $mysql_host = 'localhost'; |
3 | + | $mysql_host = 'localhost'; |
4 | - | $mysql_user = 'root'; |
4 | + | $mysql_user = 'root'; |
5 | - | $mysql_password = '1394pt'; |
5 | + | $mysql_password = '1394pt'; |
6 | - | $mysql_dbase = 'mikbill'; |
6 | + | $mysql_dbase = 'mikbill'; |
7 | - | $log_file = $_SERVER['DOCUMENT_ROOT'].'/script_log_1.log'; |
7 | + | $log_file = $_SERVER['DOCUMENT_ROOT'].'/script_log_1.log'; |
8 | - | //параметры исходящей почты |
8 | + | //параметры исходящей почты |
9 | - | $config['smtp_username'] = 'iptv@pautina-ltd.ru'; |
9 | + | $config['smtp_username'] = 'iptv@pautina-ltd.ru'; |
10 | - | $config['smtp_port'] = '465'; |
10 | + | $config['smtp_port'] = '465'; |
11 | - | $config['smtp_host'] = 'ssl://smtp.yandex.ru'; |
11 | + | $config['smtp_host'] = 'ssl://smtp.yandex.ru'; |
12 | - | $config['smtp_password'] = '123456789'; |
12 | + | $config['smtp_password'] = '123456789'; |
13 | - | $config['smtp_debug'] = false; |
13 | + | $config['smtp_debug'] = false; |
14 | - | $config['smtp_charset'] = 'UTF-8'; |
14 | + | $config['smtp_charset'] = 'UTF-8'; |
15 | - | $config['smtp_from'] = 'IPTVPORTAL SCRIPT'; |
15 | + | $config['smtp_from'] = 'IPTVPORTAL SCRIPT'; |
16 | - | //параметры отправляемого письма |
16 | + | //параметры отправляемого письма |
17 | - | $mail_to_admin = true; |
17 | + | $mail_to_admin = true; |
18 | - | $mail_to = 'iptv@pautina-ltd.ru'; |
18 | + | $mail_to = 'iptv@pautina-ltd.ru'; |
19 | - | $mail_subj = 'Отчёт о работе скрипта'; |
19 | + | $mail_subj = 'Отчёт о работе скрипта'; |
20 | - | $mail_headers = 'Content-type: text/html; charset="UTF-8"'."\r\n"; |
20 | + | $mail_headers = 'Content-type: text/html; charset="UTF-8"'."\r\n"; |
21 | - | $mail_headers .= 'From: '.$config['smtp_from'].' <'.$config['smtp_username'].'>'."\r\n"; |
21 | + | $mail_headers .= 'From: '.$config['smtp_from'].' <'.$config['smtp_username'].'>'."\r\n"; |
22 | - | //параметры iptvportal.ru |
22 | + | //параметры iptvportal.ru |
23 | - | $_auth_uri = 'http://91.236.103.198/api/jsonrpc/'; |
23 | + | $_auth_uri = 'http://91.236.103.198/api/jsonrpc/'; |
24 | - | $_username = 'CartMan'; |
24 | + | $_username = 'CartMan'; |
25 | - | $_password = '2119632654d'; |
25 | + | $_password = '2119632654d'; |
26 | - | $_jsonsql_uri = 'http://91.236.103.198/api/jsonsql/'; |
26 | + | $_jsonsql_uri = 'http://91.236.103.198/api/jsonsql/'; |
27 | - | $_iptvportal_header = null; |
27 | + | $_iptvportal_header = null; |
28 | - | //Системный профиль добавляемых пользователей |
28 | + | //Системный профиль добавляемых пользователей |
29 | - | $_system_profile = '63'; //pautina |
29 | + | $_system_profile = '63'; //pautina |
30 | - | //Группы синхронизируемых пользователей |
30 | + | //Группы синхронизируемых пользователей |
31 | - | $_users_groups = "1"; //(список групп - через запятую+пробел, ХЗ - сейчас стоит группа 8, но функционал оставляю на будущее...) |
31 | + | $_users_groups = "1"; //(список групп - через запятую+пробел, ХЗ - сейчас стоит группа 8, но функционал оставляю на будущее...) |
32 | - | $_include_groups = false; //(для субпровайдеров - true), когда true - включать только пользователей указанных групп, false - включать только пользователей ВНЕ указанных групп |
32 | + | $_include_groups = false; //(для субпровайдеров - true), когда true - включать только пользователей указанных групп, false - включать только пользователей ВНЕ указанных групп |
33 | - | //Тут приведу соответствие пакетов микбиловских и мидлваровских... |
33 | + | //Тут приведу соответствие пакетов микбиловских и мидлваровских... |
34 | - | $default_packets = array('1'); // Базовый |
34 | + | $default_packets = array('1'); // Базовый |
35 | - | $mikbill_packets[115] = array('1','2'); // 11|Пакет Видео по Запросу |
35 | + | $mikbill_packets[115] = array('1','2'); // 11|Пакет Видео по Запросу |
36 | - | $mikbill_packets[114] = array('1','1049'); // 10|Пакет Управление Просмотром |
36 | + | $mikbill_packets[114] = array('1','1049'); // 10|Пакет Управление Просмотром |
37 | - | $mikbill_packets[113] = array('1','506'); // 09|Пакет HD |
37 | + | $mikbill_packets[113] = array('1','506'); // 09|Пакет HD |
38 | - | $mikbill_packets[107] = array('1','495'); // 03|Пакет Спорт |
38 | + | $mikbill_packets[107] = array('1','495'); // 03|Пакет Спорт |
39 | - | $mikbill_packets[110] = array('1','503'); // 06|Пакет А-Медиа |
39 | + | $mikbill_packets[110] = array('1','503'); // 06|Пакет А-Медиа |
40 | - | $mikbill_packets[123] = array('1','504'); // 12|Пакет Виртуальный Кинозал |
40 | + | $mikbill_packets[123] = array('1','504'); // 12|Пакет Виртуальный Кинозал |
41 | - | $mikbill_packets[112] = array('1','502'); // 08|Пакет Взрослый |
41 | + | $mikbill_packets[112] = array('1','502'); // 08|Пакет Взрослый |
42 | - | $mikbill_packets[117] = array('1','501'); // 13|Пакет Все Включено |
42 | + | $mikbill_packets[117] = array('1','501'); // 13|Пакет Все Включено |
43 | - | $mikbill_packets[105] = array('1','496'); // 01|Пакет Детский |
43 | + | $mikbill_packets[105] = array('1','496'); // 01|Пакет Детский |
44 | - | $mikbill_packets[106] = array('1','500'); // 02|Пакет Кино |
44 | + | $mikbill_packets[106] = array('1','500'); // 02|Пакет Кино |
45 | - | $mikbill_packets[111] = array('1','499'); // 07|Пакет Наш Футбол |
45 | + | $mikbill_packets[111] = array('1','499'); // 07|Пакет Наш Футбол |
46 | - | $mikbill_packets[108] = array('1','498'); // 04|Пакет Познавательный |
46 | + | $mikbill_packets[108] = array('1','498'); // 04|Пакет Познавательный |
47 | - | $mikbill_packets[109] = array('1','497'); // 05|Пакет Развлекательный |
47 | + | $mikbill_packets[109] = array('1','497'); // 05|Пакет Развлекательный |
48 | - | $mikbill_packets[119] = array('1','505','496'); // Пакет Стандарт + Детский |
48 | + | $mikbill_packets[119] = array('1','505','496'); // Пакет Стандарт + Детский |
49 | - | $mikbill_packets[116] = array('1','505','495'); // Пакет Стандарт + Спорт |
49 | + | $mikbill_packets[116] = array('1','505','495'); // Пакет Стандарт + Спорт |
50 | - | $mikbill_packets[120] = array('1','505','500'); // Пакет Стандарт + Кино |
50 | + | $mikbill_packets[120] = array('1','505','500'); // Пакет Стандарт + Кино |
51 | - | $mikbill_packets[121] = array('1','505','498'); // Пакет Стандарт + Познавательный |
51 | + | $mikbill_packets[121] = array('1','505','498'); // Пакет Стандарт + Познавательный |
52 | - | $mikbill_packets[122] = array('1','505','497'); // Пакет Стандарт + Развлекательный |
52 | + | $mikbill_packets[122] = array('1','505','497'); // Пакет Стандарт + Развлекательный |
53 | - | $mikbill_packets[118] = array('1','501'); // 20|Пакет "Все Включено" |
53 | + | $mikbill_packets[118] = array('1','501'); // 20|Пакет "Все Включено" |
54 | - | //$mikbill_packets[124] = array('1','1387'); // 20|Пакет "Все Включено" - free |
54 | + | //$mikbill_packets[124] = array('1','1387'); // 20|Пакет "Все Включено" - free |
55 | - | //$mikbill_packets[125] = array('1','1387'); // 20|Пакет "Все Включено" - free ПРОСТО ПЕРЕБИТ ID |
55 | + | //$mikbill_packets[125] = array('1','1387'); // 20|Пакет "Все Включено" - free ПРОСТО ПЕРЕБИТ ID |
56 | - | //$mikbill_packets[126] = array('1','1387'); // 20|Пакет "Все Включено" - free ПРОСТО ПЕРЕБИТ ID |
56 | + | //$mikbill_packets[126] = array('1','1387'); // 20|Пакет "Все Включено" - free ПРОСТО ПЕРЕБИТ ID |
57 | - | //параметры работы скрипта закончены, дальше чисто код |
57 | + | //параметры работы скрипта закончены, дальше чисто код |
58 | - | header('Content-Type: text/html; charset=utf-8'); |
58 | + | header('Content-Type: text/html; charset=utf-8'); |
59 | - | setlocale(LC_ALL,'ru_RU.UTF-8'); |
59 | + | setlocale(LC_ALL,'ru_RU.UTF-8'); |
60 | - | setlocale(LC_NUMERIC,'en_US.UTF-8'); |
60 | + | setlocale(LC_NUMERIC,'en_US.UTF-8'); |
61 | - | date_default_timezone_set('Europe/Moscow'); |
61 | + | date_default_timezone_set('Europe/Moscow'); |
62 | - | //Для начала очищу файл логов |
62 | + | //Для начала очищу файл логов |
63 | - | if(!$handle = fopen($log_file, 'w')) { |
63 | + | if(!$handle = fopen($log_file, 'w')) { |
64 | - | if($mail_to_admin){smtpmail($mail_to,$mail_subj,'FATAL ERROR: Не могу произвести запись логов',$mail_headers);} |
64 | + | if($mail_to_admin){smtpmail($mail_to,$mail_subj,'FATAL ERROR: Не могу произвести запись логов',$mail_headers);} |
65 | - | die('Не могу произвести запись логов');} |
65 | + | die('Не могу произвести запись логов');} |
66 | - | ftruncate($handle,0); |
66 | + | ftruncate($handle,0); |
67 | - | fclose($handle); |
67 | + | fclose($handle); |
68 | - | ob_start(); |
68 | + | ob_start(); |
69 | - | //проверяю соединение с базой данных MySQL |
69 | + | //проверяю соединение с базой данных MySQL |
70 | - | $link=mysql_connect($mysql_host,$mysql_user,$mysql_password); |
70 | + | $link=mysql_connect($mysql_host,$mysql_user,$mysql_password); |
71 | - | if(!$link){ |
71 | + | if(!$link){ |
72 | - | $message = 'Ошибка соединения: ' . mysql_error(); |
72 | + | $message = 'Ошибка соединения: ' . mysql_error(); |
73 | - | fatal_error($message); |
73 | + | fatal_error($message); |
74 | - | } |
74 | + | } |
75 | - | log_save('1) Успешно соединился с сервером БД;',$log_file); |
75 | + | log_save('1) Успешно соединился с сервером БД;',$log_file); |
76 | - | //проверяю соединение с базой данных |
76 | + | //проверяю соединение с базой данных |
77 | - | $db_selected = mysql_select_db($mysql_dbase,$link); |
77 | + | $db_selected = mysql_select_db($mysql_dbase,$link); |
78 | - | if (!$db_selected) { |
78 | + | if (!$db_selected) { |
79 | - | $message = 'Не удалось выбрать базу '.$mysql_dbase.' : '.mysql_error(); |
79 | + | $message = 'Не удалось выбрать базу '.$mysql_dbase.' : '.mysql_error(); |
80 | - | fatal_error($message); |
80 | + | fatal_error($message); |
81 | - | } |
81 | + | } |
82 | - | log_save('2) Успешно выбрал базу данных;',$log_file); |
82 | + | log_save('2) Успешно выбрал базу данных;',$log_file); |
83 | - | //Вычисляю для начала список БАЗОВЫХ услуг |
83 | + | //Вычисляю для начала список БАЗОВЫХ услуг |
84 | - | $query = "SELECT serviceid FROM services WHERE service_activation=0 AND suspended=0"; |
84 | + | $query = "SELECT serviceid FROM services WHERE service_activation=0 AND suspended=0"; |
85 | - | trigger_error($query,E_USER_NOTICE); |
85 | + | trigger_error($query,E_USER_NOTICE); |
86 | - | mysql_query('SET NAMES utf8'); |
86 | + | mysql_query('SET NAMES utf8'); |
87 | - | $result = mysql_query($query); |
87 | + | $result = mysql_query($query); |
88 | - | while ($row = mysql_fetch_assoc($result)) { |
88 | + | while ($row = mysql_fetch_assoc($result)) { |
89 | - | $BaseServices[] = $row['serviceid']; |
89 | + | $BaseServices[] = $row['serviceid']; |
90 | - | } |
90 | + | } |
91 | - | //Затем выясняю, на каких тарифах доступны указанные базовые услуги |
91 | + | //Затем выясняю, на каких тарифах доступны указанные базовые услуги |
92 | - | for($i=0;$i<count($BaseServices);$i++){ |
92 | + | for($i=0;$i<count($BaseServices);$i++){ |
93 | - | $query = "SELECT gid FROM services_packets_pairs WHERE serviceid=".$BaseServices[$i]; |
93 | + | $query = "SELECT gid FROM services_packets_pairs WHERE serviceid=".$BaseServices[$i]; |
94 | - | trigger_error($query,E_USER_NOTICE); |
94 | + | trigger_error($query,E_USER_NOTICE); |
95 | - | mysql_query('SET NAMES utf8'); |
95 | + | mysql_query('SET NAMES utf8'); |
96 | - | $result = mysql_query($query); |
96 | + | $result = mysql_query($query); |
97 | - | while ($row = mysql_fetch_assoc($result)) { |
97 | + | while ($row = mysql_fetch_assoc($result)) { |
98 | - | $BaseGids[] = $row['gid']; |
98 | + | $BaseGids[] = $row['gid']; |
99 | - | $GidServices[$row['gid']][] = $BaseServices[$i]; |
99 | + | $GidServices[$row['gid']][] = $BaseServices[$i]; |
100 | - | } |
100 | + | } |
101 | - | } |
101 | + | } |
102 | - | //Список услуг доступных для подключения (НЕ БАЗОВЫХ) |
102 | + | //Список услуг доступных для подключения (НЕ БАЗОВЫХ) |
103 | - | $query = "SELECT serviceid FROM services WHERE service_activation=1 AND suspended=0"; |
103 | + | $query = "SELECT serviceid FROM services WHERE service_activation=1 AND suspended=0"; |
104 | - | trigger_error($query,E_USER_NOTICE); |
104 | + | trigger_error($query,E_USER_NOTICE); |
105 | - | mysql_query('SET NAMES utf8'); |
105 | + | mysql_query('SET NAMES utf8'); |
106 | - | $result = mysql_query($query); |
106 | + | $result = mysql_query($query); |
107 | - | while ($row = mysql_fetch_assoc($result)) { |
107 | + | while ($row = mysql_fetch_assoc($result)) { |
108 | - | $AllServices[] = $row['serviceid']; |
108 | + | $AllServices[] = $row['serviceid']; |
109 | - | } |
109 | + | } |
110 | - | //Затем выясняю, на каких тарифах доступны указанные услуги |
110 | + | //Затем выясняю, на каких тарифах доступны указанные услуги |
111 | - | for($i=0;$i<count($AllServices);$i++){ |
111 | + | for($i=0;$i<count($AllServices);$i++){ |
112 | - | $query = "SELECT gid FROM services_packets_pairs WHERE serviceid=".$AllServices[$i]; |
112 | + | $query = "SELECT gid FROM services_packets_pairs WHERE serviceid=".$AllServices[$i]; |
113 | - | trigger_error($query,E_USER_NOTICE); |
113 | + | trigger_error($query,E_USER_NOTICE); |
114 | - | mysql_query('SET NAMES utf8'); |
114 | + | mysql_query('SET NAMES utf8'); |
115 | - | $result = mysql_query($query); |
115 | + | $result = mysql_query($query); |
116 | - | while ($row = mysql_fetch_assoc($result)) { |
116 | + | while ($row = mysql_fetch_assoc($result)) { |
117 | - | $AllGids[] = $row['gid']; |
117 | + | $AllGids[] = $row['gid']; |
118 | - | $AllGidServices[$row['gid']][] = $AllServices[$i]; |
118 | + | $AllGidServices[$row['gid']][] = $AllServices[$i]; |
119 | - | } |
119 | + | } |
120 | - | } |
120 | + | } |
121 | - | //Первый запрос к БД, выборка пользователей |
121 | + | //Первый запрос к БД, выборка пользователей |
122 | - | $query = "SELECT uid, user, password, fio, address, prim, blocked, gid FROM users"; |
122 | + | $query = "SELECT uid, user, password, fio, address, prim, blocked, gid FROM users"; |
123 | - | //$query = "SELECT * FROM users"; |
123 | + | //$query = "SELECT * FROM users"; |
124 | - | trigger_error($query,E_USER_NOTICE); |
124 | + | trigger_error($query,E_USER_NOTICE); |
125 | - | mysql_query('SET NAMES utf8'); |
125 | + | mysql_query('SET NAMES utf8'); |
126 | - | $result = mysql_query($query); |
126 | + | $result = mysql_query($query); |
127 | - | if (!$result) { |
127 | + | if (!$result) { |
128 | - | $message ='Неверный запрос: '.mysql_error()."\n"; |
128 | + | $message ='Неверный запрос: '.mysql_error()."\n"; |
129 | - | $message.='Запрос целиком: '.$query; |
129 | + | $message.='Запрос целиком: '.$query; |
130 | - | fatal_error($message); |
130 | + | fatal_error($message); |
131 | - | } |
131 | + | } |
132 | - | log_save('3) Успешно запросил информацию о пользователях;',$log_file); |
132 | + | log_save('3) Успешно запросил информацию о пользователях;',$log_file); |
133 | - | if (!mysql_num_rows($result)) { |
133 | + | if (!mysql_num_rows($result)) { |
134 | - | $message='Запрос к таблице пользователей вернул пустой результат.'."\n"; |
134 | + | $message='Запрос к таблице пользователей вернул пустой результат.'."\n"; |
135 | - | fatal_error($message); |
135 | + | fatal_error($message); |
136 | - | } |
136 | + | } |
137 | - | $i=0; |
137 | + | $i=0; |
138 | - | while ($row = mysql_fetch_assoc($result)) { |
138 | + | while ($row = mysql_fetch_assoc($result)) { |
139 | - | $mik_bill_users[$i]['uid'] = $row['uid']; |
139 | + | $mik_bill_users[$i]['uid'] = $row['uid']; |
140 | - | $mik_bill_users[$i]['user'] = $row['user']; |
140 | + | $mik_bill_users[$i]['user'] = $row['user']; |
141 | - | $mik_bill_users[$i]['password'] = $row['password']; |
141 | + | $mik_bill_users[$i]['password'] = $row['password']; |
142 | - | $mik_bill_users[$i]['fio'] = $row['fio']; |
142 | + | $mik_bill_users[$i]['fio'] = $row['fio']; |
143 | - | $mik_bill_users[$i]['address'] = $row['address']; |
143 | + | $mik_bill_users[$i]['address'] = $row['address']; |
144 | - | $mik_bill_users[$i]['prim'] = $row['prim']; |
144 | + | $mik_bill_users[$i]['prim'] = $row['prim']; |
145 | - | $mik_bill_users[$i]['blocked'] = $row['blocked']; |
145 | + | $mik_bill_users[$i]['blocked'] = $row['blocked']; |
146 | - | $mik_bill_users[$i]['gid'] = $row['gid']; |
146 | + | $mik_bill_users[$i]['gid'] = $row['gid']; |
147 | - | $i++; |
147 | + | $i++; |
148 | - | } |
148 | + | } |
149 | - | //ВОТ ТУТ ПРОВЕРЯЮ ГРУППЫ ПОЛЬЗОВАТЕЛЕЙ |
149 | + | //ВОТ ТУТ ПРОВЕРЯЮ ГРУППЫ ПОЛЬЗОВАТЕЛЕЙ |
150 | - | $query = "SELECT uid FROM usersgroups_users WHERE usersgroupid IN(".$_users_groups.")"; |
150 | + | $query = "SELECT uid FROM usersgroups_users WHERE usersgroupid IN(".$_users_groups.")"; |
151 | - | mysql_query('SET NAMES utf8'); |
151 | + | mysql_query('SET NAMES utf8'); |
152 | - | trigger_error($query,E_USER_NOTICE); |
152 | + | trigger_error($query,E_USER_NOTICE); |
153 | - | $result = mysql_query($query); |
153 | + | $result = mysql_query($query); |
154 | - | if (!$result) { |
154 | + | if (!$result) { |
155 | - | $message ='Неверный запрос: '.mysql_error()."\n"; |
155 | + | $message ='Неверный запрос: '.mysql_error()."\n"; |
156 | - | $message.='Запрос целиком: '.$query; |
156 | + | $message.='Запрос целиком: '.$query; |
157 | - | fatal_error($message); |
157 | + | fatal_error($message); |
158 | - | } |
158 | + | } |
159 | - | log_save('4) Успешно запросил информацию о пользователях нужных групп;',$log_file); |
159 | + | log_save('4) Успешно запросил информацию о пользователях нужных групп;',$log_file); |
160 | - | if (!mysql_num_rows($result)) { |
160 | + | if (!mysql_num_rows($result)) { |
161 | - | $message='Запрос к таблице групп пользователей вернул пустой результат.'."\n"; |
161 | + | $message='Запрос к таблице групп пользователей вернул пустой результат.'."\n"; |
162 | - | fatal_error($message); |
162 | + | fatal_error($message); |
163 | - | } |
163 | + | } |
164 | - | $i=0; |
164 | + | $i=0; |
165 | - | while ($row = mysql_fetch_assoc($result)) { |
165 | + | while ($row = mysql_fetch_assoc($result)) { |
166 | - | $group_users[$i]['uid'] = $row['uid']; |
166 | + | $group_users[$i]['uid'] = $row['uid']; |
167 | - | $i++; |
167 | + | $i++; |
168 | - | } |
168 | + | } |
169 | - | $not_group_users_count = 0; |
169 | + | $not_group_users_count = 0; |
170 | - | $group_users_count = 0; |
170 | + | $group_users_count = 0; |
171 | - | for($j=0;$j<count($mik_bill_users);$j++){ |
171 | + | for($j=0;$j<count($mik_bill_users);$j++){ |
172 | - | for($i=0;$i<count($group_users);$i++){ |
172 | + | for($i=0;$i<count($group_users);$i++){ |
173 | - | $user_found_in_group = false; |
173 | + | $user_found_in_group = false; |
174 | - | if($mik_bill_users[$j]['uid']==$group_users[$i]['uid']){ |
174 | + | if($mik_bill_users[$j]['uid']==$group_users[$i]['uid']){ |
175 | - | $user_found_in_group = true; |
175 | + | $user_found_in_group = true; |
176 | - | $mik_bill_group_users[$group_users_count]['uid'] = $mik_bill_users[$j]['uid']; |
176 | + | $mik_bill_group_users[$group_users_count]['uid'] = $mik_bill_users[$j]['uid']; |
177 | - | $mik_bill_group_users[$group_users_count]['user'] = $mik_bill_users[$j]['user']; |
177 | + | $mik_bill_group_users[$group_users_count]['user'] = $mik_bill_users[$j]['user']; |
178 | - | $mik_bill_group_users[$group_users_count]['password'] = $mik_bill_users[$j]['password']; |
178 | + | $mik_bill_group_users[$group_users_count]['password'] = $mik_bill_users[$j]['password']; |
179 | - | $mik_bill_group_users[$group_users_count]['fio'] = $mik_bill_users[$j]['fio']; |
179 | + | $mik_bill_group_users[$group_users_count]['fio'] = $mik_bill_users[$j]['fio']; |
180 | - | $mik_bill_group_users[$group_users_count]['address'] = $mik_bill_users[$j]['address']; |
180 | + | $mik_bill_group_users[$group_users_count]['address'] = $mik_bill_users[$j]['address']; |
181 | - | $mik_bill_group_users[$group_users_count]['prim'] = $mik_bill_users[$j]['prim']; |
181 | + | $mik_bill_group_users[$group_users_count]['prim'] = $mik_bill_users[$j]['prim']; |
182 | - | $mik_bill_group_users[$group_users_count]['blocked'] = $mik_bill_users[$j]['blocked']; |
182 | + | $mik_bill_group_users[$group_users_count]['blocked'] = $mik_bill_users[$j]['blocked']; |
183 | - | $mik_bill_group_users[$group_users_count]['gid'] = $mik_bill_users[$j]['gid']; |
183 | + | $mik_bill_group_users[$group_users_count]['gid'] = $mik_bill_users[$j]['gid']; |
184 | - | $group_users_count++; |
184 | + | $group_users_count++; |
185 | - | } |
185 | + | } |
186 | - | } |
186 | + | } |
187 | - | if(!$user_found_in_group){ |
187 | + | if(!$user_found_in_group){ |
188 | - | $mik_bill_not_group_users[$not_group_users_count]['uid'] = $mik_bill_users[$j]['uid']; |
188 | + | $mik_bill_not_group_users[$not_group_users_count]['uid'] = $mik_bill_users[$j]['uid']; |
189 | - | $mik_bill_not_group_users[$not_group_users_count]['user'] = $mik_bill_users[$j]['user']; |
189 | + | $mik_bill_not_group_users[$not_group_users_count]['user'] = $mik_bill_users[$j]['user']; |
190 | - | $mik_bill_not_group_users[$not_group_users_count]['password'] = $mik_bill_users[$j]['password']; |
190 | + | $mik_bill_not_group_users[$not_group_users_count]['password'] = $mik_bill_users[$j]['password']; |
191 | - | $mik_bill_not_group_users[$not_group_users_count]['fio'] = $mik_bill_users[$j]['fio']; |
191 | + | $mik_bill_not_group_users[$not_group_users_count]['fio'] = $mik_bill_users[$j]['fio']; |
192 | - | $mik_bill_not_group_users[$not_group_users_count]['address'] = $mik_bill_users[$j]['address']; |
192 | + | $mik_bill_not_group_users[$not_group_users_count]['address'] = $mik_bill_users[$j]['address']; |
193 | - | $mik_bill_not_group_users[$not_group_users_count]['prim'] = $mik_bill_users[$j]['prim']; |
193 | + | $mik_bill_not_group_users[$not_group_users_count]['prim'] = $mik_bill_users[$j]['prim']; |
194 | - | $mik_bill_not_group_users[$not_group_users_count]['blocked'] = $mik_bill_users[$j]['blocked']; |
194 | + | $mik_bill_not_group_users[$not_group_users_count]['blocked'] = $mik_bill_users[$j]['blocked']; |
195 | - | $mik_bill_not_group_users[$not_group_users_count]['gid'] = $mik_bill_users[$j]['gid']; |
195 | + | $mik_bill_not_group_users[$not_group_users_count]['gid'] = $mik_bill_users[$j]['gid']; |
196 | - | $not_group_users_count++; |
196 | + | $not_group_users_count++; |
197 | - | } |
197 | + | } |
198 | - | } |
198 | + | } |
199 | - | if($_include_groups){//включать только пользователей указанных групп |
199 | + | if($_include_groups){//включать только пользователей указанных групп |
200 | - | $mik_bill_users = $mik_bill_group_users; |
200 | + | $mik_bill_users = $mik_bill_group_users; |
201 | - | }else{//включать только пользователей ВНЕ указанных групп |
201 | + | }else{//включать только пользователей ВНЕ указанных групп |
202 | - | $mik_bill_users = $mik_bill_not_group_users; |
202 | + | $mik_bill_users = $mik_bill_not_group_users; |
203 | - | } |
203 | + | } |
204 | - | //Тут добавлю пользователям базовые пакеты, прописанные в выбранном тарифе |
204 | + | //Тут добавлю пользователям базовые пакеты, прописанные в выбранном тарифе |
205 | - | for($j=0;$j<count($mik_bill_users);$j++){ |
205 | + | for($j=0;$j<count($mik_bill_users);$j++){ |
206 | - | if (in_array($mik_bill_users[$j]['gid'], $BaseGids)) { |
206 | + | if (in_array($mik_bill_users[$j]['gid'], $BaseGids)) { |
207 | - | $mik_bill_users[$j]['services'] = $GidServices[$mik_bill_users[$j]['gid']]; |
207 | + | $mik_bill_users[$j]['services'] = $GidServices[$mik_bill_users[$j]['gid']]; |
208 | - | } |
208 | + | } |
209 | - | } |
209 | + | } |
210 | - | //А вот тут - индивидуальные пакеты, вне выбранного тарифа... |
210 | + | //А вот тут - индивидуальные пакеты, вне выбранного тарифа... |
211 | - | $query = "SELECT * FROM services_users_pairs"; |
211 | + | $query = "SELECT * FROM services_users_pairs"; |
212 | - | mysql_query('SET NAMES utf8'); |
212 | + | mysql_query('SET NAMES utf8'); |
213 | - | trigger_error($query,E_USER_NOTICE); |
213 | + | trigger_error($query,E_USER_NOTICE); |
214 | - | $result = mysql_query($query); |
214 | + | $result = mysql_query($query); |
215 | - | if (!$result) { |
215 | + | if (!$result) { |
216 | - | $message ='Неверный запрос: '.mysql_error()."\n"; |
216 | + | $message ='Неверный запрос: '.mysql_error()."\n"; |
217 | - | $message.='Запрос целиком: '.$query; |
217 | + | $message.='Запрос целиком: '.$query; |
218 | - | fatal_error($message); |
218 | + | fatal_error($message); |
219 | - | } |
219 | + | } |
220 | - | log_save('5) Успешно запросил информацию о пакетах пользователей;',$log_file); |
220 | + | log_save('5) Успешно запросил информацию о пакетах пользователей;',$log_file); |
221 | - | $i=0; |
221 | + | $i=0; |
222 | - | while ($row = mysql_fetch_assoc($result)) { |
222 | + | while ($row = mysql_fetch_assoc($result)) { |
223 | - | for($j=0;$j<count($mik_bill_users);$j++){ |
223 | + | for($j=0;$j<count($mik_bill_users);$j++){ |
224 | - | if ($row['uid']==$mik_bill_users[$j]['uid']) { |
224 | + | if ($row['uid']==$mik_bill_users[$j]['uid']) { |
225 | - | if (!in_array($row['serviceid'], $BaseServices)) { //проверка наличия выбранного сервиса в списке БАЗОВЫХ, если сервис базовый - он добавляется не здесь, а вместе с тарифом... |
225 | + | if (!in_array($row['serviceid'], $BaseServices)) { //проверка наличия выбранного сервиса в списке БАЗОВЫХ, если сервис базовый - он добавляется не здесь, а вместе с тарифом... |
226 | - | if (in_array($row['serviceid'], $AllGidServices[$mik_bill_users[$j]['gid']])) { //проверка наличия выбранного сервиса в списке доступных, если услуга доступна на этом тарифе - тогда тогда добавление проходит... |
226 | + | if (in_array($row['serviceid'], $AllGidServices[$mik_bill_users[$j]['gid']])) { //проверка наличия выбранного сервиса в списке доступных, если услуга доступна на этом тарифе - тогда тогда добавление проходит... |
227 | - | $mik_bill_users[$j]['services'][] = $row['serviceid']; |
227 | + | $mik_bill_users[$j]['services'][] = $row['serviceid']; |
228 | - | } |
228 | + | } |
229 | - | } |
229 | + | } |
230 | - | } |
230 | + | } |
231 | - | } |
231 | + | } |
232 | - | $i++; |
232 | + | $i++; |
233 | - | } |
233 | + | } |
234 | - | //Авторизуюсь на сервере MiddleWare |
234 | + | //Авторизуюсь на сервере MiddleWare |
235 | - | $user = authorize_user ($auth_uri=$_auth_uri, $username=$_username, $password=$_password); |
235 | + | $user = authorize_user ($auth_uri=$_auth_uri, $username=$_username, $password=$_password); |
236 | - | if(empty($user[session_id])){ |
236 | + | if(empty($user[session_id])){ |
237 | - | $message='Авторизация на сервере MiddleWare не прошла.'."\n"; |
237 | + | $message='Авторизация на сервере MiddleWare не прошла.'."\n"; |
238 | - | fatal_error($message); |
238 | + | fatal_error($message); |
239 | - | } |
239 | + | } |
240 | - | log_save('6) Успешно авторизовался на сервере MiddleWare;',$log_file); |
240 | + | log_save('6) Успешно авторизовался на сервере MiddleWare;',$log_file); |
241 | - | # выборка списка абонентов |
241 | + | # выборка списка абонентов |
242 | - | $res = jsonsql_call ("select", array ( |
242 | + | $res = jsonsql_call ("select", array ( |
243 | - | "data" => array ("username", "comment"), |
243 | + | "data" => array ("username", "comment"), |
244 | - | "from" => "subscriber", |
244 | + | "from" => "subscriber", |
245 | - | "where" => array ("eq" => array ("sprofile_id", $_system_profile)) |
245 | + | "where" => array ("eq" => array ("sprofile_id", $_system_profile)) |
246 | - | )); |
246 | + | )); |
247 | - | //убираю из списка синхронизируемых пользователей юзеров с коментарием VIP |
247 | + | |
248 | - | foreach($res as $current_user) |
248 | + | //убираю из списка синхронизируемых пользователей юзеров с коментарием VIP |
249 | - | { |
249 | + | $middleware_users=array(); |
250 | - | if($current_user[1]<>"VIP"){$middleware_users[]['user'] = $current_user[0];} |
250 | + | foreach($res as $current_user) |
251 | - | } |
251 | + | { |
252 | - | //итак имеем две таблицы пользователей, сформирую массивы элементов, которые нужно добавить в MiddleWare, удалить из MiddleWare, а так же массив общих элементов |
252 | + | if($current_user[1] != "VIP") { |
253 | - | $del_from_middleware_elements=array(); |
253 | + | $middleware_users[] = array("user" => $current_user[0]); |
254 | - | for($i=0;$i<count($mik_bill_users);$i++){ |
254 | + | } |
255 | - | $element_present = false; |
255 | + | } |
256 | - | for($j=0;$j<count($middleware_users);$j++){ |
256 | + | |
257 | - | if($mik_bill_users[$i]['user']==$middleware_users[$j]['user']){ |
257 | + | //итак имеем две таблицы пользователей, сформирую массивы элементов, которые нужно добавить в MiddleWare, удалить из MiddleWare, а так же массив общих элементов |
258 | - | $element_present = true; |
258 | + | $del_from_middleware_elements=array(); |
259 | - | $common_elements[] = $mik_bill_users[$i]; |
259 | + | for($i=0;$i<count($mik_bill_users);$i++){ |
260 | - | } |
260 | + | $element_present = false; |
261 | - | } |
261 | + | for($j=0;$j<count($middleware_users);$j++){ |
262 | - | if(!$element_present){ |
262 | + | if($mik_bill_users[$i]['user']==$middleware_users[$j]['user']){ |
263 | - | $add_to_middleware_elements[] = $mik_bill_users[$i]; |
263 | + | $element_present = true; |
264 | - | } |
264 | + | $common_elements[] = $mik_bill_users[$i]; |
265 | - | } |
265 | + | } |
266 | - | for($i=0;$i<count($middleware_users);$i++){ |
266 | + | } |
267 | - | $element_present = false; |
267 | + | if(!$element_present){ |
268 | - | for($j=0;$j<count($mik_bill_users);$j++){ |
268 | + | $add_to_middleware_elements[] = $mik_bill_users[$i]; |
269 | - | if($mik_bill_users[$j]['user']==$middleware_users[$i]['user']){ |
269 | + | } |
270 | - | $element_present = true; |
270 | + | } |
271 | - | } |
271 | + | for($i=0;$i<count($middleware_users);$i++){ |
272 | - | } |
272 | + | $element_present = false; |
273 | - | if(!$element_present){ |
273 | + | for($j=0;$j<count($mik_bill_users);$j++){ |
274 | - | $del_from_middleware_elements[] = $middleware_users[$i]['user']; |
274 | + | if($mik_bill_users[$j]['user']==$middleware_users[$i]['user']){ |
275 | - | } |
275 | + | $element_present = true; |
276 | - | } |
276 | + | } |
277 | - | //итак добавляю пользователей |
277 | + | } |
278 | - | if(count($add_to_middleware_elements)>0){log_save(' Добавил пользователей:',$log_file);} |
278 | + | if(!$element_present){ |
279 | - | for($i=0;$i<count($add_to_middleware_elements);$i++){ |
279 | + | $del_from_middleware_elements[] = $middleware_users[$i]['user']; |
280 | - | $fio = explode(" ",$add_to_middleware_elements[$i]['fio']); |
280 | + | } |
281 | - | $res = jsonsql_call ("insert", array ( |
281 | + | } |
282 | - | "into" => "subscriber", |
282 | + | //итак добавляю пользователей |
283 | - | "columns" => array ("username","password","surname","comment","email","address","phone","first_name","middle_name","max_terminal","sprofile_id"), |
283 | + | if(count($add_to_middleware_elements)>0){log_save(' Добавил пользователей:',$log_file);} |
284 | - | "values" => array ( |
284 | + | for($i=0;$i<count($add_to_middleware_elements);$i++){ |
285 | - | "username" => $add_to_middleware_elements[$i]['user'], |
285 | + | $fio = explode(" ",$add_to_middleware_elements[$i]['fio']); |
286 | - | "password" => $add_to_middleware_elements[$i]['password'], |
286 | + | $res = jsonsql_call ("insert", array ( |
287 | - | "surname" => $fio[0], |
287 | + | "into" => "subscriber", |
288 | - | "comment" => $add_to_middleware_elements[$i]['prim'], |
288 | + | "columns" => array ("username","password","surname","comment","email","address","phone","first_name","middle_name","max_terminal","sprofile_id"), |
289 | - | "email" => "", |
289 | + | "values" => array ( |
290 | - | "address" => $add_to_middleware_elements[$i]['address'], |
290 | + | "username" => $add_to_middleware_elements[$i]['user'], |
291 | - | "phone" => "", |
291 | + | "password" => $add_to_middleware_elements[$i]['password'], |
292 | - | "first_name" => $fio[1], |
292 | + | "surname" => $fio[0], |
293 | - | "middle_name" => $fio[2], |
293 | + | "comment" => $add_to_middleware_elements[$i]['prim'], |
294 | - | "max_terminal" => "3", |
294 | + | "email" => "", |
295 | - | "sprofile_id" => $_system_profile, |
295 | + | "address" => $add_to_middleware_elements[$i]['address'], |
296 | - | ), |
296 | + | "phone" => "", |
297 | - | "returning" => "id" |
297 | + | "first_name" => $fio[1], |
298 | - | )); |
298 | + | "middle_name" => $fio[2], |
299 | - | log_save(' '.$add_to_middleware_elements[$i]['user'].' '.$add_to_middleware_elements[$i]['fio'],$log_file); |
299 | + | "max_terminal" => "3", |
300 | - | $res = jsonsql_call ("insert", array ( |
300 | + | "sprofile_id" => $_system_profile, |
301 | - | "into" => "subscriber_package", |
301 | + | ), |
302 | - | "columns" => array ("subscriber_id", "package_id", "enabled"), |
302 | + | "returning" => "id" |
303 | - | "select" => array ( |
303 | + | )); |
304 | - | "data" => array (array ("s" => "id"), array ("p" => "id"), true), |
304 | + | log_save(' '.$add_to_middleware_elements[$i]['user'].' '.$add_to_middleware_elements[$i]['fio'],$log_file); |
305 | - | "from" => array (array ( |
305 | + | $res = jsonsql_call ("insert", array ( |
306 | - | "table" => "subscriber", "as" => "s" |
306 | + | "into" => "subscriber_package", |
307 | - | ), array ( |
307 | + | "columns" => array ("subscriber_id", "package_id", "enabled"), |
308 | - | "table" => "package", "as" => "p" |
308 | + | "select" => array ( |
309 | - | )), |
309 | + | "data" => array (array ("s" => "id"), array ("p" => "id"), true), |
310 | - | "where" => array ( |
310 | + | "from" => array (array ( |
311 | - | "and" => array (array ( |
311 | + | "table" => "subscriber", "as" => "s" |
312 | - | "eq" => array (array ("s" => "username"), $add_to_middleware_elements[$i]['user']) |
312 | + | ), array ( |
313 | - | ), array ( |
313 | + | "table" => "package", "as" => "p" |
314 | - | "in" => array (array ("p" => "name"), "Базовый", "Стандарт") |
314 | + | )), |
315 | - | )) |
315 | + | "where" => array ( |
316 | - | ) |
316 | + | "and" => array (array ( |
317 | - | ), |
317 | + | "eq" => array (array ("s" => "username"), $add_to_middleware_elements[$i]['user']) |
318 | - | "returning" => "package_id" |
318 | + | ), array ( |
319 | - | )); |
319 | + | "in" => array (array ("p" => "name"), "Базовый", "Стандарт") |
320 | - | log_save(' Добавил пакеты "Базовый" и "Стандарт" пользователю ',$log_file); |
320 | + | )) |
321 | - | } |
321 | + | ) |
322 | - | //вот тут удаляю терминалы удаляемых пользователей |
322 | + | ), |
323 | - | if(count($del_from_middleware_elements)>0){log_save(' Удалил терминалы пользователей:',$log_file);} |
323 | + | "returning" => "package_id" |
324 | - | for($i=0;$i<count($del_from_middleware_elements);$i++){ |
324 | + | )); |
325 | - | $res = jsonsql_call ("delete", array ( |
325 | + | log_save(' Добавил пакеты "Базовый" и "Стандарт" пользователю ',$log_file); |
326 | - | "from" => "terminal", |
326 | + | } |
327 | - | "where" => array ("in" => array ("subscriber_id", array ( |
327 | + | //вот тут удаляю терминалы удаляемых пользователей |
328 | - | "select" => array ( |
328 | + | if(count($del_from_middleware_elements)>0){log_save(' Удалил терминалы пользователей:',$log_file);} |
329 | - | "data" => "id", |
329 | + | for($i=0;$i<count($del_from_middleware_elements);$i++){ |
330 | - | "from" => "subscriber", |
330 | + | $res = jsonsql_call ("delete", array ( |
331 | - | "where" => array ("eq" => array ("username", $del_from_middleware_elements[$i])) |
331 | + | "from" => "terminal", |
332 | - | ) |
332 | + | "where" => array ("in" => array ("subscriber_id", array ( |
333 | - | ))), |
333 | + | "select" => array ( |
334 | - | "returning" => "id" |
334 | + | "data" => "id", |
335 | - | )); |
335 | + | "from" => "subscriber", |
336 | - | log_save(' '.$del_from_middleware_elements[$i],$log_file); |
336 | + | "where" => array ("eq" => array ("username", $del_from_middleware_elements[$i])) |
337 | - | } |
337 | + | ) |
338 | - | //а тут удаляю неугодных пользователей |
338 | + | ))), |
339 | - | if(count($del_from_middleware_elements)>0){log_save(' Удалил пользователей:',$log_file);} |
339 | + | "returning" => "id" |
340 | - | for($i=0;$i<count($del_from_middleware_elements);$i++){ |
340 | + | )); |
341 | - | $res = jsonsql_call ("delete", array ( |
341 | + | log_save(' '.$del_from_middleware_elements[$i],$log_file); |
342 | - | "from" => "subscriber", |
342 | + | } |
343 | - | "where" => array ("eq" => array ("username", $del_from_middleware_elements[$i])), |
343 | + | //а тут удаляю неугодных пользователей |
344 | - | "returning" => "id" |
344 | + | if(count($del_from_middleware_elements)>0){log_save(' Удалил пользователей:',$log_file);} |
345 | - | )); |
345 | + | for($i=0;$i<count($del_from_middleware_elements);$i++){ |
346 | - | log_save(' '.$del_from_middleware_elements[$i],$log_file); |
346 | + | $res = jsonsql_call ("delete", array ( |
347 | - | } |
347 | + | "from" => "subscriber", |
348 | - | //обновляю инфу существующих пользователей |
348 | + | "where" => array ("eq" => array ("username", $del_from_middleware_elements[$i])), |
349 | - | if(count($common_elements)>0){log_save(' Обновил пользователей:'."\n",$log_file);} |
349 | + | "returning" => "id" |
350 | - | for($i=0;$i<count($common_elements);$i++){ |
350 | + | )); |
351 | - | $fio = explode(" ",$common_elements[$i]['fio']); |
351 | + | log_save(' '.$del_from_middleware_elements[$i],$log_file); |
352 | - | $res = jsonsql_call ("update", array ( |
352 | + | } |
353 | - | "table" => "subscriber", |
353 | + | //обновляю инфу существующих пользователей |
354 | - | "set" => array ( |
354 | + | if(count($common_elements)>0){log_save(' Обновил пользователей:'."\n",$log_file);} |
355 | - | "disabled" => false, |
355 | + | for($i=0;$i<count($common_elements);$i++){ |
356 | - | "password" => $common_elements[$i]['password'], |
356 | + | $fio = explode(" ",$common_elements[$i]['fio']); |
357 | - | "surname" => $fio[0], |
357 | + | $res = jsonsql_call ("update", array ( |
358 | - | "comment" => $common_elements[$i]['prim'], |
358 | + | "table" => "subscriber", |
359 | - | "email" => "", |
359 | + | "set" => array ( |
360 | - | "address" => $common_elements[$i]['address'], |
360 | + | "disabled" => false, |
361 | - | "phone" => "", |
361 | + | "password" => $common_elements[$i]['password'], |
362 | - | "first_name" => $fio[1], |
362 | + | "surname" => $fio[0], |
363 | - | "middle_name" => $fio[2], |
363 | + | "comment" => $common_elements[$i]['prim'], |
364 | - | "max_terminal" => "3", |
364 | + | "email" => "", |
365 | - | "sprofile_id" => $_system_profile, |
365 | + | "address" => $common_elements[$i]['address'], |
366 | - | ), |
366 | + | "phone" => "", |
367 | - | "where" => array ("eq" => array ("username", $common_elements[$i]['user'])), |
367 | + | "first_name" => $fio[1], |
368 | - | "returning" => "id" |
368 | + | "middle_name" => $fio[2], |
369 | - | )); |
369 | + | "max_terminal" => "3", |
370 | - | log_save(' '.$common_elements[$i]['user'].' '.$common_elements[$i]['fio']."\n",$log_file); |
370 | + | "sprofile_id" => $_system_profile, |
371 | - | } |
371 | + | ), |
372 | - | //Тут отключу заблокированных пользователей |
372 | + | "where" => array ("eq" => array ("username", $common_elements[$i]['user'])), |
373 | - | for($i=0;$i<count($mik_bill_users);$i++){ |
373 | + | "returning" => "id" |
374 | - | if($mik_bill_users[$i]['blocked']==='1'){ |
374 | + | )); |
375 | - | $res = jsonsql_call ("update", array ( |
375 | + | log_save(' '.$common_elements[$i]['user'].' '.$common_elements[$i]['fio']."\n",$log_file); |
376 | - | "table" => "subscriber", |
376 | + | } |
377 | - | "set" => array ("disabled" => true), |
377 | + | //Тут отключу заблокированных пользователей |
378 | - | "where" => array ("eq" => array ("username", $mik_bill_users[$i]['user'])), |
378 | + | for($i=0;$i<count($mik_bill_users);$i++){ |
379 | - | "returning" => "id" |
379 | + | if($mik_bill_users[$i]['blocked']==='1'){ |
380 | - | )); |
380 | + | $res = jsonsql_call ("update", array ( |
381 | - | // log_save(' Отключил пользователя '.$mik_bill_users[$i]['user'],$log_file); |
381 | + | "table" => "subscriber", |
382 | - | }else{ |
382 | + | "set" => array ("disabled" => true), |
383 | - | $res = jsonsql_call ("update", array ( |
383 | + | "where" => array ("eq" => array ("username", $mik_bill_users[$i]['user'])), |
384 | - | "table" => "subscriber", |
384 | + | "returning" => "id" |
385 | - | "set" => array ("disabled" => false), |
385 | + | )); |
386 | - | "where" => array ("eq" => array ("username", $mik_bill_users[$i]['user'])), |
386 | + | // log_save(' Отключил пользователя '.$mik_bill_users[$i]['user'],$log_file); |
387 | - | "returning" => "id" |
387 | + | }else{ |
388 | - | )); |
388 | + | $res = jsonsql_call ("update", array ( |
389 | - | // log_save(' Включил пользователя '.$mik_bill_users[$i]['user'],$log_file); |
389 | + | "table" => "subscriber", |
390 | - | } |
390 | + | "set" => array ("disabled" => false), |
391 | - | } |
391 | + | "where" => array ("eq" => array ("username", $mik_bill_users[$i]['user'])), |
392 | - | //Выясню текущие подключеные пакеты в мидлвари... |
392 | + | "returning" => "id" |
393 | - | for($i=0;$i<count($mik_bill_users);$i++){ |
393 | + | )); |
394 | - | $subscriber_packages = jsonsql_call ("select", array ( |
394 | + | // log_save(' Включил пользователя '.$mik_bill_users[$i]['user'],$log_file); |
395 | - | "data" => array ("p" => "id"), |
395 | + | } |
396 | - | "from" => array ( |
396 | + | } |
397 | - | array ("table" => "package", "as" => "p"), |
397 | + | //Выясню текущие подключеные пакеты в мидлвари... |
398 | - | array ("join" => "subscriber_package", "join_type" => "inner", "as" => "s2p", |
398 | + | for($i=0;$i<count($mik_bill_users);$i++){ |
399 | - | "on" => array ("eq" => array (array ("s2p" => "package_id"), array ("p" => "id"))) |
399 | + | $subscriber_packages = jsonsql_call ("select", array ( |
400 | - | ), |
400 | + | "data" => array ("p" => "id"), |
401 | - | array ("join" => "subscriber", "join_type" => "inner", "as" => "s", |
401 | + | "from" => array ( |
402 | - | "on" => array ("eq" => array (array ("s2p" => "subscriber_id"), array ("s" => "id"))) |
402 | + | array ("table" => "package", "as" => "p"), |
403 | - | ) |
403 | + | array ("join" => "subscriber_package", "join_type" => "inner", "as" => "s2p", |
404 | - | ), |
404 | + | "on" => array ("eq" => array (array ("s2p" => "package_id"), array ("p" => "id"))) |
405 | - | "where" => array ("eq" => array (array ("s" => "username"), $mik_bill_users[$i]['user'])), |
405 | + | ), |
406 | - | "order_by" => array ("p" => "name") |
406 | + | array ("join" => "subscriber", "join_type" => "inner", "as" => "s", |
407 | - | )); |
407 | + | "on" => array ("eq" => array (array ("s2p" => "subscriber_id"), array ("s" => "id"))) |
408 | - | $middleware_packets[$mik_bill_users[$i]['user']] = $subscriber_packages; |
408 | + | ) |
409 | - | //Ну и заодно в этом цикле расчитаю массив билинговский... |
409 | + | ), |
410 | - | if(empty($mik_bill_users[$i]['services'])){ |
410 | + | "where" => array ("eq" => array (array ("s" => "username"), $mik_bill_users[$i]['user'])), |
411 | - | $mikbill_user_packets[$mik_bill_users[$i]['user']] = $default_packets; |
411 | + | "order_by" => array ("p" => "name") |
412 | - | }else{ |
412 | + | )); |
413 | - | $mikbill_user_packets[$mik_bill_users[$i]['user']] = array(); |
413 | + | $middleware_packets[$mik_bill_users[$i]['user']] = $subscriber_packages; |
414 | - | foreach ($mik_bill_users[$i]['services'] as $v) { |
414 | + | //Ну и заодно в этом цикле расчитаю массив билинговский... |
415 | - | $mikbill_user_packets[$mik_bill_users[$i]['user']] = array_merge($mikbill_user_packets[$mik_bill_users[$i]['user']], $mikbill_packets[$v]); |
415 | + | if(empty($mik_bill_users[$i]['services'])){ |
416 | - | } |
416 | + | $mikbill_user_packets[$mik_bill_users[$i]['user']] = $default_packets; |
417 | - | $mikbill_user_packets[$mik_bill_users[$i]['user']] = array_unique($mikbill_user_packets[$mik_bill_users[$i]['user']]); |
417 | + | }else{ |
418 | - | } |
418 | + | $mikbill_user_packets[$mik_bill_users[$i]['user']] = array(); |
419 | - | } |
419 | + | foreach ($mik_bill_users[$i]['services'] as $v) { |
420 | - | for($i=0;$i<count($mik_bill_users);$i++){ |
420 | + | $mikbill_user_packets[$mik_bill_users[$i]['user']] = array_merge($mikbill_user_packets[$mik_bill_users[$i]['user']], $mikbill_packets[$v]); |
421 | - | $DeletingPackets[$mik_bill_users[$i]['user']] = array_values(array_diff($middleware_packets[$mik_bill_users[$i]['user']],$mikbill_user_packets[$mik_bill_users[$i]['user']])); |
421 | + | } |
422 | - | $AddingPackets[$mik_bill_users[$i]['user']] = array_values(array_diff($mikbill_user_packets[$mik_bill_users[$i]['user']],$middleware_packets[$mik_bill_users[$i]['user']])); |
422 | + | $mikbill_user_packets[$mik_bill_users[$i]['user']] = array_unique($mikbill_user_packets[$mik_bill_users[$i]['user']]); |
423 | - | } |
423 | + | } |
424 | - | log_save(' Добавление пакетов пользователям:'."\n",$log_file); |
424 | + | } |
425 | - | for($i=0;$i<count($mik_bill_users);$i++){ |
425 | + | for($i=0;$i<count($mik_bill_users);$i++){ |
426 | - | if(!empty($AddingPackets[$mik_bill_users[$i]['user']])){ |
426 | + | $DeletingPackets[$mik_bill_users[$i]['user']] = array_values(array_diff($middleware_packets[$mik_bill_users[$i]['user']],$mikbill_user_packets[$mik_bill_users[$i]['user']])); |
427 | - | $res = jsonsql_call ("insert", array ( |
427 | + | $AddingPackets[$mik_bill_users[$i]['user']] = array_values(array_diff($mikbill_user_packets[$mik_bill_users[$i]['user']],$middleware_packets[$mik_bill_users[$i]['user']])); |
428 | - | "into" => "subscriber_package", |
428 | + | } |
429 | - | "columns" => array ("subscriber_id", "package_id", "enabled"), |
429 | + | log_save(' Добавление пакетов пользователям:'."\n",$log_file); |
430 | - | "select" => array ( |
430 | + | for($i=0;$i<count($mik_bill_users);$i++){ |
431 | - | "data" => array (array ("s" => "id"), array ("p" => "id"), true), |
431 | + | if(!empty($AddingPackets[$mik_bill_users[$i]['user']])){ |
432 | - | "from" => array (array ( |
432 | + | $res = jsonsql_call ("insert", array ( |
433 | - | "table" => "subscriber", "as" => "s" |
433 | + | "into" => "subscriber_package", |
434 | - | ), array ( |
434 | + | "columns" => array ("subscriber_id", "package_id", "enabled"), |
435 | - | "table" => "package", "as" => "p" |
435 | + | "select" => array ( |
436 | - | )), |
436 | + | "data" => array (array ("s" => "id"), array ("p" => "id"), true), |
437 | - | "where" => array ( |
437 | + | "from" => array (array ( |
438 | - | "and" => array (array ( |
438 | + | "table" => "subscriber", "as" => "s" |
439 | - | "eq" => array (array ("s" => "username"), $mik_bill_users[$i]['user']) |
439 | + | ), array ( |
440 | - | ), array ( |
440 | + | "table" => "package", "as" => "p" |
441 | - | "in" => array (array ("p" => "id"), $AddingPackets[$mik_bill_users[$i]['user']]) |
441 | + | )), |
442 | - | )) |
442 | + | "where" => array ( |
443 | - | ) |
443 | + | "and" => array (array ( |
444 | - | ), |
444 | + | "eq" => array (array ("s" => "username"), $mik_bill_users[$i]['user']) |
445 | - | "returning" => "package_id" |
445 | + | ), array ( |
446 | - | )); |
446 | + | "in" => array (array ("p" => "id"), $AddingPackets[$mik_bill_users[$i]['user']]) |
447 | - | log_save(' У пользователя '.$mik_bill_users[$i]['user'].' прошло успешно'."\n",$log_file); |
447 | + | )) |
448 | - | }else{ |
448 | + | ) |
449 | - | log_save(' У пользователя '.$mik_bill_users[$i]['user'].' не требуется'."\n",$log_file); |
449 | + | ), |
450 | - | } |
450 | + | "returning" => "package_id" |
451 | - | } |
451 | + | )); |
452 | - | log_save(' Удаление пакетов у пользователей:'."\n",$log_file); |
452 | + | log_save(' У пользователя '.$mik_bill_users[$i]['user'].' прошло успешно'."\n",$log_file); |
453 | - | for($i=0;$i<count($mik_bill_users);$i++){ |
453 | + | }else{ |
454 | - | if(!empty($DeletingPackets[$mik_bill_users[$i]['user']])){ |
454 | + | log_save(' У пользователя '.$mik_bill_users[$i]['user'].' не требуется'."\n",$log_file); |
455 | - | $res = jsonsql_call ("delete", array ( |
455 | + | } |
456 | - | "from" => "subscriber_package", |
456 | + | } |
457 | - | "where" => array ("and" => array ( |
457 | + | log_save(' Удаление пакетов у пользователей:'."\n",$log_file); |
458 | - | array ("in" => array ("subscriber_id", array ( |
458 | + | for($i=0;$i<count($mik_bill_users);$i++){ |
459 | - | "select" => array ( |
459 | + | if(!empty($DeletingPackets[$mik_bill_users[$i]['user']])){ |
460 | - | "data" => "id", |
460 | + | $res = jsonsql_call ("delete", array ( |
461 | - | "from" => "subscriber", |
461 | + | "from" => "subscriber_package", |
462 | - | "where" => array ("eq" => array ("username", $mik_bill_users[$i]['user'])) |
462 | + | "where" => array ("and" => array ( |
463 | - | ) |
463 | + | array ("in" => array ("subscriber_id", array ( |
464 | - | ))), array ("in" => array ("package_id", array ( |
464 | + | "select" => array ( |
465 | - | "select" => array ( |
465 | + | "data" => "id", |
466 | - | "data" => "id", |
466 | + | "from" => "subscriber", |
467 | - | "from" => "package", |
467 | + | "where" => array ("eq" => array ("username", $mik_bill_users[$i]['user'])) |
468 | - | "where" => array ("in" => array ("id", $DeletingPackets[$mik_bill_users[$i]['user']])) |
468 | + | ) |
469 | - | ) |
469 | + | ))), array ("in" => array ("package_id", array ( |
470 | - | ))) |
470 | + | "select" => array ( |
471 | - | )), |
471 | + | "data" => "id", |
472 | - | "returning" => "package_id" |
472 | + | "from" => "package", |
473 | - | )); |
473 | + | "where" => array ("in" => array ("id", $DeletingPackets[$mik_bill_users[$i]['user']])) |
474 | - | log_save(' У пользователя '.$mik_bill_users[$i]['user'].' прошло успешно'."\n",$log_file); |
474 | + | ) |
475 | - | }else{ |
475 | + | ))) |
476 | - | log_save(' У пользователя '.$mik_bill_users[$i]['user'].' не требуется'."\n",$log_file); |
476 | + | )), |
477 | - | } |
477 | + | "returning" => "package_id" |
478 | - | } |
478 | + | )); |
479 | - | //if(ob_get_length()>0){ |
479 | + | log_save(' У пользователя '.$mik_bill_users[$i]['user'].' прошло успешно'."\n",$log_file); |
480 | - | // log_save('7) Предупреждения, которые возникли в процессе выполнения кода: ',$log_file); |
480 | + | }else{ |
481 | - | // log_save(ob_get_contents(),$log_file); |
481 | + | log_save(' У пользователя '.$mik_bill_users[$i]['user'].' не требуется'."\n",$log_file); |
482 | - | // log_save('7) Всем спасибо, все свободны :)',$log_file); |
482 | + | } |
483 | - | //}else{ |
483 | + | } |
484 | - | log_save('7) Всем спасибо, все свободны :)',$log_file); |
484 | + | //if(ob_get_length()>0){ |
485 | - | //} |
485 | + | // log_save('7) Предупреждения, которые возникли в процессе выполнения кода: ',$log_file); |
486 | - | ob_end_clean(); |
486 | + | // log_save(ob_get_contents(),$log_file); |
487 | - | echo str_replace(array("\r","\n"),"<br>\n",file_get_contents($log_file)); |
487 | + | // log_save('7) Всем спасибо, все свободны :)',$log_file); |
488 | - | if($mail_to_admin){smtpmail($mail_to,$mail_subj,str_replace(array("\r","\n"),"<br>",str_replace(" ", " ", file_get_contents($log_file))),$mail_headers);} |
488 | + | //}else{ |
489 | - | //всё... код окончен, дальше чисто использумые функции... |
489 | + | log_save('7) Всем спасибо, все свободны :)',$log_file); |
490 | - | function fatal_error($message){ |
490 | + | //} |
491 | - | global $log_file,$mail_to_admin,$mail_to,$mail_subj,$mail_headers; |
491 | + | ob_end_clean(); |
492 | - | log_save('FATAL ERROR: '.$message,$log_file); |
492 | + | echo str_replace(array("\r","\n"),"<br>\n",file_get_contents($log_file)); |
493 | - | if($mail_to_admin){smtpmail($mail_to,$mail_subj,str_replace(array("\r","\n"),"<br>",file_get_contents($log_file)),$mail_headers);} |
493 | + | if($mail_to_admin){smtpmail($mail_to,$mail_subj,str_replace(array("\r","\n"),"<br>",str_replace(" ", " ", file_get_contents($log_file))),$mail_headers);} |
494 | - | die($message); |
494 | + | //всё... код окончен, дальше чисто использумые функции... |
495 | - | } |
495 | + | function fatal_error($message){ |
496 | - | |
496 | + | global $log_file,$mail_to_admin,$mail_to,$mail_subj,$mail_headers; |
497 | - | function log_save($logtext, $log_file){echo $logtext.'<br>'; |
497 | + | log_save('FATAL ERROR: '.$message,$log_file); |
498 | - | $h = fopen($log_file , 'ab'); |
498 | + | if($mail_to_admin){smtpmail($mail_to,$mail_subj,str_replace(array("\r","\n"),"<br>",file_get_contents($log_file)),$mail_headers);} |
499 | - | fwrite($h, $logtext . "\n"); |
499 | + | die($message); |
500 | - | fclose($h); |
500 | + | } |
501 | - | } |
501 | + | |
502 | - | |
502 | + | function log_save($logtext, $log_file){echo $logtext.'<br>'; |
503 | - | function smtpmail($mail_to, $subject, $message, $headers='') { |
503 | + | $h = fopen($log_file , 'ab'); |
504 | - | global $config; |
504 | + | fwrite($h, $logtext . "\n"); |
505 | - | $SEND = "Date: ".date("D, d M Y H:i:s") . " UT\r\n"; |
505 | + | fclose($h); |
506 | - | $SEND .= 'Subject: =?'.$config['smtp_charset'].'?B?'.base64_encode($subject)."=?=\r\n"; |
506 | + | } |
507 | - | if ($headers) $SEND .= $headers."\r\n\r\n"; |
507 | + | |
508 | - | else |
508 | + | function smtpmail($mail_to, $subject, $message, $headers='') { |
509 | - | { |
509 | + | global $config; |
510 | - | $SEND .= "Reply-To: ".$config['smtp_username']."\r\n"; |
510 | + | $SEND = "Date: ".date("D, d M Y H:i:s") . " UT\r\n"; |
511 | - | $SEND .= "MIME-Version: 1.0\r\n"; |
511 | + | $SEND .= 'Subject: =?'.$config['smtp_charset'].'?B?'.base64_encode($subject)."=?=\r\n"; |
512 | - | $SEND .= "Content-Type: text/plain; charset=\"".$config['smtp_charset']."\"\r\n"; |
512 | + | if ($headers) $SEND .= $headers."\r\n\r\n"; |
513 | - | $SEND .= "Content-Transfer-Encoding: 8bit\r\n"; |
513 | + | else |
514 | - | $SEND .= "From: \"".$config['smtp_from']."\" <".$config['smtp_username'].">\r\n"; |
514 | + | { |
515 | - | $SEND .= "To: $mail_to <$mail_to>\r\n"; |
515 | + | $SEND .= "Reply-To: ".$config['smtp_username']."\r\n"; |
516 | - | $SEND .= "X-Priority: 3\r\n\r\n"; |
516 | + | $SEND .= "MIME-Version: 1.0\r\n"; |
517 | - | } |
517 | + | $SEND .= "Content-Type: text/plain; charset=\"".$config['smtp_charset']."\"\r\n"; |
518 | - | $SEND .= $message."\r\n"; |
518 | + | $SEND .= "Content-Transfer-Encoding: 8bit\r\n"; |
519 | - | if( !$socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 30) ) { |
519 | + | $SEND .= "From: \"".$config['smtp_from']."\" <".$config['smtp_username'].">\r\n"; |
520 | - | if ($config['smtp_debug']) echo $errno."<br>".$errstr; |
520 | + | $SEND .= "To: $mail_to <$mail_to>\r\n"; |
521 | - | return false; |
521 | + | $SEND .= "X-Priority: 3\r\n\r\n"; |
522 | - | } |
522 | + | } |
523 | - | |
523 | + | $SEND .= $message."\r\n"; |
524 | - | if (!server_parse($socket, "220", __LINE__)) return false; |
524 | + | if( !$socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 30) ) { |
525 | - | |
525 | + | if ($config['smtp_debug']) echo $errno."<br>".$errstr; |
526 | - | fputs($socket, "HELO " . $config['smtp_host'] . "\r\n"); |
526 | + | return false; |
527 | - | if (!server_parse($socket, "250", __LINE__)) { |
527 | + | } |
528 | - | if ($config['smtp_debug']) echo '<p>Не могу отправить HELO!</p>'; |
528 | + | |
529 | - | fclose($socket); |
529 | + | if (!server_parse($socket, "220", __LINE__)) return false; |
530 | - | return false; |
530 | + | |
531 | - | } |
531 | + | fputs($socket, "HELO " . $config['smtp_host'] . "\r\n"); |
532 | - | fputs($socket, "AUTH LOGIN\r\n"); |
532 | + | if (!server_parse($socket, "250", __LINE__)) { |
533 | - | if (!server_parse($socket, "334", __LINE__)) { |
533 | + | if ($config['smtp_debug']) echo '<p>Не могу отправить HELO!</p>'; |
534 | - | if ($config['smtp_debug']) echo '<p>Не могу найти ответ на запрос авторизаци.</p>'; |
534 | + | fclose($socket); |
535 | - | fclose($socket); |
535 | + | return false; |
536 | - | return false; |
536 | + | } |
537 | - | } |
537 | + | fputs($socket, "AUTH LOGIN\r\n"); |
538 | - | fputs($socket, base64_encode($config['smtp_username']) . "\r\n"); |
538 | + | if (!server_parse($socket, "334", __LINE__)) { |
539 | - | if (!server_parse($socket, "334", __LINE__)) { |
539 | + | if ($config['smtp_debug']) echo '<p>Не могу найти ответ на запрос авторизаци.</p>'; |
540 | - | if ($config['smtp_debug']) echo '<p>Логин авторизации не был принят сервером!</p>'; |
540 | + | fclose($socket); |
541 | - | fclose($socket); |
541 | + | return false; |
542 | - | return false; |
542 | + | } |
543 | - | } |
543 | + | fputs($socket, base64_encode($config['smtp_username']) . "\r\n"); |
544 | - | fputs($socket, base64_encode($config['smtp_password']) . "\r\n"); |
544 | + | if (!server_parse($socket, "334", __LINE__)) { |
545 | - | if (!server_parse($socket, "235", __LINE__)) { |
545 | + | if ($config['smtp_debug']) echo '<p>Логин авторизации не был принят сервером!</p>'; |
546 | - | if ($config['smtp_debug']) echo '<p>Пароль не был принят сервером как верный! Ошибка авторизации!</p>'; |
546 | + | fclose($socket); |
547 | - | fclose($socket); |
547 | + | return false; |
548 | - | return false; |
548 | + | } |
549 | - | } |
549 | + | fputs($socket, base64_encode($config['smtp_password']) . "\r\n"); |
550 | - | fputs($socket, "MAIL FROM: <".$config['smtp_username'].">\r\n"); |
550 | + | if (!server_parse($socket, "235", __LINE__)) { |
551 | - | if (!server_parse($socket, "250", __LINE__)) { |
551 | + | if ($config['smtp_debug']) echo '<p>Пароль не был принят сервером как верный! Ошибка авторизации!</p>'; |
552 | - | if ($config['smtp_debug']) echo '<p>Не могу отправить комманду MAIL FROM: </p>'; |
552 | + | fclose($socket); |
553 | - | fclose($socket); |
553 | + | return false; |
554 | - | return false; |
554 | + | } |
555 | - | } |
555 | + | fputs($socket, "MAIL FROM: <".$config['smtp_username'].">\r\n"); |
556 | - | fputs($socket, "RCPT TO: <" . $mail_to . ">\r\n"); |
556 | + | if (!server_parse($socket, "250", __LINE__)) { |
557 | - | |
557 | + | if ($config['smtp_debug']) echo '<p>Не могу отправить комманду MAIL FROM: </p>'; |
558 | - | if (!server_parse($socket, "250", __LINE__)) { |
558 | + | fclose($socket); |
559 | - | if ($config['smtp_debug']) echo '<p>Не могу отправить комманду RCPT TO: </p>'; |
559 | + | return false; |
560 | - | fclose($socket); |
560 | + | } |
561 | - | return false; |
561 | + | fputs($socket, "RCPT TO: <" . $mail_to . ">\r\n"); |
562 | - | } |
562 | + | |
563 | - | fputs($socket, "DATA\r\n"); |
563 | + | if (!server_parse($socket, "250", __LINE__)) { |
564 | - | |
564 | + | if ($config['smtp_debug']) echo '<p>Не могу отправить комманду RCPT TO: </p>'; |
565 | - | if (!server_parse($socket, "354", __LINE__)) { |
565 | + | fclose($socket); |
566 | - | if ($config['smtp_debug']) echo '<p>Не могу отправить комманду DATA</p>'; |
566 | + | return false; |
567 | - | fclose($socket); |
567 | + | } |
568 | - | return false; |
568 | + | fputs($socket, "DATA\r\n"); |
569 | - | } |
569 | + | |
570 | - | fputs($socket, $SEND."\r\n.\r\n"); |
570 | + | if (!server_parse($socket, "354", __LINE__)) { |
571 | - | |
571 | + | if ($config['smtp_debug']) echo '<p>Не могу отправить комманду DATA</p>'; |
572 | - | if (!server_parse($socket, "250", __LINE__)) { |
572 | + | fclose($socket); |
573 | - | if ($config['smtp_debug']) echo '<p>Не смог отправить тело письма. Письмо не было отправленно!</p>'; |
573 | + | return false; |
574 | - | fclose($socket); |
574 | + | } |
575 | - | return false; |
575 | + | fputs($socket, $SEND."\r\n.\r\n"); |
576 | - | } |
576 | + | |
577 | - | fputs($socket, "QUIT\r\n"); |
577 | + | if (!server_parse($socket, "250", __LINE__)) { |
578 | - | fclose($socket); |
578 | + | if ($config['smtp_debug']) echo '<p>Не смог отправить тело письма. Письмо не было отправленно!</p>'; |
579 | - | return TRUE; |
579 | + | fclose($socket); |
580 | - | } |
580 | + | return false; |
581 | - | |
581 | + | } |
582 | - | function server_parse($socket, $response, $line = __LINE__) { |
582 | + | fputs($socket, "QUIT\r\n"); |
583 | - | global $config; |
583 | + | fclose($socket); |
584 | - | $server_response=''; |
584 | + | return TRUE; |
585 | - | while (@substr($server_response, 3, 1) != ' ') { |
585 | + | } |
586 | - | if (!($server_response = fgets($socket, 256))) { |
586 | + | |
587 | - | if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>"; |
587 | + | function server_parse($socket, $response, $line = __LINE__) { |
588 | - | return false; |
588 | + | global $config; |
589 | - | } |
589 | + | $server_response=''; |
590 | - | } |
590 | + | while (@substr($server_response, 3, 1) != ' ') { |
591 | - | if (!(substr($server_response, 0, 3) == $response)) { |
591 | + | if (!($server_response = fgets($socket, 256))) { |
592 | - | if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>"; |
592 | + | if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>"; |
593 | - | return false; |
593 | + | return false; |
594 | - | } |
594 | + | } |
595 | - | return true; |
595 | + | } |
596 | - | } |
596 | + | if (!(substr($server_response, 0, 3) == $response)) { |
597 | - | |
597 | + | if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>"; |
598 | - | function send ($url, $data, $extra_headers=null) { |
598 | + | return false; |
599 | - | $ch = curl_init (); |
599 | + | } |
600 | - | curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10); |
600 | + | return true; |
601 | - | curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); |
601 | + | } |
602 | - | curl_setopt ($ch, CURLOPT_TIMEOUT, 10); |
602 | + | |
603 | - | curl_setopt ($ch, CURLOPT_URL, $url); |
603 | + | function send ($url, $data, $extra_headers=null) { |
604 | - | curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false); |
604 | + | $ch = curl_init (); |
605 | - | curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false); |
605 | + | curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10); |
606 | - | curl_setopt ($ch, CURLOPT_POST, true); |
606 | + | curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); |
607 | - | curl_setopt ($ch, CURLOPT_POSTFIELDS, $data); |
607 | + | curl_setopt ($ch, CURLOPT_TIMEOUT, 10); |
608 | - | if (isset ($extra_headers)) { |
608 | + | curl_setopt ($ch, CURLOPT_URL, $url); |
609 | - | curl_setopt ($ch, CURLOPT_HTTPHEADER, $extra_headers); |
609 | + | curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false); |
610 | - | } |
610 | + | curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false); |
611 | - | $content = curl_exec ($ch); |
611 | + | curl_setopt ($ch, CURLOPT_POST, true); |
612 | - | $http_code = curl_getinfo ($ch, CURLINFO_HTTP_CODE); |
612 | + | curl_setopt ($ch, CURLOPT_POSTFIELDS, $data); |
613 | - | if ($content === false) { |
613 | + | if (isset ($extra_headers)) { |
614 | - | $err_msg = "HTTP error: $http_code (" . curl_error($ch) . ')' . '\n'; |
614 | + | curl_setopt ($ch, CURLOPT_HTTPHEADER, $extra_headers); |
615 | - | echo $err_msg; |
615 | + | } |
616 | - | throw new Exception ($err_msg); |
616 | + | $content = curl_exec ($ch); |
617 | - | } |
617 | + | $http_code = curl_getinfo ($ch, CURLINFO_HTTP_CODE); |
618 | - | if ($http_code != 200) { |
618 | + | if ($content === false) { |
619 | - | $err_msg = "HTTP request failed ($http_code)\n"; |
619 | + | $err_msg = "HTTP error: $http_code (" . curl_error($ch) . ')' . '\n'; |
620 | - | echo $err_msg; |
620 | + | echo $err_msg; |
621 | - | throw new Exception ($err_msg); |
621 | + | throw new Exception ($err_msg); |
622 | - | } |
622 | + | } |
623 | - | curl_close ($ch); |
623 | + | if ($http_code != 200) { |
624 | - | return $content; |
624 | + | $err_msg = "HTTP request failed ($http_code)\n"; |
625 | - | } |
625 | + | echo $err_msg; |
626 | - | |
626 | + | throw new Exception ($err_msg); |
627 | - | function jsonrpc_call ($url, $method, $params, $extra_headers=null) { |
627 | + | } |
628 | - | static $req_id = 1; |
628 | + | curl_close ($ch); |
629 | - | $req = array ( |
629 | + | return $content; |
630 | - | "jsonrpc" => '2.0', |
630 | + | } |
631 | - | "id" => $req_id++, |
631 | + | |
632 | - | "method" => $method, |
632 | + | function jsonrpc_call ($url, $method, $params, $extra_headers=null) { |
633 | - | "params" => $params |
633 | + | static $req_id = 1; |
634 | - | ); |
634 | + | $req = array ( |
635 | - | $req = json_encode ($req); |
635 | + | "jsonrpc" => '2.0', |
636 | - | $res = send ($url, $req, $extra_headers=$extra_headers); |
636 | + | "id" => $req_id++, |
637 | - | #echo $res; |
637 | + | "method" => $method, |
638 | - | $res = json_decode ($res, true); |
638 | + | "params" => $params |
639 | - | if (!isset ($res)) { |
639 | + | ); |
640 | - | echo "error: not result\n"; |
640 | + | $req = json_encode ($req); |
641 | - | return null; |
641 | + | $res = send ($url, $req, $extra_headers=$extra_headers); |
642 | - | } else if (!array_key_exists ('result', $res) || !isset ($res ['result'])) { |
642 | + | #echo $res; |
643 | - | print_r ($res ['error']); |
643 | + | $res = json_decode ($res, true); |
644 | - | return null; |
644 | + | if (!isset ($res)) { |
645 | - | } else { |
645 | + | echo "error: not result\n"; |
646 | - | return $res ['result']; |
646 | + | return null; |
647 | - | } |
647 | + | } else if (!array_key_exists ('result', $res) || !isset ($res ['result'])) { |
648 | - | return $res; |
648 | + | print_r ($res ['error']); |
649 | - | } |
649 | + | return null; |
650 | - | |
650 | + | } else { |
651 | - | function jsonsql_call ($cmd, $params) { |
651 | + | return $res ['result']; |
652 | - | global $_jsonsql_uri, $_iptvportal_header; |
652 | + | } |
653 | - | return jsonrpc_call ($_jsonsql_uri, $cmd, $params, $extra_headers=$_iptvportal_header); |
653 | + | return $res; |
654 | - | } |
654 | + | } |
655 | - | |
655 | + | |
656 | - | function authorize_user ($auth_uri, $username, $password) { |
656 | + | function jsonsql_call ($cmd, $params) { |
657 | - | global $_iptvportal_header; |
657 | + | global $_jsonsql_uri, $_iptvportal_header; |
658 | - | $res = jsonrpc_call ($auth_uri, $cmd="authorize_user", $params=array ( |
658 | + | return jsonrpc_call ($_jsonsql_uri, $cmd, $params, $extra_headers=$_iptvportal_header); |
659 | - | 'username' => $username, |
659 | + | } |
660 | - | 'password' => $password |
660 | + | |
661 | - | )); |
661 | + | function authorize_user ($auth_uri, $username, $password) { |
662 | - | if (isset ($res) && array_key_exists ('session_id', $res)) { |
662 | + | global $_iptvportal_header; |
663 | - | $_iptvportal_header = array ('Iptvportal-Authorization: ' . 'sessionid=' . $res ['session_id']); |
663 | + | $res = jsonrpc_call ($auth_uri, $cmd="authorize_user", $params=array ( |
664 | - | } |
664 | + | 'username' => $username, |
665 | - | return $res; |
665 | + | 'password' => $password |
666 | - | } |
666 | + | )); |
667 | if (isset ($res) && array_key_exists ('session_id', $res)) { | |
668 | $_iptvportal_header = array ('Iptvportal-Authorization: ' . 'sessionid=' . $res ['session_id']); | |
669 | } | |
670 | return $res; | |
671 | } | |
672 | ?> |