Re: xoopspoll pour 2.3 | Titre du sujet : Re: xoopspoll pour 2.3 par Ghia sur 15/08/2009 10:15:04
Je pense que la probleme est dans /class/xoopspolllog.php avec cette fonction:
function hasVoted($poll_id, $ip, $user_id=null)
{
global $xoopsModuleConfig;
//
$filter = '';
if ($xoopsModuleConfig['limit_by_uid'] == 1){
if ($user_id > 0) { //otherwise anons cannot vote at all.
$filter .= ' AND user_id ='.intval($user_id);
}
}
if ($xoopsModuleConfig['limit_by_ip'] == 1)
$filter .= ' AND ip ="'.intval($ip).'"';
//if both are set to no then have to default to original behavior otherwise it will break.
if ($filter == '') {
if ( !empty($user_id) ) {
$filter .= " AND user_id=".intval($user_id);
} else {
$filter .= " AND ip='".$ip."'";
}
}
//
$db =& Database::getInstance();
$sql = "SELECT COUNT(*) FROM ".$db->prefix("xoopspoll_log")." WHERE poll_id=".intval($poll_id).$filter;
//
list($count) = $db->fetchRow($db->query($sql));
if ( $count > 0 ) {
return true;
}
return false;
}
Il me parait que le fonction faites trop de confiance pour l'etat de preferences et quand les deux verifications sont active, c'est possible que une utilisateur peut voter que une fois a partir d'ip1, mais encore une fois a partir d'ip2. Je crois quand il y a deja une vote d'utilisateur 1 a partir d'ip1, une nouvelle vote doit etre refusee.
|
|