Это решил, надо сделать перелогин и все начинает работать.ds писал(а):Можешь выложить код всех этих функций? + rpcf_get_free_ips_for_house, я посмотрю что не так. и еще urfa_get_datamikkey finn писал(а):что-то я не понял.
Кто мне расскажет, что я делаю не так?
Хочу использовать rpcf_get_ipgroup
Вызываю:
$ipg=$urfa_admin->rpcf_get_ipgroup(2814);
работает.
$ipg=$urfa_admin->rpcf_get_ipgroup($ipg_id);
не работает.
Error calling function rpcf_add_to_ipgroup
urfaclient на php
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
- mmv software
- Сообщения: 8
- Зарегистрирован: Вс фев 22, 2009 12:38
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
-
- Сообщения: 14
- Зарегистрирован: Пт янв 30, 2009 16:10
- Откуда: Россия
DataSetLong
Очевидно, она будет выглядеть так:
Только вот с вызовом проблемно... нужно передавать верхнюю и нижнюю часть по отдельности.
Код: Выделить всё
function DataSetLong($param1,$param2)
{
$this->data[] = pack("N2", $param1, $param2);
$this->len += 12;
}
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
-
- Сообщения: 14
- Зарегистрирован: Пт янв 30, 2009 16:10
- Откуда: Россия
В одном параметре нельзя передавать число более 2^32 = 4294967296 (4 гигабайта), то есть всё число, которое нужно передать делим на 2^32, результат передаём в $param1, остаток - в $param2.mikkey finn писал(а):хорошо, как выделить эти части? гугль с наскока молчит аки партизан.
Я правильно понимаю, что верхняя часть - это количество повторений (2^31)-1 в числе?
Пример. Нужно сделать квоту размером в 8 гигабайт и один байт (8589934593 байт).
8589934593 делим нацело (откидываем остаток) на 2^32 = 2.
Остаток от деления 8589934593 на 2^32 = 1.
Ответ: DataSetLong(2,1).
- mmv software
- Сообщения: 8
- Зарегистрирован: Вс фев 22, 2009 12:38
Понятно, но у меня нет этого файла. Я писал на .NET только по исходным кодам urfaphp на PHP и материалов на сайте по этой ссылке, но, к сожалению там не все функции документированы.api.xml открой, там все функции расписаны. Как ввод(параметры) так и результат.
Буду очень признателен, если кто пришлёт мне на адрес электронной почты mmvsoftware@mail.ru файл “api.xml”.
-
- Сообщения: 14
- Зарегистрирован: Пт янв 30, 2009 16:10
- Откуда: Россия
Re: DataSetLong
Не совсем так. С наскока не получилось сделать, вечером попробую сообразить.Systemnick писал(а):Очевидно, она будет выглядеть так:Только вот с вызовом проблемно... нужно передавать верхнюю и нижнюю часть по отдельности.Код: Выделить всё
function DataSetLong($param1,$param2) { $this->data[] = pack("N2", $param1, $param2); $this->len += 12; }
Код: Выделить всё
function DataSetLong($param)
{
$hi = base_convert(bcdiv($param,4294967296),10,16);
$lo = base_convert(bcmod($param,4294967296),10,16);
$this->data[] = pack('H*', $hi.$lo);
$this->len += 12;
}
Код: Выделить всё
function rpcf_del_user_contact($id) { //0x2023
$ret=array();
if (!$this->connection->urfa_call(0x2023)) {
print "Error calling function ". __FUNCTION__ ."\n";
return FALSE;
}
$packet = $this->connection->getPacket();
$packet->DataSetInt($id);
$this->connection->urfa_send_param($packet);
$this->connection->urfa_get_data();
return $ret;
}
function rpcf_put_user_contact($id,$user_id,$person,$descr,$contact,$email,$email_notify,$short_name,$birthday,$id_exec_man) { //0x2022
$ret=array();
if (!$this->connection->urfa_call(0x2022)) {
print "Error calling function ". __FUNCTION__ ."\n";
return FALSE;
}
$packet = $this->connection->getPacket();
$packet->DataSetInt($id);
$packet->DataSetInt($user_id);
$packet->DataSetString($person);
$packet->DataSetString($descr);
$packet->DataSetString($contact);
$packet->DataSetString($email);
$packet->DataSetInt($email_notify);
$packet->DataSetString($short_name);
$packet->DataSetString($birthday);
$packet->DataSetString($id_exec_man);
$this->connection->urfa_send_param($packet);
// $this->connection->urfa_get_data();
return $ret;
}
function rpcf_get_user_contact($user_id) { //0x2021
$ret=array();
if (!$this->connection->urfa_call(0x2021)) {
print "Error calling function ". __FUNCTION__ ."\n";
return FALSE;
}
$packet = $this->connection->getPacket();
$packet->DataSetInt($user_id);
$this->connection->urfa_send_param($packet);
if($x = $this->connection->urfa_get_data())
{
$ret['size'] = $x->DataGetInt();
for ($i=0;$i<$ret['size'];$i++)
{
$x = $this->connection->urfa_get_data();
$temp['id'] = $x->DataGetInt();
$temp['person'] = $x->DataGetString();
$temp['descr'] = $x->DataGetString();
$temp['contact'] = $x->DataGetString();
$temp['email'] = $x->DataGetString();
$temp['email_notify'] = $x->DataGetInt();
$temp['short_name'] = $x->DataGetString();
$temp['birthday'] = $x->DataGetString();
$temp['id_exec_man']=$x->DataGetInt();
$ret[] = $temp;
}
}
$this->connection->urfa_get_data();
return $ret;
}

- mmv software
- Сообщения: 8
- Зарегистрирован: Вс фев 22, 2009 12:38
Спасибо огромное за файлик. Очень помог. Да у меня нет UTM, я пишу утилиту замену UTM wintray, а то он довольно кривовато сделан. Подробности можно узнать на нашем форуме. Пока проект на ранней стадии, написано ядро и немного окружения.Отправил. Но не понятно, если у тебя нет этого файла, значит у тебя нет самой UTM?
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
я вообще квотами не пользуюсь, а вообще добавление сервисов заработало в части добавления Ip-trafficds писал(а):ПроверяйтеКод: Выделить всё
function DataSetLong($param) { $hi = base_convert(bcdiv($param,4294967296),10,16); $lo = base_convert(bcmod($param,4294967296),10,16); $this->data[] = pack('H*', $hi.$lo); $this->len += 12; }
Спасибо