Fork me on GitHub

Rapport de message :*
 

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 ) {
            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.
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

45 Personne(s) en ligne (29 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 45 | Plus ...