madf 279 Posted 2012-06-08 05:02:43 Share Posted 2012-06-08 05:02:43 sgconf из PATH доступен? Link to post Share on other sites
nlo 0 Posted 2012-06-08 14:24:56 Share Posted 2012-06-08 14:24:56 sgconf из PATH доступен? Естественно Пример ввожу переменные непосредственно в скрипте messages всё работает вот так: $login = "login"; $param = "tariff"; $oldValue = "admin"; $newValue = "super"; Ну всё прямо идеально срабатывает отправляет в авторизатор Почему тогда переменные заданные из файлов как написано выше не работают? Link to post Share on other sites
madf 279 Posted 2012-06-10 10:57:03 Share Posted 2012-06-10 10:57:03 Вікиньте промежуточное сохранение данных в файл, оно там ни к чему. И покажите все свои скрипты в текущем виде. Link to post Share on other sites
nlo 0 Posted 2012-06-10 15:52:26 Share Posted 2012-06-10 15:52:26 Вікиньте промежуточное сохранение данных в файл, оно там ни к чему. И покажите все свои скрипты в текущем виде. OnChange: #! /bin/sh login=$1 param=$2 oldValue=$3 newValue=$4 #Записываем переменные по файлам echo $login >/etc/stargazer/tmp/login.ini echo $param >/etc/stargazer/tmp/param.ini echo $oldValue >/etc/stargazer/tmp/oldValue.ini echo $newValue >/etc/stargazer/tmp/newValue.ini #Вызываем процедуру отправки /etc/stargazer/messages #Записываем в лог echo "User: '$login'. Parameter $param changed from '$oldValue' to '$newValue'" >> /var/log/stg/users.chg.log messages: #!/usr/bin/php <?php mysql_connect('localhost','stg','passwd'); mysql_select_db('stg'); putenv('LANG=ru_RU.UTF-8'); //Читаем предварительно записанные переменные из файла $use=fopen("/etc/stargazer/tmp/login.ini","r");//открытие файла $login=fread($use,100);//чтение данных fclose($use);//закрытие файла $clean = trim($login, " trx0Bn0"); $use=fopen("/etc/stargazer/tmp/param.ini","r");//открытие файла $param=fread($use,100);//чтение данных fclose($use);//закрытие файла $clean = trim($param, " trx0Bn0"); $use=fopen("/etc/stargazer/tmp/oldValue.ini","r");//открытие файла $oldValue=fread($use,100);//чтение данных fclose($use);//закрытие файла $clean = trim($oldValue, " trx0Bn0"); $use=fopen("/etc/stargazer/tmp/newValue.ini","r");//открытие файла $newValue=fread($use,100);//чтение данных fclose($use);//закрытие файла $clean = trim($newValue, " trx0Bn0"); $MSG = ""; echo "Переменные заданы идём дальше n"; echo "login= $login n"; echo "param= $param n"; echo "oldValue= $oldValue n"; echo "newValue= $newValue n"; echo "MSG= $MSG n"; $query = mysql_query('select t.`Fee` as `Fee`, t.`name` as `TariffName`,u.`Email` as `Email`, u.`Credit` as `Credit` from `users` as u LEFT JOIN `tariffs` as t ON t.`name` = u.`Tariff` where u.`Login`="' . $login . '"'); $result = mysql_fetch_assoc($query); if ($param == 'tariff') { $MSG = "$MSG Ваш тариф изменен с '$oldValue' на '$newValue', стоимостью '".$result['Fee']."' руб. за месяц.n"; echo "До сюда>>> tariff дошло!"; echo "$MSG"; } if ($param == 'cash') { if ($oldValue < $newValue) { $MSG = "$MSG Ваш баланс увеличен на: ".($newValue - $oldValue)." руб., и теперь составляет $newValue руб.n"; } if ($newValue < 50) { $MSG = "$MSG Обратите внимание на вашем балансе осталось $newValue руб.!n"; } } if ($param == 'credit') { $MSG = "$MSG Ваш кредитный лимит изменен с $oldValue руб. до $newValue руб.n"; } if ($param == 'credit') { if ($MSG != "") { $MSG = "$login, здравствуйте!nn$MSGn C уважением, Администратор сети."; exec('sgconf set -s localhost -p 5555 -a admin -w passwd -u ' . $login . ' -m "' . $MSG . '"'); if ($result['Email'] != "") { mail($result['Email'], 'Billing system', $MSG); } } } ?> Link to post Share on other sites
madf 279 Posted 2012-06-10 17:28:02 Share Posted 2012-06-10 17:28:02 Вот что у меня получилось. OnChange: #! /bin/sh login=$1 param=$2 oldValue=$3 newValue=$4 ./messages $login $param $oldValue $newValue messages: #!/usr/bin/php <?php $login = $argv[1]; $param = $argv[2]; $oldValue = $argv[3]; $newValue = $argv[4]; $msg = ''; if ($param == 'tariff') $msg = "Ваш тариф изменен с '$oldValue' на '$newValue'.n"; else if ($param == 'cash') { if ($oldValue < $newValue) { $msg = "Ваш баланс увеличен на: ".($newValue - $oldValue)." руб., и теперь составляет $newValue руб.n"; } else if ($newValue < 50) { $msg = "Обратите внимание на вашем балансе осталось $newValue руб.!n"; } } else if ($param == 'credit') { $msg = "Ваш кредитный лимит изменен с $oldValue руб. до $newValue руб.n"; } if ($msg != '') { $msg = "$login, здравствуйте!nn$msgn C уважением, Администратор сети."; echo("~/Projects/STG/stg-dev/projects/sgconf/sgconf set -s localhost -p 5558 -a admin -w 123456 -u $login -m '$msg'"); exec("~/Projects/STG/stg-dev/projects/sgconf/sgconf set -s localhost -p 5558 -a admin -w 123456 -u $login -m '$msg'"); /*if ($result['Email'] != "") { mail($result['Email'], 'Billing system', $msg); }*/ } ?> Запускаем: $ ./OnChange test cash 115 15 ~/Projects/STG/stg-dev/projects/sgconf/sgconf set -s localhost -p 5558 -a admin -w 123456 -u test -m 'test, здравствуйте! Обратите внимание на вашем балансе осталось 15 руб.! C уважением, Администратор сети.' Проверяем: $ sudo iconv -f cp1251 /var/stargazer/users/test/messages/1339348835763092 Пароль: 1 0 1339348835 0 0 0 test, здравствуйте! Обратите внимание на вашем балансе осталось 15 руб.! C уважением, Администратор сети. Проверяем (qia, версия из транка): http://imagebin.org/215865 Все прекрасно работает! Link to post Share on other sites
nlo 0 Posted 2012-06-10 17:57:20 Share Posted 2012-06-10 17:57:20 Спасибо при запуске с командной строки работает но при изменении тарифа через веб админку всё равно ничего не отправляется вручную запуская ./OnChange user tariff admin maxi Всё работает отправляется Я уже ничего не понимаю..... Link to post Share on other sites
madf 279 Posted 2012-06-10 20:20:29 Share Posted 2012-06-10 20:20:29 Спасибо при запуске с командной строки работает но при изменении тарифа через веб админку всё равно ничего не отправляется вручную запуская ./OnChange user tariff admin maxi Всё работает отправляется Я уже ничего не понимаю..... Есть 2 способа сменить тариф: немедленно и в конце месяца. Если используется второй - естественно что ничего не отправляется... Link to post Share on other sites
morfey 82 Posted 2012-06-10 21:42:21 Share Posted 2012-06-10 21:42:21 http://stg.dp.ua/dow..._help_v2.17.pdf, http://php.net/, Курить, курить, курить.... Link to post Share on other sites
madf 279 Posted 2012-06-11 04:41:06 Share Posted 2012-06-11 04:41:06 http://stg.dp.ua/dow..._help_v2.17.pdf, http://php.net/, Курить, курить, курить.... Еще в копилку скрытой мудрости: http://tldp.org/LDP/abs/html/ Link to post Share on other sites
nlo 0 Posted 2012-06-12 07:59:51 Share Posted 2012-06-12 07:59:51 Спасибо буду курить :-) Link to post Share on other sites
nlo 0 Posted 2012-06-12 08:01:56 Share Posted 2012-06-12 08:01:56 Спасибо при запуске с командной строки работает но при изменении тарифа через веб админку всё равно ничего не отправляется вручную запуская ./OnChange user tariff admin maxi Всё работает отправляется Я уже ничего не понимаю..... Есть 2 способа сменить тариф: немедленно и в конце месяца. Если используется второй - естественно что ничего не отправляется... смена тарифа естественно сразу что мне конца месяца ждать? даже не отправляется когда пополнение счёта происходит :-( в переменной $param откуда то берётся значение disabled Link to post Share on other sites
madf 279 Posted 2012-06-12 08:46:26 Share Posted 2012-06-12 08:46:26 Спасибо при запуске с командной строки работает но при изменении тарифа через веб админку всё равно ничего не отправляется вручную запуская ./OnChange user tariff admin maxi Всё работает отправляется Я уже ничего не понимаю..... Есть 2 способа сменить тариф: немедленно и в конце месяца. Если используется второй - естественно что ничего не отправляется... смена тарифа естественно сразу что мне конца месяца ждать? даже не отправляется когда пополнение счёта происходит :-( в переменной $param откуда то берётся значение disabled Значит меняется именно этот параметр. Link to post Share on other sites
nlo 0 Posted 2012-06-12 19:51:30 Share Posted 2012-06-12 19:51:30 Ну чудес же не бывает!? Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит! Хотя все переменные соответствуют заданным Почему с веб админки не отправляет? Что и как и где можно посмотреть? Link to post Share on other sites
madf 279 Posted 2012-06-12 21:25:19 Share Posted 2012-06-12 21:25:19 Ну чудес же не бывает!? Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит! Хотя все переменные соответствуют заданным Почему с веб админки не отправляет? Что и как и где можно посмотреть? OnChange при этом выполняется? Link to post Share on other sites
nlo 0 Posted 2012-06-13 20:37:27 Share Posted 2012-06-13 20:37:27 Ну чудес же не бывает!? Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит! Хотя все переменные соответствуют заданным Почему с веб админки не отправляет? Что и как и где можно посмотреть? OnChange при этом выполняется? Ну в манах написано что при изменениях запускается скрипт OnChange проверял да запускается записывает переменные по файлам простая проверка однако ничего не приходит но запуская с шелл ./Onchange nick param oldvalue nevalue всё чётко отправляется куда копать? Link to post Share on other sites
madf 279 Posted 2012-06-14 08:20:37 Share Posted 2012-06-14 08:20:37 Ну чудес же не бывает!? Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит! Хотя все переменные соответствуют заданным Почему с веб админки не отправляет? Что и как и где можно посмотреть? OnChange при этом выполняется? Ну в манах написано что при изменениях запускается скрипт OnChange проверял да запускается записывает переменные по файлам простая проверка однако ничего не приходит но запуская с шелл ./Onchange nick param oldvalue nevalue всё чётко отправляется куда копать? Запускается с правильными параметрами? Link to post Share on other sites
nlo 0 Posted 2012-06-15 18:40:54 Share Posted 2012-06-15 18:40:54 Ну чудес же не бывает!? Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит! Хотя все переменные соответствуют заданным Почему с веб админки не отправляет? Что и как и где можно посмотреть? OnChange при этом выполняется? Ну в манах написано что при изменениях запускается скрипт OnChange проверял да запускается записывает переменные по файлам простая проверка однако ничего не приходит но запуская с шелл ./Onchange nick param oldvalue nevalue всё чётко отправляется куда копать? Запускается с правильными параметрами? Ну раз в файлах нужное содержание переменных значит они задаются правильно! Link to post Share on other sites
nlo 0 Posted 2012-06-15 19:03:35 Share Posted 2012-06-15 19:03:35 Стоп! OnChange не запускается при изменении с вебадминки что сделать что бы оно запускалось? Link to post Share on other sites
madf 279 Posted 2012-06-15 21:59:49 Share Posted 2012-06-15 21:59:49 Стоп! OnChange не запускается при изменении с вебадминки что сделать что бы оно запускалось? Супер! Мы тут месяц со скриптами возимся, а оказывается что они вообще не запускаются! При изменении из конфигуратора (графического или консольного) запускаются? Link to post Share on other sites
nlo 0 Posted 2012-06-18 15:39:25 Share Posted 2012-06-18 15:39:25 Стоп! OnChange не запускается при изменении с вебадминки что сделать что бы оно запускалось? Супер! Мы тут месяц со скриптами возимся, а оказывается что они вообще не запускаются! При изменении из конфигуратора (графического или консольного) запускаются? Да с конфигуратора когда баланс пополняешь скрипт OnChange запускается Link to post Share on other sites
nightfly 1,252 Posted 2012-06-18 18:06:24 Share Posted 2012-06-18 18:06:24 Да с конфигуратора когда баланс пополняешь скрипт OnChange запускается прям такое впечатление, что морда общается со старгейзером как-то иначе Link to post Share on other sites
nlo 0 Posted 2012-06-18 18:52:03 Share Posted 2012-06-18 18:52:03 Но когда с конфигуратора пополнял баланс сообщение всё равно не пришло хотя в файлы занесло значения переменных правильные а когда с морды пополняешь баланс в файлы не записывается ничего следовательно скрипт OnChange не выполняется Link to post Share on other sites
madf 279 Posted 2012-06-18 19:03:08 Share Posted 2012-06-18 19:03:08 Но когда с конфигуратора пополнял баланс сообщение всё равно не пришло хотя в файлы занесло значения переменных правильные а когда с морды пополняешь баланс в файлы не записывается ничего следовательно скрипт OnChange не выполняется Выдайте уже, что-ли, nightfly shell, пусть человек все сделает по-людски. Link to post Share on other sites
nightfly 1,252 Posted 2012-06-18 19:17:11 Share Posted 2012-06-18 19:17:11 На этих ваших линуксах? Не не не, спасибо. Лучше к Спайдеру. Link to post Share on other sites
DarkSpider 36 Posted 2012-06-19 06:10:13 Share Posted 2012-06-19 06:10:13 Спасибо при запуске с командной строки работает но при изменении тарифа через веб админку всё равно ничего не отправляется вручную запуская ./OnChange user tariff admin maxi Всё работает отправляется Я уже ничего не понимаю..... смена тарифа естественно сразу что мне конца месяца ждать? даже не отправляется когда пополнение счёта происходит :-( в переменной $param откуда то берётся значение disabled Перечитал тему с самого начала. Вручную все работает - так как скрипты, пусть и через одно место (временные файлы), но работают. Не работают через админку , имхо, потому как : 1. OnChange запускается несколько раз -когда меняется параметр -когда идет ресет пользователя (это подтверждает то, что появляется параметр disabled) Но когда с конфигуратора пополнял баланс сообщение всё равно не пришло хотя в файлы занесло значения переменных правильныеа когда с морды пополняешь баланс в файлы не записывается ничего следовательно скрипт OnChange не выполняется первый раз изменился параметр тариф, второй раз - ресет - а смотрим файлы и там пусто. 2. Перед выполнением скрипта желательно проверять входные параметры (а все ли пришло, а пришло ли то, что мы ожидаем ?) 3. Для начала еще раз проверить работает ли убиллинг с СТГ (через какой конфигуратор, правильно ли указаны параметры этого конфигуратора) ЗЫ. Ну и да, надо смотреть что там происходит. Гадать на кофейной гуще - слишком жарко (: Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now