on parle bien du même, je pense que tu n'a pas shunté l'ipnum
je m'explique
j'ai réduit le code à l'essentiel de mon explication, c'est normal mais, bien sur, il ne faut supprimer les lignes manquantes c'est juste pour permettre simplement l'explication
<?php
$ip_num = preg_replace("/[^0-9\.]/","",$_REQUEST['t']);
$ip = $_SESSION['userid'];
//connexion
$query = mysql_query("SELECT id_question, id_chien, total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id_sent' ")or die(" Error: ".mysql_error());
$numbers = mysql_fetch_assoc($query);
$checkIP = unserialize($numbers['used_ips']);
// si c'est la table existe deja a déjà on ajoute les valeurs valeur
((is_array($checkIP)) ? array_push($checkIP,$ip_num) : $checkIP=array($ip_num));
$insertip=serialize($checkIP);
if (($vote_sent >= 1 && $vote_sent <= $units) && ($ip == $ip_num)) { /
?>
la première ligne prend un variable provenant de get/post ou cookie (on ne sais pas
voir la doc pour plus d'info 
), cette variable (t) est 'nettoyée' de tous ce qui n'est pas un chiffre ou un point (parce qu'une ip c'est que des chiffres et des points ex 192.168.1.2) donc tous ce qui n'est ni l'un l'autre est supprimé.
ensuite on affect la valeur du userid de la session à la variable $ip.
requete sql pour récupérer les infos de la tables.
arrive un truc un peu spécial $checkIP = unserialize($numbers['used_ips']); => qu'est ce que c'est que bazar ?
pour expliquer ce qu'est la serialisation je te renvoie a la doc des fonctions utilisée ici
http://fr2.php.net/serialize
mais pour faire simple c'est le fait de transformer tout objet / tableau / variable en unse chaine de caractère qui pourra être réutiliser pour le reconstruire
ici on prend la table checkIP on le serialise, on le met dans la table.
Après on fait l'inverse et l'on a directement un tableau utilisable dans la variable checkIP.
((is_array($checkIP)) ? array_push($checkIP,$ip_num) : $checkIP=array($ip_num));
ça c'est un test qui permet de soit créer le tableau avec l'ip actuel soit ajouter l'ip actuel dans le tableau. Utilise pour différencier le cas 1er vote des autres (au 1ere vote y a pas de tableau donc il faut initialiser la chose

)).
ça c'est pour le stockage
après viens : ($ip == $ip_num)) et la c'est le drame
cette égalité ne peu être vérifiée car un id (entier) est comparée à un chaine de caractère (aucun n'entier ne peux être égale à 192.168.1.12 , par exemple

)
la il faut que tu enlève complètement cette condition qui n'a donc plus lieux d'être
bon par contre je ne comprend pas c'est que ces ip ne soit pas utilisées ^^
@+