пытаюсь разобраться с ошибкой на строке 2757
код там кривой
пока обнаружил багу сопутствующую этой
выражалась в вылете форума с ошибкой sql
а все изза вот этой строки (2740
PHP:
$ids[ $fields[0] ] = $fields[0];
потеряли массив
нужно
PHP:
$ids[ $r[ $fields[0] ] ] = $r[ $fields[0] ];
а с array-merge ситуация не очень понятная
она появляется когда в таблице нет искомого ip
нужно куда то здесь поставить костыль с проверкой что массив $members пуст
PHP:
if ( is_array( $rawData ) and count ( $rawData ) )
{
foreach( $rawData as $idx => $data )
{
if ( $data[ $fields[0] ] )
{
$ip_addresses[ $tablename ][ $idx ] = array_merge( $data, $members[ $data[ $fields[0] ] ] );
}
}
}
Но куда правильнее? Я вообще непойму что там проверяется и 2 раза.
Возможно просто забыли обнулить $rawData
PHP:
$i = 0;
$rawData = Array(); // <- этого небыло
while( $r = ipsRegistry::DB()->fetch() )
{
// $ids[ $fields[0] ] = $fields[0];
$ids[ $r[ $fields[0] ] ] = $r[ $fields[0] ];
if( $r[ $fields[1] ] )
{
$rawData[ ++$i ] = $r;
}
}
После этого все варнинги пропали. Но не нарушил ли я Логику? Нужно тестировать.
saracen:
Из админки не практически не работает фильтр по IP.
в чем это выражается?
--------Добавлено-------
а всетаки проверка нужна
добавил перед склейкой
PHP:
if( is_array( $members[ $data[ $fields[0] ]]) )
$ip_addresses[ $tablename ][ $idx ] = array_merge( $data, $members[ $data[ $fields[0] ] ] );
ps: кто даст "погонять" большую базу форума?
можно со стертыми паролями и мылами, но со всеми логами и тп.
У меня на форуме юзеров около сотни, и почти у всех разные ip, сложно отлаживать некоторые вещи.