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