Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#26 2011-10-14 10:32:07

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Ах точно!... я тут чуть-чуть не выспался big_smile, добавлю еще одно условие, очистку раз в сутки, как ты говоришь.
Действительно, с каждым голосом запускать очистку нет смысла, можно и раз в сутки, я же не корабль в космос запускаю, 1 день роли не сыграет.
Спасибо! wink

Не в сети

#27 2011-10-15 12:17:47

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

А как работать c pluginSetVariable() и pluginGetVariable()?

Вот так правильно?

pluginSetVariable('rating', 'last_clear', time()); // сначала создаем переменную и задаем ей значение
pluginsSaveConfig(); // где-то сохраняем :)
echo intval(pluginGetVariable('rating', 'last_clear')); // и в любой момент, из любого скрипта, считываем значение

Переменная last_clear будет храниться постоянно? А если она вдруг больше не нужна, как ее удалить, задать пустое значение, или еще как?

А вообще, не хватает документации по всем подобным функциям, которые можно вызывать в плагинах.
Или такая документация есть? Я просто не в курсе, уж извиняйте roll

Изменено ikv777vlg (2011-10-15 12:48:01)

Не в сети

#28 2011-10-15 12:41:52

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

pluginSetVariable($pluginID, $var, $value)
pluginGetVariable($pluginID, $var)

то есть правильно

для удаления функции нет, но можно сделать самому:

global PLUGINS;
unset($PLUGINS['config'][$pluginID][$var]);
pluginsSaveConfig();

Не в сети

#29 2011-10-15 13:18:30

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

ikv777vlg пишет:

А вообще, не хватает документации по всем подобным функциям, которые можно вызывать в плагинах.
Или такая документация есть? Я просто не в курсе, уж извиняйте roll

Есть http://wiki.ngcms.ru но она пока не полная...

Не в сети

#30 2011-10-15 13:56:35

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

ROZARD пишет:
ikv777vlg пишет:

А вообще, не хватает документации по всем подобным функциям, которые можно вызывать в плагинах.
Или такая документация есть? Я просто не в курсе, уж извиняйте roll

Есть http://wiki.ngcms.ru но она пока не полная...

Но ведь никто лучше создателей CMS не знает что там за функции в том-же, например extras.inc.php smile, я заглянул туда, а там темный лес, черт ногу сломит с моими знаниями PHP, хотя некоторую информацию можно почерпнуть из комментариев на английском, это очень хорошо, но неудобно конечно hmm


А теперь по сабжу. Я сделал вот так, вроде работает:

if(intval(pluginGetVariable('rating', 'last_clear')) <= time()) {  // проверяем промежуток времени очистки таблицы
$mysql->query('DELETE FROM `'.prefix.'_rating` WHERE `vote_date` < '.(time()-5184000).';'); // удаляем старые записи
pluginSetVariable('rating', 'last_clear', (time()+86400));
pluginsSaveConfig();
}

как всё просто smile
Вот только куда этот IF лучше вставить? Я считаю, что лучше обрабатывать его когда пользователь голосует($upd=1), а не после каждой проверки голосовал ли юзер ($upd=0). Тем-более при обычной загрузки новости, плагин всегда обращается к функции, делается выбор - просто показать рейтинг, или показать рейтинг+ссылки для голосования (если IP или печенька не найдена).

Пишите что еще не так, может где-то еще я был не прав wink

Не в сети

#31 2011-10-15 13:58:26

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Да, это роли никакой не играет по большему счету, вставлять нужно в место которое вызывается как можно реже

Не в сети

#32 2011-10-15 14:02:41

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

ikv777vlg пишет:

Но ведь никто лучше создателей CMS не знает что там за функции в том-же, например extras.inc.php smile, я заглянул туда, а там темный лес, черт ногу сломит с моими знаниями PHP, хотя некоторую информацию можно почерпнуть из комментариев на английском, это очень хорошо, но неудобно конечно hmm

Напиши какие именно функции из extras.inc.php ты хочешь знать и на http://wiki.ngcms.ru/ я их распишу...

P.S. Только не надо говорить просто ВСЕ smile

Не в сети

#33 2011-10-15 14:24:07

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Там вроде комментарии есть хорошие.

Например по теме:

//
// Save configuration parameters of plugins (should be called after pluginSetVariable)
//
function pluginsSaveConfig($suppressNotify = false)

Не в сети

#34 2011-10-15 14:47:36

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Юзеры чаще будут просто просматривать новость, чем голосовать, тем-более голосование вызывается аяксом, пока будет очищаться таблица, юзер будет видеть картинку "Loading..." в центре страницы, и в итоге получается такой принцип: "Проголосовал? Оставил свой IP в базе? По братски - удали старые записи из БД!" big_smile
И в итоге при загрузке страницы очистка никак не выполнится, и страница будет грузиться быстрее.
Так что, ИМХО, всё логично и оптимально smile


ROZARD пишет:

Напиши какие именно функции из extras.inc.php ты хочешь знать и на http://wiki.ngcms.ru/ я их распишу...

P.S. Только не надо говорить просто ВСЕ smile

Все и в extras.inc.php и в functions.inc.php, и везде где они есть lol
ROZARD, а если серьезно, спасибо конечно тебе, но я же не знаю где какая функция, и в какой момент она мне может пригодиться. Вдруг я решусь создать какой-нибудь полезный плагин и что-то смогу реализовать на чистом PHP, а окажется что это уже реализовано в функциях CMS. Так-что всё постепенно. А при изменении плагина, и так можно разобраться где находится вызываемая функция, и что она делает, хотя бывает трудно, даже с комментариями на английском. В этом случае буду спрашивать тут wink


Wolverine пишет:

Там вроде комментарии есть хорошие.

Например по теме:

//
// Save configuration parameters of plugins (should be called after pluginSetVariable)
//
function pluginsSaveConfig($suppressNotify = false)

Согласен. Но попробуй встать на мое место, если я первый раз вижу строчку комментария "Save configuration parameters of plugins" я же не могу понять какие параметры сохраняются, что это за параметры такие, при знании PHP "со словарем" smile
В далеком будущем при детальном изучении работы CMS, что да как, эти вопросы может и отпадут, но пока мало что понятно. NG CMS вообще заинтересовала меня, и отсутствие красивого дефолтного шаблона меня не испугало, буду делать сайт на NG CMS, вроде всё что нужно в ней есть wink

А пока я попробую сделать еще что-нибудь хорошее в плагине rating, раз взялся, надо же попытаться его до ума довести! smile

Не в сети

#35 2011-10-15 15:00:13

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

И еще... В rating.php перед "class RatingNewsFilter extends NewsFilter {" есть непонятный комментарий:

//
// ”Ё«мва ­®ў®б⥩ (¤«п Ї®Є §  ३⨭Ј )
//

Из-за этого все комментарии в скриптах CMS на английском пишите? big_smile
Кстати, в при создании плагина, нельзя комментарии на кириллице писать? Или мне всё на английский переводить? yikes
Имхо, надо-же определяться, если Win-1251 - значит Win-1251...

Не в сети

#36 2011-10-15 15:06:17

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Просто ошибка кодировки, в комментариях хоть на иврите пиши. Просто комментарии на кириллице по большому счеты бесполезны для всех, кроме русскоговорящих smile

Не в сети

#37 2011-10-15 16:23:40

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

ikv777vlg, по поводу коммента - косяк, коммент оказался в CP866 кодировке.
Вообще ты делаешь очень быстрые успехи, молодец. Даже приятно становится smile

Вообще в коде ещё есть над чем работать,.. но он уже значительно лучше того, который был в самом начале.
Относительно документации - действительно, она есть не вся. Если что-то непонятно (или хочешь узнать есть ли тот или иной функционал) - можешь спрашивать на форуме, поможем smile

Не в сети

#38 2011-10-15 16:48:58

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

vitaly, всех кого ты хвалишь за быстрый старт потом пропадают index.php?action=mgallery;sa=media;id=31978

Не в сети

#39 2011-10-15 17:48:11

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

vitaly, спасибо, один я бы ничего не сделал, спасибо всем вам! wink
Wolverine, я всё слышал! lol

Понятное дело, надо как-то зарабатывать деньги, что-то делать.. Мне нужно сайт запустить, нужен был плагин, были трудности, я к вам обратился, вы мне помогли, с меня - как минимум, индексируемая ссылка с главной страницы моего сайта, или даже со статьи, разберемся. Если, конечно, я этот сайт когда-нибудь доделаю smile
В сапе я и сам буду ссылки продавать, хочу попробовать аккуратно всё это реализовать, и чтобы это был СДЛ, но на ngcms.ru ссылку поставлю в любом случае, дай Бог и мне ТИЦа высокого wink
Вообще у меня сейчас достаточно свободного времени, пока я просто не работаю, а работа у меня не легкая, и график даалеко не 8-ми часовой, так что незнаю что будет дальше, как минимум еще неделю я свободен, а потом у меня времени и сил будет в разы меньше..
Тут знаете сколько проблем, помимо тех что в виртуальной реальности? Много! И учиться надо, и работать... Я даже не считаю то что у меня сейчас на правой руке или сильный ушиб, или трещина в кости, рука болит, собственно по этому я и не работаю сейчас, зато мышку могу перемещать по коврику smile

Ой от души выговорился, мужики, извиняйте за оффтоп big_smile

Проекту помогу еще не раз, чем смогу, надеюсь не один сайт на NG CMS буду делать, будет дебаг, предложения и доработки всякие, замутим что-нибудь, это обязательно wink


А теперь по теме...


vitaly, как раз у меня к тебе вопрос. Вот ты писал недавно:

vitaly пишет:

Imho, правильней хранить данные о каждом голосе.
newsID, userID, IP, voteDate
для незарегенного юзера userID будет нулевым.
тогда и проблема очистки будет решаться намного проще и конфликтов вида "двое нажали одновременно на <голосовать>, но только один из голосов появился в таблице" (если несколько человек сидят на одном сайте за NAT'ом) не будет

и поставил меня на путь истинный big_smile, я немного переделал скрипт, добавил пару полей в БД всё работает, но...

Изначально в моей функции есть косяк. Я не пойму, причем тут User ID ? smile
Теперь получается что незалогиненный 127.0.0.1+UserID=0 проголосовал один раз за новость, потом вошел на сайт, и опять у него появляется возможность проголосовать за ту же новость, т.к. это уже 127.0.0.1+UserID=1

Что-то я не пойму логику, UserID надо или убрать, или делать как-то по другому sad
Запутался я короче говоря, или я неправильно тебя понял... big_smile

Хотя... Может писать в базу надо IP+UserID+NewsID а читать (IP+NewsID or UserID+NewsID) ?
А смысл? Опять я что-то не догоняю...

Не в сети

#40 2011-10-15 18:25:15

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

В твоем случае UserID не нужен, один хрен разрешать голосовать или нет ты разрешаешь только по IP. В предложении Виталия предлагается дать возможность для голосования с одного IP, тебе это вроде как не нужно. Можно сделать две версии защиты, например, жестко считать только IP или давать возможность разным пользователям головать с одного IP

Не в сети

#41 2011-10-15 18:48:23

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Wolverine пишет:

В твоем случае UserID не нужен, один хрен разрешать голосовать или нет ты разрешаешь только по IP

Вот и я о том-же..
Да, но могут-же и несколько юзеров с одного IP на сайт заходить, желательно бы их всех различать, но это невозможно, если только дополнительные заголовки вместе с IP не считывать, или еще как-то roll

Значит я UserID убираю, хотя я подумаю еще над этим...

Не в сети

#42 2011-10-15 19:32:48

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Wolverine пишет:

или давать возможность разным пользователям голосовать с одного IP

Получается, логичнее это делать только при включенной опции "Рейтинг только для зарегистрированных" в настройках плагина?
Стоп, а разве даже если включено - "Рейтинг только для зарегистрированных", в БД не пишется UserID того кто проголосовал за новости, а тоже только печенька в браузер ставится? yikes
Тогда конечно надо сделать, мне это не нужно, но кому-нибудь обязательно пригодится!..
Опять-же, если зарегистрированному юзеру удалить куки, и войти на сайт, с одного ip, потом с другого(если у него динамический IP), и возможность проголосовать может то появляться, то пропадать, если IP найдется.
Отсюда вывод - поле UserID я оставлю, просто нужно искать и сравнивать результаты в БД как я и сказал раньше  -  и IP+NewsID, и UserID+NewsID вот и логика, хоть включай "Рейтинг только для зарегистрированных", хоть выключай, результат одинаковый - один IP несколько раз проголосовать за одну новость не сможет, и один UserID тоже smile
С другой стороны - если включено "Рейтинг только для зарегистрированных" то на IP можно вообще не обращать внимания, а делить голосующих по UserID... Надо выбрать какой-нибудь вариант.
Ой я пойду покурю... tongue

Не в сети

#43 2011-10-15 23:17:35

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Апдейт. Только так и больше никак, и IP, и ID пользователя надо учитывать, если он зарегистрирован.

function ipcheck ($news_id, $upd) {
global $ip, $mysql, $userROW;
	/* Ищем в базе строку с текущими IP или User ID и News ID */
	if($mysql->record("select * from ".prefix."_rating where (user_id='".intval(is_array($userROW))."' or ip='".$ip."') and news_id='".$news_id."'")) {
	return true; /* Юзер уже голосовал за эту новость, возвращаем истину */
	}
 else { 
	/* Юзер еще не голосовал за эту новость */
	if($upd){

if(intval(pluginGetVariable('rating', 'last_clear')) <= time()) {  // проверяем промежуток времени очистки таблицы
$mysql->query('DELETE FROM `'.prefix.'_rating` WHERE `vote_date` < '.(time()-5184000).';'); // удаляем старые записи
pluginSetVariable('rating', 'last_clear', (time()+86400));
pluginsSaveConfig();
}
 // далее голосуем
	$mysql->query("INSERT INTO ".prefix."_rating set user_id='".intval(is_array($userROW))."', vote_date=".time().", ip='".$ip."', news_id='".$news_id."'");
	}
	return false;
}
}

Вот только опять косяк у меня - 10 SQL запросов (time: 0.04 сек.) при загрузке главной страницы, и превью 3-х новостей, каждая новость добавляет два запроса! yikes

SQL queries:
[ 0.0003 ] select * from `ng_category` order by posorder asc
[ 0.0002 ] select * from ng_users where authcookie = 'e20d1756ef6c888e3bd2a6ea99968536' limit 1
[ 0.0006 ] SELECT * FROM ng_news WHERE (`approve` = '1') AND (`mainpage` = '1') order by ratesort desc, postdate desc limit 0,3
[ 0.0002 ] select * from ng_rating where (user_id='1' or ip='127.0.0.1') and news_id='1'
[ 0.0002 ] select * from ng_rating where (user_id='1' or ip='127.0.0.1') and news_id='1'
[ 0.0002 ] select * from ng_rating where (user_id='1' or ip='127.0.0.1') and news_id='2'
[ 0.0002 ] select * from ng_rating where (user_id='1' or ip='127.0.0.1') and news_id='2'
[ 0.0002 ] select * from ng_rating where (user_id='1' or ip='127.0.0.1') and news_id='5'
[ 0.0002 ] select * from ng_rating where (user_id='1' or ip='127.0.0.1') and news_id='5'
[ 0.0002 ] SELECT count(*) as count FROM ng_news WHERE (`approve` = '1') AND (`mainpage` = '1')

Вот такая колбаса! big_smile
Буду исправлять...

Не в сети

#44 2011-10-15 23:19:21

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Так проверять нужно при нажатии, а не как только зайдет на сайт smile

Не очень понятна:

(user_id='".intval(is_array($userROW))."'

тут походу intval выручает))
Скорее:

user_id='".intval($userROW['id'])."'

и скобки не обязательны...

Не в сети

#45 2011-10-15 23:26:02

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

ROZARD пишет:

Так проверять нужно при нажатии, а не как только зайдет на сайт smile

Логично smile Но, я проверяю для того, чтобы выдать или не выдать к новости "5 больших звезд" для голосования, а зачем пользователю опять показывать звёзды, если он уже проголосовал? Рейтинг-то отображается в процентах от 1 до 100...

Не в сети

#46 2011-10-15 23:30:24

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Тогда делай один запрос пройдясь по всей таблице и запиши всё в одну переменную и по ней уже сравнивай все новости.

P.S. всего кода не вижу и подробнее написать не могу...

Не в сети

#47 2011-10-15 23:51:15

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Ну по-хорошему надо проверять и при заходе, чтобы пользователю показывать как именно он проголосовал.. но тут правильнее уже делать JOIN к основному select'у по новостям, не уверен что штатно это получится сделать.

Не в сети

#48 2011-10-15 23:58:54

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

ROZARD пишет:

Не очень понятна:

(user_id='".intval(is_array($userROW))."'

тут походу intval выручает))
Скорее:

user_id='".intval($userROW['id'])."'

и скобки не обязательны...

is_array($userROW) выдает ID пользователя, а что? Как было в плагине, так я и скопировал, я же не знаю до конца что там в массиве ))) smile Понял, значит будет $userROW['id'] а в intval() его обязательно оборачивать?

А насчет скобок, а разве без скобок получится? select * from ng_rating where (user_id='1' or ip='127.0.0.1') and news_id='1' - этот запрос должен найти в таблице все строки с полями user_id или ip с новостью news_id='1' а как-же без скобок? Или синтаксис неправильный?


ROZARD пишет:

Тогда делай один запрос пройдясь по всей таблице и запиши всё в одну переменную и по ней уже сравнивай все новости.

P.S. всего кода не вижу и подробнее написать не могу...

А что его смотреть, функция вызывается всего 3 раза:
1) При голосовании, когда проверяется - вдруг в браузере уже есть печенька, и за эту новость уже голосовали
2) При голосовании, после того как в браузер ставится печенька
3) И при выборе - что показать юзеру, звёзды или просто рейтинг, и это тот самый вариант вызываемый 6 раз:

	if ((isset($_COOKIE['rating'.$newsID]) && $_COOKIE['rating'.$newsID]) || (extra_get_param('rating','regonly') && !is_array($userROW)) || ipcheck($newsID, 0)) { // ipcheck 3
		// Show
		$tpl -> template('rating', $tpath['rating']);
		$tpl -> vars('rating', $tvars);
		return $tpl -> show('rating');
	} else {
		// Edit
		$tpl -> template('rating.form', $tpath['rating.form']);
		$tpl -> vars('rating.form', $tvars);
		return $tpl -> show('rating.form');
	}
vitaly пишет:

Ну по-хорошему надо проверять и при заходе, чтобы пользователю показывать как именно он проголосовал.. но тут правильнее уже делать JOIN к основному select'у по новостям, не уверен что штатно это получится сделать.

JOIN к основному select'у

- непонятно smile
Надо, но походу и правда не получится, у меня есть вариант - показывать звезды только при просмотре полной новости, это как вариант... Т.е только при просмотре полной новости будет добавляться 2 запроса. И почему кстати их два??... Надо разбираться...

Изменено ikv777vlg (2011-10-16 00:00:29)

Не в сети

#49 2011-10-16 00:02:28

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

is_array($userROW) выдает ID пользователя, а что?

не, is_array определяет, является ли переданный параметр массивом smile

Не в сети

#50 2011-10-16 00:10:30

ikv777vlg
Участник
Откуда Волгоград
Зарегистрирован: 2011-10-10
Сообщений: 137
Рейтинг :   

Re: Защита от накруток в плагине rating, запись IP-адреса юзера в БД

Wolverine пишет:

is_array($userROW) выдает ID пользователя, а что?

не, is_array определяет, является ли переданный параметр массивом smile

Вот это да yikes 
А я забыл, и машинально принял ее за обычную функцию, которая объявлена где-то в глубине CMS lol Бывает же )))))))
А ты прикинь, я незалогинен - is_array($userROW) возвращает - 0, если залогинен под учетной записью администратора, у меня User ID = 1, и is_array($userROW) тоже возвращала 1, регистрация пользователей запрещена - никакого подвоха, так-бы всё и работало )))))))) lol

Не в сети

Подвал раздела

Работает на FluxBB