【发布时间】:2013-09-03 06:25:52
【问题描述】:
Joomla 2.5 默认限制用户可以投票的数量。这受 IP 地址的限制。
是否有任何简单的方法可以允许每个 IP 地址进行多次投票?
我正在使用 CORE 投票。
【问题讨论】:
标签: joomla joomla2.5 limit voting
Joomla 2.5 默认限制用户可以投票的数量。这受 IP 地址的限制。
是否有任何简单的方法可以允许每个 IP 地址进行多次投票?
我正在使用 CORE 投票。
【问题讨论】:
标签: joomla joomla2.5 limit voting
实际上,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;
}
我不觉得原来的核心解决方案很好,而且它也不能定制。
【讨论】: