Проблема с плагином е107.

disker

Гуру форума
Регистрация
28 Авг 2007
Сообщения
626
Реакции
67
Поставил на е107 плагин рейтинга сообщений на форуме

и столкнулся с такой проблемой, что рейтинг можно накручивать сколько хочешь, если сидишь под обычным пользователем. Если зайти под админом , то проблемы нет. Может есть кто на форуме кто на е107 кодит и сталкивался с такой проблемой, а то я в php не силен и не могу понять где может быть ошибка. Если нужно могу скинуть код файлов плагина или сам плагин сюда. :thenks:

UPD.: небольшое уточнение - методом тыка было обнаружено, что накручивать рейтинг могут только пользователи с никами кирилицей (то есть русские ники) . Если у пользователя ник латинскими символами, то накрутка невозможна. Покопался в плагине и есть подозрения, что проблема в том, что е107 не понимает русские ники (точнее плагин не понимает) , поскольку строка , которая отправляет данные голосования отправляет в таком виде :

PHP:
$user_rid = preg_replace("/[^0-9a-zA-Z\.]/","",$q[4]);

это один из 5-ти параметров, что пишется в базу при голосовании. Как видно передается только латиница. Как в эту строку добавить и кирилицу? Пробовал вот так :
PHP:
$user_rid = preg_replace("/[^0-9a-zA-Zа-яА-Я\.]/","",$q[4]);

но не помогает. Понимаю, что для кого-то вопрос покажется детским, но может кто подскажет куда копать ? :)

P.s. ещё в файле голосования, в самом начале, дополнительно прописываю строку

PHP:
header('Content-type: text/html; charset=utf8');
чтобы движок понимал кирилицу (на всякий случай), но и так не помогает :thenks:
 
С e107 не сталкивался, но по регуляркам попробуй вот так сделать:
PHP:
 $user_rid = preg_replace("/[^\S\.]/","",$q[4]);
либо добавь пораметр ius
PHP:
 $user_rid = preg_replace("/[^0-9a-zA-Zа-яА-Я\.]/ius","",$q[4]);
 
С e107 не сталкивался, но по регуляркам попробуй вот так сделать:
PHP:
 $user_rid = preg_replace("/[^\S\.]/","",$q[4]);
либо добавь пораметр ius
PHP:
 $user_rid = preg_replace("/[^0-9a-zA-Zа-яА-Я\.]/ius","",$q[4]);
первый вариант честно говоря боюсь использовать. Я так понимаю, что там будут передаваться все непробельные символы и вот не знаю как с безопасностью будет. Я и сам думал над таким вариантом. А второй что-то не могу найти что дает параметр ius , поэтому не могу разобраться. :(
 
Второй вариант указывает:
i - игнорирование регистра
s - игнорирование переносов строки
u - utf
 
Назад
Сверху