Pues, haber... he intentado hacerlo con la IP, de la siguiente forma:
Código PHP:
<? @mysql_connect('***','****','*****')or die ('Ha fallado la conexión: '.mysql_error());
@mysql_select_db('IP')or die ('Error al seleccionar la BD: '.mysql_error());
$SSQL_=mysql_query("SELECT * FROM IP WHERE id='".$_GET[id]."'")or die(mysql_error());
$array_d=mysql_fetch_array($SSQL_);
$valoracioN_total=@round($array_d[ptos]/$array_d[num_votos],2);
$sql="SELECT COUNT(*) FROM IP WHERE ip='".$_SERVER['REMOTE_ADDR']."'";
$result=mysql_query($sql) or die (mysql_error());
if (mysql_result($result,0) == 0){
if(isset($_POST[valor])){
$sql="INSERT INTO IP (ip) VALUES ('".$_SERVER['REMOTE_ADDR'].") ";
mysql_query($sql);
if(mysql_num_rows($SSQL_)==0){
@mysql_query("INSERT INTO IP VALUES('".$_GET[id]."','1','".$_POST[valor]."')")or die ('ERROR AL INSERTAR REGISTRO: '.mysql_error());
}else{
@mysql_query("UPDATE IP SET num_votos=num_votos+1,ptos=ptos+".$_POST[valor]." WHERE id='".$_GET[id]."'")or die ('ERROR AL MODIFICAR REGISTRO: '.mysql_error());
}
echo "Gracias por su voto<br><br>";
}
} else {
// Si existe la IP .. sueltas el mensaje de error Y no dejas votar.
echo "Su IP: ".$_SERVER['REMOTE_ADDR']." ya realizó una votación.";
}
if ($array_d[num_votos]=='') {
$array_d[num_votos]='0';
}
echo '<strong>Valoración Media : '.$valoracioN_total.'</strong> <div style="background-color:#EFEFEF; width:50px"><img width="'.($valoracioN_total*5).'" height="6" style="background-color: #000099"></div> <br>Total de votos: '.$array_d[num_votos];
?>
<form action="<? echo "valoracion.php?id=$id";?>" method="post">
Nueva valoración:
<select name="valor" id="valor">
<? for ($i=1; $i<=10 ; $i++) echo '<option value="'.$i.'">'.$i.'</option>';?>
</select>
<input type="submit" value="Votar" name="boton_submit">
</form> <?
}
?>
Pero simplemente, no guarda IP ninguna, con lo cual te deja votar las veces que te de la gana...
Por favor, diganme cual es el posible error. Y que así guarde en la Id correspondiente, la IP del que votó.
Muchas gracias
Un cordial saludo