Вопрос знатокам URFAClient PHP (2)

Технические вопросы по UTM 5.0
Ответить
Андрей С.
Сообщения: 1
Зарегистрирован: Вт сен 08, 2009 05:25

Вопрос знатокам URFAClient PHP (2)

Сообщение Андрей С. »

Здравствуйте, уважаемые знатоки.

Вопрос по использованию функции: rpcf_search_users_new. Например, ставлю задачу: поиск абонентов в названии, которых присутствует словосочетание <full>. Через интерфейс администратора получаю результат: 3 записи.

Теперь через PHP:


Вход и выход функции мне понятен. Начинаю использовать:
....
$poles=array();

$patterns[0]['criteria_id']='1'; //Like
$patterns[0]['what_id']='5'; //По полю фул_найм
$patterns[0]['pattern']='full'; // Содержание

$search=$urfa_admin->rpcf_search_users_new($poles,$patterns,0);
foreach ($search as $current)
{
print_r($current);
echo '</BR>';
}

В результате три пустые записи (по числу найденных абонентов):
Array ( [user_id] => [login] => [basic_account] => [full_name] => [is_blocked] => [balance] => 0 [ip_address_size] => )
....
Array ( [user_id] => [login] => [basic_account] => [full_name] => [is_blocked] => [balance] => 0 [ip_address_size] => )

При этом имеются следующие предупреждения:

Notice: Undefined offset: 1 in /usr/local/www/data/npui2/urfaphp/URFAClient_Packet.php on line 103

Warning: unpack() [function.unpack]: Type N: not enough input, need 4, have 0 in /usr/local/www/data/npui2/urfaphp/URFAClient_Packet.php on line 171

Notice: Undefined offset: 2 in /usr/local/www/data/npui2/urfaphp/URFAClient_Packet.php on line 137

......
Notice: Undefined offset: 7 in /usr/local/www/data/npui2/urfaphp/URFAClient_Packet.php on line 103

Warning: unpack() [function.unpack]: Type N: not enough input, need 4, have 0 in /usr/local/www/data/npui2/urfaphp/URFAClient_Packet.php on line 171

По моему мнению, ошибки возникают в(rpcf_search_users_new) при попытке чтения данных полученных с помощью urfa_get_data():

// Функция сделана для новой(правильной) реализации urfa_get_data()
function rpcf_search_users_new($poles,$patterns,$sel_type) { //0x1205
…..
….
$this->connection->urfa_send_param($packet);
if ($x = $this->connection->urfa_get_data()){
$ret['user_data_size']=$x->DataGetInt(); //Прочитано верно = 3
for ($i=0;$i<$ret['user_data_size'];$i++){
$ret[$i]['user_id']=$x->DataGetInt(); //Здесь ошибка: Type N: not enough input, need 4, have 0
.....

Другими словами данные (кроме 'user_data_size') от клиента нет-ап не поступили. Аналогично работает rpcf_search_users_light(). Такие простые фу-ии, как rpcf_add_account работают идеально.

Кстати: в файле URFAClient_Admin.php не было функции: rpcf_search_users_new. Ее я скопировал с сайта разработчика и добавил в файл самостоятельно.

Буду благодарен за помощь в решении проблемы.

Ответить