Перейти к содержимому
Local
Queeq

Напоминание на почту

Рекомендованные сообщения

sgconf из PATH доступен?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

sgconf из PATH доступен?

Естественно

Пример ввожу переменные непосредственно в скрипте messages всё работает

вот так:

$login = "login";
$param = "tariff";
$oldValue = "admin";
$newValue = "super";

Ну всё прямо идеально срабатывает отправляет в авторизатор

Почему тогда переменные заданные из файлов как написано выше не работают?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вікиньте промежуточное сохранение данных в файл, оно там ни к чему. И покажите все свои скрипты в текущем виде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вікиньте промежуточное сохранение данных в файл, оно там ни к чему. И покажите все свои скрипты в текущем виде.

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);
		    }
    }
}
?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот что у меня получилось.

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

Все прекрасно работает!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо

при запуске с командной строки работает

но при изменении тарифа через веб админку всё равно ничего не отправляется

вручную запуская ./OnChange user tariff admin maxi

Всё работает отправляется

Я уже ничего не понимаю.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо

при запуске с командной строки работает

но при изменении тарифа через веб админку всё равно ничего не отправляется

вручную запуская ./OnChange user tariff admin maxi

Всё работает отправляется

Я уже ничего не понимаю.....

Есть 2 способа сменить тариф: немедленно и в конце месяца. Если используется второй - естественно что ничего не отправляется...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо буду курить :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо

при запуске с командной строки работает

но при изменении тарифа через веб админку всё равно ничего не отправляется

вручную запуская ./OnChange user tariff admin maxi

Всё работает отправляется

Я уже ничего не понимаю.....

Есть 2 способа сменить тариф: немедленно и в конце месяца. Если используется второй - естественно что ничего не отправляется...

смена тарифа естественно сразу

что мне конца месяца ждать?

даже не отправляется когда пополнение счёта происходит :-(

в переменной $param откуда то берётся значение disabled

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо

при запуске с командной строки работает

но при изменении тарифа через веб админку всё равно ничего не отправляется

вручную запуская ./OnChange user tariff admin maxi

Всё работает отправляется

Я уже ничего не понимаю.....

Есть 2 способа сменить тариф: немедленно и в конце месяца. Если используется второй - естественно что ничего не отправляется...

смена тарифа естественно сразу

что мне конца месяца ждать?

даже не отправляется когда пополнение счёта происходит :-(

в переменной $param откуда то берётся значение disabled

Значит меняется именно этот параметр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну чудес же не бывает!?

Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит!

 

Хотя все переменные соответствуют заданным

 

Почему с веб админки не отправляет?

 

Что и как и где можно посмотреть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну чудес же не бывает!?

Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит!

 

Хотя все переменные соответствуют заданным

 

Почему с веб админки не отправляет?

 

Что и как и где можно посмотреть?

OnChange при этом выполняется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну чудес же не бывает!?

Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит!

 

Хотя все переменные соответствуют заданным

 

Почему с веб админки не отправляет?

 

Что и как и где можно посмотреть?

OnChange при этом выполняется?

Ну в манах написано что при изменениях запускается скрипт OnChange проверял да запускается записывает переменные по файлам простая проверка однако ничего не приходит

но запуская с шелл ./Onchange nick param oldvalue nevalue всё чётко отправляется

куда копать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну чудес же не бывает!?

Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит!

 

Хотя все переменные соответствуют заданным

 

Почему с веб админки не отправляет?

 

Что и как и где можно посмотреть?

OnChange при этом выполняется?

Ну в манах написано что при изменениях запускается скрипт OnChange проверял да запускается записывает переменные по файлам простая проверка однако ничего не приходит

но запуская с шелл ./Onchange nick param oldvalue nevalue всё чётко отправляется

куда копать?

Запускается с правильными параметрами?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну чудес же не бывает!?

Почему с командной строки отправляет а когда в веб админке что либо меняешь например увеличиваешь баланс то сообщение не приходит!

 

Хотя все переменные соответствуют заданным

 

Почему с веб админки не отправляет?

 

Что и как и где можно посмотреть?

OnChange при этом выполняется?

Ну в манах написано что при изменениях запускается скрипт OnChange проверял да запускается записывает переменные по файлам простая проверка однако ничего не приходит

но запуская с шелл ./Onchange nick param oldvalue nevalue всё чётко отправляется

куда копать?

Запускается с правильными параметрами?

Ну раз в файлах нужное содержание переменных значит они задаются правильно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоп!

OnChange не запускается при изменении с вебадминки

что сделать что бы оно запускалось?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоп!

OnChange не запускается при изменении с вебадминки

что сделать что бы оно запускалось?

Супер! Мы тут месяц со скриптами возимся, а оказывается что они вообще не запускаются!

При изменении из конфигуратора (графического или консольного) запускаются?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Стоп! OnChange не запускается при изменении с вебадминки что сделать что бы оно запускалось?
Супер! Мы тут месяц со скриптами возимся, а оказывается что они вообще не запускаются! При изменении из конфигуратора (графического или консольного) запускаются?

Да с конфигуратора когда баланс пополняешь скрипт OnChange запускается

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Да с конфигуратора когда баланс пополняешь скрипт OnChange запускается

прям такое впечатление, что морда общается со старгейзером как-то иначе :blink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Но когда с конфигуратора пополнял баланс сообщение всё равно не пришло хотя в файлы занесло значения переменных правильные

а когда с морды пополняешь баланс в файлы не записывается ничего следовательно скрипт OnChange не выполняется

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Но когда с конфигуратора пополнял баланс сообщение всё равно не пришло хотя в файлы занесло значения переменных правильные

а когда с морды пополняешь баланс в файлы не записывается ничего следовательно скрипт OnChange не выполняется

Выдайте уже, что-ли, nightfly shell, пусть человек все сделает по-людски.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На этих ваших линуксах? Не не не, спасибо.

Лучше к Спайдеру.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо

при запуске с командной строки работает

но при изменении тарифа через веб админку всё равно ничего не отправляется

вручную запуская ./OnChange user tariff admin maxi

Всё работает отправляется

Я уже ничего не понимаю.....

смена тарифа естественно сразу

что мне конца месяца ждать?

даже не отправляется когда пополнение счёта происходит :-(

в переменной $param откуда то берётся значение disabled

 

Перечитал тему с самого начала.

Вручную все работает - так как скрипты, пусть и через одно место (временные файлы), но работают.

Не работают через админку , имхо, потому как :

1. OnChange запускается несколько раз

-когда меняется параметр

-когда идет ресет пользователя (это подтверждает то, что появляется параметр disabled)

Но когда с конфигуратора пополнял баланс сообщение всё равно не пришло хотя в файлы занесло значения переменных правильные

а когда с морды пополняешь баланс в файлы не записывается ничего следовательно скрипт OnChange не выполняется

первый раз изменился параметр тариф, второй раз - ресет - а смотрим файлы и там пусто.

 

2. Перед выполнением скрипта желательно проверять входные параметры (а все ли пришло, а пришло ли то, что мы ожидаем ?)

 

3. Для начала еще раз проверить работает ли убиллинг с СТГ (через какой конфигуратор, правильно ли указаны параметры этого конфигуратора)

 

ЗЫ. Ну и да, надо смотреть что там происходит. Гадать на кофейной гуще - слишком жарко (:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×