madf 259 Опубликовано: 08.06.2012 05:02 sgconf из PATH доступен? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 08.06.2012 14:24 sgconf из PATH доступен? Естественно Пример ввожу переменные непосредственно в скрипте messages всё работает вот так: $login = "login"; $param = "tariff"; $oldValue = "admin"; $newValue = "super"; Ну всё прямо идеально срабатывает отправляет в авторизатор Почему тогда переменные заданные из файлов как написано выше не работают? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
madf 259 Опубликовано: 10.06.2012 10:57 Вікиньте промежуточное сохранение данных в файл, оно там ни к чему. И покажите все свои скрипты в текущем виде. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 10.06.2012 15:52 Вікиньте промежуточное сохранение данных в файл, оно там ни к чему. И покажите все свои скрипты в текущем виде. 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); } } } ?> Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
madf 259 Опубликовано: 10.06.2012 17:28 Вот что у меня получилось. 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 Все прекрасно работает! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 10.06.2012 17:57 Спасибо при запуске с командной строки работает но при изменении тарифа через веб админку всё равно ничего не отправляется вручную запуская ./OnChange user tariff admin maxi Всё работает отправляется Я уже ничего не понимаю..... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
madf 259 Опубликовано: 10.06.2012 20:20 Спасибо при запуске с командной строки работает но при изменении тарифа через веб админку всё равно ничего не отправляется вручную запуская ./OnChange user tariff admin maxi Всё работает отправляется Я уже ничего не понимаю..... Есть 2 способа сменить тариф: немедленно и в конце месяца. Если используется второй - естественно что ничего не отправляется... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
morfey 81 Опубликовано: 10.06.2012 21:42 http://stg.dp.ua/dow..._help_v2.17.pdf, http://php.net/, Курить, курить, курить.... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
madf 259 Опубликовано: 11.06.2012 04:41 http://stg.dp.ua/dow..._help_v2.17.pdf, http://php.net/, Курить, курить, курить.... Еще в копилку скрытой мудрости: http://tldp.org/LDP/abs/html/ Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 12.06.2012 07:59 Спасибо буду курить :-) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 12.06.2012 08:01 Спасибо при запуске с командной строки работает но при изменении тарифа через веб админку всё равно ничего не отправляется вручную запуская ./OnChange user tariff admin maxi Всё работает отправляется Я уже ничего не понимаю..... Есть 2 способа сменить тариф: немедленно и в конце месяца. Если используется второй - естественно что ничего не отправляется... смена тарифа естественно сразу что мне конца месяца ждать? даже не отправляется когда пополнение счёта происходит :-( в переменной $param откуда то берётся значение disabled Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
madf 259 Опубликовано: 12.06.2012 08:46 Спасибо при запуске с командной строки работает но при изменении тарифа через веб админку всё равно ничего не отправляется вручную запуская ./OnChange user tariff admin maxi Всё работает отправляется Я уже ничего не понимаю..... Есть 2 способа сменить тариф: немедленно и в конце месяца. Если используется второй - естественно что ничего не отправляется... смена тарифа естественно сразу что мне конца месяца ждать? даже не отправляется когда пополнение счёта происходит :-( в переменной $param откуда то берётся значение disabled Значит меняется именно этот параметр. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 12.06.2012 19:51 Ну чудес же не бывает!? Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит! Хотя все переменные соответствуют заданным Почему с веб админки не отправляет? Что и как и где можно посмотреть? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
madf 259 Опубликовано: 12.06.2012 21:25 Ну чудес же не бывает!? Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит! Хотя все переменные соответствуют заданным Почему с веб админки не отправляет? Что и как и где можно посмотреть? OnChange при этом выполняется? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 13.06.2012 20:37 Ну чудес же не бывает!? Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит! Хотя все переменные соответствуют заданным Почему с веб админки не отправляет? Что и как и где можно посмотреть? OnChange при этом выполняется? Ну в манах написано что при изменениях запускается скрипт OnChange проверял да запускается записывает переменные по файлам простая проверка однако ничего не приходит но запуская с шелл ./Onchange nick param oldvalue nevalue всё чётко отправляется куда копать? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
madf 259 Опубликовано: 14.06.2012 08:20 Ну чудес же не бывает!? Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит! Хотя все переменные соответствуют заданным Почему с веб админки не отправляет? Что и как и где можно посмотреть? OnChange при этом выполняется? Ну в манах написано что при изменениях запускается скрипт OnChange проверял да запускается записывает переменные по файлам простая проверка однако ничего не приходит но запуская с шелл ./Onchange nick param oldvalue nevalue всё чётко отправляется куда копать? Запускается с правильными параметрами? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 15.06.2012 18:40 Ну чудес же не бывает!? Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит! Хотя все переменные соответствуют заданным Почему с веб админки не отправляет? Что и как и где можно посмотреть? OnChange при этом выполняется? Ну в манах написано что при изменениях запускается скрипт OnChange проверял да запускается записывает переменные по файлам простая проверка однако ничего не приходит но запуская с шелл ./Onchange nick param oldvalue nevalue всё чётко отправляется куда копать? Запускается с правильными параметрами? Ну раз в файлах нужное содержание переменных значит они задаются правильно! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 15.06.2012 19:03 Стоп! OnChange не запускается при изменении с вебадминки что сделать что бы оно запускалось? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
madf 259 Опубликовано: 15.06.2012 21:59 Стоп! OnChange не запускается при изменении с вебадминки что сделать что бы оно запускалось? Супер! Мы тут месяц со скриптами возимся, а оказывается что они вообще не запускаются! При изменении из конфигуратора (графического или консольного) запускаются? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 18.06.2012 15:39 Стоп! OnChange не запускается при изменении с вебадминки что сделать что бы оно запускалось? Супер! Мы тут месяц со скриптами возимся, а оказывается что они вообще не запускаются! При изменении из конфигуратора (графического или консольного) запускаются? Да с конфигуратора когда баланс пополняешь скрипт OnChange запускается Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nightfly 772 Опубликовано: 18.06.2012 18:06 Да с конфигуратора когда баланс пополняешь скрипт OnChange запускается прям такое впечатление, что морда общается со старгейзером как-то иначе Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nlo 0 Опубликовано: 18.06.2012 18:52 Но когда с конфигуратора пополнял баланс сообщение всё равно не пришло хотя в файлы занесло значения переменных правильные а когда с морды пополняешь баланс в файлы не записывается ничего следовательно скрипт OnChange не выполняется Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
madf 259 Опубликовано: 18.06.2012 19:03 Но когда с конфигуратора пополнял баланс сообщение всё равно не пришло хотя в файлы занесло значения переменных правильные а когда с морды пополняешь баланс в файлы не записывается ничего следовательно скрипт OnChange не выполняется Выдайте уже, что-ли, nightfly shell, пусть человек все сделает по-людски. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
nightfly 772 Опубликовано: 18.06.2012 19:17 На этих ваших линуксах? Не не не, спасибо. Лучше к Спайдеру. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
DarkSpider 32 Опубликовано: 19.06.2012 06:10 Спасибо при запуске с командной строки работает но при изменении тарифа через веб админку всё равно ничего не отправляется вручную запуская ./OnChange user tariff admin maxi Всё работает отправляется Я уже ничего не понимаю..... смена тарифа естественно сразу что мне конца месяца ждать? даже не отправляется когда пополнение счёта происходит :-( в переменной $param откуда то берётся значение disabled Перечитал тему с самого начала. Вручную все работает - так как скрипты, пусть и через одно место (временные файлы), но работают. Не работают через админку , имхо, потому как : 1. OnChange запускается несколько раз -когда меняется параметр -когда идет ресет пользователя (это подтверждает то, что появляется параметр disabled) Но когда с конфигуратора пополнял баланс сообщение всё равно не пришло хотя в файлы занесло значения переменных правильныеа когда с морды пополняешь баланс в файлы не записывается ничего следовательно скрипт OnChange не выполняется первый раз изменился параметр тариф, второй раз - ресет - а смотрим файлы и там пусто. 2. Перед выполнением скрипта желательно проверять входные параметры (а все ли пришло, а пришло ли то, что мы ожидаем ?) 3. Для начала еще раз проверить работает ли убиллинг с СТГ (через какой конфигуратор, правильно ли указаны параметры этого конфигуратора) ЗЫ. Ну и да, надо смотреть что там происходит. Гадать на кофейной гуще - слишком жарко (: Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах