Страница 1 из 2

IPN выдает ошибку

Добавлено: Вт ноя 13, 2007 5:48 pm
shark3d
При работе модуль IPN відает следующую ошибку (debug=3):
Debug mode on
<p>select u.uid, dv.ip, u.id,
'',
0,
0,
dv.tp_id,
if (u.company_id > 0, cb.id, b.id),
if (c.name IS NULL, b.deposit, cb.deposit)+u.credit,
tp.payment_type,
0,
0,
tp.octets_direction,
u.reduction,
CONNECT_INFO
FROM (users u, dv_main dv)
LEFT JOIN companies c ON (u.company_id=c.id)
LEFT JOIN bills b ON (u.bill_id=b.id)
LEFT JOIN bills cb ON (c.bill_id=cb.id)
LEFT JOIN tarif_plans tp ON (tp.id=dv.tp_id)
WHERE u.uid=dv.uid
and dv.ip > 0 and u.disable=0 and dv.disable=0;</p>
DBD::mysql::st execute failed: Unknown column 'CONNECT_INFO' in 'field list' at /home/opt/abills/libexec/../Abills/mysql/main.pm line 131.

и в базу ничего не заносится.

Добавлено: Вт ноя 13, 2007 7:54 pm
~AsmodeuS~
abills/abills.sql

Добавлено: Ср ноя 14, 2007 10:12 am
miandr
~AsmodeuS~ писал(а):abills/abills.sql
Такое поле есть в таблице dv_calls, но эта таблица не упоминается в этом запросе.

Добавлено: Ср ноя 14, 2007 12:54 pm
shark3d
Оба SQL-файла были применены: abills.sql, db/Ipn.sql

Добавлено: Вт ноя 20, 2007 11:29 am
miandr
Так что, кто-нибудь может сказать что-либо по этому поводу?

Добавлено: Вт ноя 20, 2007 5:52 pm
vanuha
Да, было-бы весьма не дурно узнать ответ на этот вопрос.

Добавлено: Пт дек 21, 2007 11:59 am
ran
abills/abills.sql здесь, конечно, ни при чём... Видимо,проблемы из-за несовместимости с sql5.

Смысл в том что в SQL5 значительные изменения синтаксиса, а совместимость они не добавили :(

к примеру.
отныне сложные запросы в которых используется такая форма записи:
SELECT blah FROM table1, table2 WHERE blahblah - некорректны. Должно быть
SELECT blah FROM (table1, table2) WHERE blahblah

вот тут много написано про то что теперь из запросов не получается.
http://bugs.mysql.com/bug.php?id=13551

Так чта сырцы править нада аднака :)

Добавлено: Вс дек 23, 2007 10:02 am
chtito
Так чта сырцы править нада аднака :)
Сырцы скачать и править то можно, а как быть с апгрейдами на новые версии? Снова искать и патчить? Полная лажа.

Добавлено: Вт дек 25, 2007 1:55 pm
ran
Кстати, а всё-таки какой смысл имеет параметр конфига $conf{IPN_STATIC_IP}=1;?

Если верить доке:

Использовать только статические адреса.
Система проверяет статические адреса клиентов и присваивает им трафик. Исключая таким образом потери из за переподключений при использовании динамических адресов авторизации.

Так вот, ежли он равен 1, то в модуле Abills/mysql/Ipn_Collector.pm мы попадаем сюды:

if ($CONF->{IPN_STATIC_IP}) {
$sql="select u.uid, dv.ip, u.id,
'',
0,
0,
dv.tp_id,
if (u.company_id > 0, cb.id, b.id),
if (c.name IS NULL, b.deposit, cb.deposit)+u.credit,
tp.payment_type,
0,
0,
tp.octets_direction,
u.reduction,
CONNECT_INFO
FROM (users u, dv_main dv)
LEFT JOIN companies c ON (u.company_id=c.id)
LEFT JOIN bills b ON (u.bill_id=b.id)
LEFT JOIN bills cb ON (c.bill_id=cb.id)
LEFT JOIN tarif_plans tp ON (tp.id=dv.tp_id)
WHERE u.uid=dv.uid
and dv.ip > 0 and u.disable=0 and dv.disable=0;";
}

то бишь формируется описанный выше запрос в таблицу dv_main. Но в ней ДЕЙСТВИТЕЛЬНО НЕТ поля CONNECT_INFO! Поэтому и получаем:

DBD::mysql::st execute failed: Unknown column 'CONNECT_INFO' in 'field list' at /home/opt/abills/libexec/../Abills/mysql/main.pm line 131.

А вот если $conf{IPN_STATIC_IP}=1; закомментировать, то попадём сюды:

elsif ( $CONF->{IPN_DEPOSIT_OPERATION} ) {
$sql="select u.uid, calls.framed_ip_address, calls.user_name,
calls.acct_session_id,
calls.acct_input_octets,
calls.acct_output_octets,
dv.tp_id,
if(u.company_id > 0, cb.id, b.id),
if(c.name IS NULL, b.deposit, cb.deposit)+u.credit,
tp.payment_type,
UNIX_TIMESTAMP() - calls.lupdated,
calls.nas_id,
tp.octets_direction,
u.reduction,
CONNECT_INFO
FROM (dv_calls calls, users u)
LEFT JOIN companies c ON (u.company_id=c.id)
LEFT JOIN bills b ON (u.bill_id=b.id)
LEFT JOIN bills cb ON (c.bill_id=cb.id)
LEFT JOIN dv_main dv ON (u.uid=dv.uid)
LEFT JOIN tarif_plans tp ON (tp.id=dv.tp_id)
WHERE u.id=calls.user_name
and calls.nas_id IN ($DATA->{NAS_ID});";
}

и сформируется корректный запрос в dv_calls.

Так как всё-таки должно быть?

Добавлено: Чт дек 27, 2007 9:14 am
shark3d
И что делать?

Добавлено: Сб дек 29, 2007 9:18 am
ran
Ну, ничего лучшего, как убрать из конфига IPN_STATIC_IP я не придумал, а возиться с дальнейшей разборкой кода мне влом :) К тому же я перл терпеть ненавижу. Подождём, что скажет автор.

А как, кстати, у остальных IPN ваще работает? Все, что-ли втихаря грохают этот параметр :lol:

Добавлено: Ср янв 09, 2008 11:11 am
~AsmodeuS~
Спасибо уже поправил в ЦВС

Добавлено: Ср янв 09, 2008 2:05 pm
ran
~AsmodeuS~ писал(а):Спасибо уже поправил в ЦВС
Странно... Захожу бравзером на цвс вижу изменение в Ipn_Collector.pm обновляюсь - изменений нету :roll:

Не, я конечно увидел что поправить нада...

Добавлено: Ср янв 09, 2008 2:26 pm
~AsmodeuS~

Добавлено: Ср янв 09, 2008 2:39 pm
ran
~AsmodeuS~ писал(а):http://abills.cvs.sourceforge.net/abill ... ev=rel-0-4

97 строка
Да я это видел... И руцями поправил. Я говорю, что пытался как положено обновить - болт.

А из стабл нада или из каррент?