urfaclient на php

Вопросы по сопутствующим продуктам производства партнеров
Ответить
bobr
Сообщения: 29
Зарегистрирован: Ср июл 18, 2007 11:09

Сообщение bobr »

ds писал(а):Будут вам классы, но чуть позже.
Уже почти переписал, возможно завтра выложу.

Несогласен с этим

Код: Выделить всё

function now() { 
  return time(); 
}
Т.к. она берет время на серваке, на котором запускается скрипт, а не на биллинговом серваке
+ время в биллинге и на его же серваке может отличатся (давно не рыл, но в биллинге вроде всё по GMT 0 в базе, да и настраивать смещение можно, нет? непомню :? )

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

bobr писал(а): Несогласен с этим

Код: Выделить всё

function now() { 
  return time(); 
}
Т.к. она берет время на серваке, на котором запускается скрипт, а не на биллинговом серваке
+ время в биллинге и на его же серваке может отличатся (давно не рыл, но в биллинге вроде всё по GMT 0 в базе, да и настраивать смещение можно, нет? непомню :? )
Ну да, не подумал. Тогда now() надо получать через rpcf_get_core_time

bobr
Сообщения: 29
Зарегистрирован: Ср июл 18, 2007 11:09

Сообщение bobr »

Надыбал наконец папку с апи хмлками (доэтого небыло, 001 у нас :oops: )
Что-то меня подмывает написать парсер api.xml, чтобы не переписывать ф-ии на пхп :twisted: было бы время %)

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

Уже cделал парсер api.xml, осталось прикрутить к клиенту.

Может тоже стоит его продавать, хотя бы за условную цену :)

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

Думаю к конце недели выложу, вход принимает, но пока кроме циклов. Разберусь, тогда выход не проблема, делать по аналогии.

У меня вопрос, как лучше подсовывать аргументы скрипту. Тоже xml? так удобнее будет, или совместить с $_POST?

Pulse
Сообщения: 945
Зарегистрирован: Вт окт 03, 2006 12:58

Сообщение Pulse »

ваще не шарю в xml :( пришлось парсер писать, чтоб вывод стандартного urfa парсить. если есть возможность, уважаемый, сделайте вариабельность вывода :) xml хорошо придётся, если клиент winrtay свой писать, а для вебморды оч круто, если всё останетсякак есь сейчас

bobr
Сообщения: 29
Зарегистрирован: Ср июл 18, 2007 11:09

Сообщение bobr »

ds писал(а):У меня вопрос, как лучше подсовывать аргументы скрипту. Тоже xml? так удобнее будет, или совместить с $_POST?
Имхо в ассоциативном массиве со вложенностью (какраз под циклы с параметрами), если ненужно передавать какиенить атрибуты. Совмещать с $_POST очень нежелательно, нужна гибкость. Можно и xml, если у этого способа есть реальные преимущества перед массивами со вложенностью.
Последний раз редактировалось bobr Ср янв 14, 2009 11:34, всего редактировалось 1 раз.

bobr
Сообщения: 29
Зарегистрирован: Ср июл 18, 2007 11:09

Сообщение bobr »

bobr писал(а):
ds писал(а):У меня вопрос, как лучше подсовывать аргументы скрипту. Тоже xml? так удобнее будет, или совместить с $_POST?
Имхо в ассоциативном массиве со вложенностью (какраз под циклы с параметрами). Совмещать с $_POST очень нежелательно, нужна гибкость.
упс, что-то продублировал %)

bobr
Сообщения: 29
Зарегистрирован: Ср июл 18, 2007 11:09

Сообщение bobr »

Вот, черновая, но вполне рабочая реализация на классах того, что есть. Все довольно гибко и красиво %) ("себя не похвалишь..." :lol: ). В будущем, если ds поделится (скинь мне в личку свой ICQ), можно это легко переделать под парсер api.xml (уже в уме вижу хорошую реализацию).

Юзать через классы URFAClient_Admin и URFAClient_User5 (как? смотреть в test.php)

http://rapidshare.com/files/183110944/urfa.zip.html
http://dump.ru/file/1427143

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

Накидал парсилку для простых функций (без условий и циклов).

http://www.ukhta-inform.ru/parsetophp.exe

В левую часть копируем описалово из api.xml, нажимаем Parse, в правой части получаем функцию на php.

Wishmaster
Сообщения: 309
Зарегистрирован: Сб апр 16, 2005 11:44

Сообщение Wishmaster »

bobr писал(а):Вот, черновая, но вполне рабочая реализация на классах того, что есть. Все довольно гибко и красиво %) ("себя не похвалишь..." :lol: ). В будущем, если ds поделится (скинь мне в личку свой ICQ), можно это легко переделать под парсер api.xml (уже в уме вижу хорошую реализацию).

Юзать через классы URFAClient_Admin и URFAClient_User5 (как? смотреть в test.php)

http://rapidshare.com/files/183110944/urfa.zip.html
http://dump.ru/file/1427143
Есть вопросик.

если сделать

Код: Выделить всё

require_once("./urfa/URFAClient.php");
$urfa_admin = new URFAClient_Admin("web", "web");
$urfa_user5 = $urfa_admin->getURFAClient_User5("login", "password");
то при неправильном логине или пароле мы не получим ни сообщения об ошибке, ни false в возврате, и если после этого сделать

Код: Выделить всё

print_r($urfa_user5->rpcf_user5_get_user_info());
то будет ошибка вида:

Код: Выделить всё

Error calling function rpcf_user5_get_user_info
Собственно, вопрос, как проверить, существует ли запрошенный юзер и верен ли пароль, зная только логин и пароль? Чего-то не нашел я в api.xml подобной функции. Может подскажет кто? А то для веб-морды это важный момент..

bobr
Сообщения: 29
Зарегистрирован: Ср июл 18, 2007 11:09

Сообщение bobr »

Wishmaster писал(а):то при неправильном логине или пароле мы не получим ни сообщения об ошибке, ни false в возврате
ты это проверял? при неправильном логине кидается эксепшн, который можно отловить с помощью try блока. Включи отображение ошибок в скрипте

Код: Выделить всё

@ini_set("display_errors", "1");
error_reporting(E_ALL);
я это проверял, эксепшн кидается

Код: Выделить всё

Fatal error:  Uncaught URFAClient_Exception [code: 0]: login is failed. Check connection settings.
Wishmaster писал(а):Собственно, вопрос, как проверить, существует ли запрошенный юзер и верен ли пароль, зная только логин и пароль? Чего-то не нашел я в api.xml подобной функции. Может подскажет кто? А то для веб-морды это важный момент.
Действительно, такая вроде нужная ф-я, а нет в апи. Но там есть поиск пользователя по критериям. Сам же я запросом к базе узнаю id пользователя по его логину.

Wishmaster
Сообщения: 309
Зарегистрирован: Сб апр 16, 2005 11:44

Сообщение Wishmaster »

bobr писал(а):
Wishmaster писал(а):то при неправильном логине или пароле мы не получим ни сообщения об ошибке, ни false в возврате
ты это проверял? при неправильном логине кидается эксепшн, который можно отловить с помощью try блока. Включи отображение ошибок в скрипте

Код: Выделить всё

@ini_set("display_errors", "1");
error_reporting(E_ALL);
я это проверял, эксепшн кидается

Код: Выделить всё

Fatal error:  Uncaught URFAClient_Exception [code: 0]: login is failed. Check connection settings.
Я говорил не про web:web, а про это:

Код: Выделить всё

require_once("./urfa/URFAClient.php"); 
$urfa_admin = new URFAClient_Admin("web", "web"); 
[b]$urfa_user5 = $urfa_admin->getURFAClient_User5("login", "password");[/b]
С системным юзером - понятно, там эксепшн есть, а вот здесь - облом.


bobr писал(а):
Wishmaster писал(а):Собственно, вопрос, как проверить, существует ли запрошенный юзер и верен ли пароль, зная только логин и пароль? Чего-то не нашел я в api.xml подобной функции. Может подскажет кто? А то для веб-морды это важный момент.
Действительно, такая вроде нужная ф-я, а нет в апи. Но там есть поиск пользователя по критериям. Сам же я запросом к базе узнаю id пользователя по его логину.
Да я и сам уже думал о поиске, и о запросе. Но как-то это все кривовато. Странно, что нетап не предусмотрел подобной функции, как интересно, работает их веб-морда?

bobr
Сообщения: 29
Зарегистрирован: Ср июл 18, 2007 11:09

Сообщение bobr »

Ведь это то всё проходит через один механизм и эксепшн кидается. Сейчас проверил, взял в коде test.php первый логин-пароль написал верно, второй с ошибкой

Код: Выделить всё

Fatal error:  Uncaught URFAClient_Exception [code: 0]: login is failed. Check connection settings.
кинуло эксепшн

хз %)

Wishmaster
Сообщения: 309
Зарегистрирован: Сб апр 16, 2005 11:44

Сообщение Wishmaster »

Короче, эксепшн действительно вылетает, но не всегда. Т.е. если открыть в браузере страницу, то - да, вылезет эксепшн, а если ее сразу же обновить - то Error calling function rpcf_user5_get_user_info, и так несколько раз, а потом опять вылетает эксепшн.

Странно, короче. Может сокет не успевает закрыться?

Ответить