Joomla 2.5不限制每个IP地址一票

时间:2013-08-30 13:40:16

标签: joomla joomla2.5 limit voting

Joomla 2.5默认情况下限制用户可以执行的投票数。这受到IP地址的限制。

是否有任何简单的方法允许每个IP地址多次投票?

我正在使用CORE投票。

1 个答案:

答案 0 :(得分:1)

实际上,Joomla! 2.5仅存储每个项目的最后一个选民的IP地址。

如果另一个投票来自不同的IP地址,则具有原始IP地址的用户可以再次投票。

此行为在/components/com_content/models/article.php中定义,大约在第308行。

if ($userIP != ($rating->lastip))
{
    $db->setQuery(
            'UPDATE #__content_rating' .
            ' SET rating_count = rating_count + 1, rating_sum = rating_sum + '.(int) $rate.', lastip = '.$db->Quote($userIP) .
            ' WHERE content_id = '.(int) $pk
    );
    if (!$db->query()) {
            $this->setError($db->getErrorMsg());
            return false;
    }
} else {
    return false;
}

更改它涉及核心文件黑客攻击。

您可以做的一件事是让if子句中的测试始终返回true,因此有一种可能性是评论第一行并将其替换为

if (true)//$userIP != ($rating->lastip))
{
    $db->setQuery(
            'UPDATE #__content_rating' .
            ' SET rating_count = rating_count + 1, rating_sum = rating_sum + '.(int) $rate.', lastip = '.$db->Quote($userIP) .
            ' WHERE content_id = '.(int) $pk
    );
    if (!$db->query()) {
            $this->setError($db->getErrorMsg());
            return false;
    }
} else {
    return false;
}

我发现原始核心解决方案不是很好,而且也无法自定义。