Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/12/2005, 12:08
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 23 años, 2 meses
Puntos: 129
Ya que usas Base de datos .. se trata de que tengas una tabla más en tu BD .. donde registres la IP del cliente:

Con:
$_SERVER['REMOTE_ADDR']

Obtienes la IP de tu cliente (el que está visitando o intentando votar).

La registras en tu BD si no existe .. para eso:

Código PHP:
<?
// conectas a tu BD .. etc ...

// cuantas el n° de ocurrencias de la IP del cliente ..
$sql="SELECT COUNT(*) WHERE ip='".$_SERVER['REMOTE_ADDR']."
'"
;
$result=mysql_query($sql) or die (mysql_error());
// Si es 0 .. no existe .. la insertas en tu BD y dejas votar ...
if (mysql_result($result,0) == 0){
$sql="INSERT INTO ips (ip) VALUES ('".$_SERVER['REMOTE_ADDR']."')";
mysql_query($sql);

// Aquí iría tu actual código de registro de la votación.

} else {
  
// Si existe la IP .. sueltas el mensaje de erro Y no dejas votar.
 
echo "Su IP: ".$_SERVER['REMOTE_ADDR']." ya realizó una votación.";
}
?>
Y la tabla sería algo tipo:
Código PHP:
CREATE TABLE `ips` ( 
  `
ipvarchar(11) default NOT NULL
  
PRIMARY KEY  (`ip`) 
TYPE=MyISAM
Podrías registrar en que fecha votó tal IP, ... así podrías quitar el desbloqueo a dicha IP por tiempo.

Recuerda también y no discrimienes a las personas que votan pero su conexión pasa por un proxy (tomandos todos la misma IP) .. com proxys de empresas .. o de algunos ISP's que pasan a todos sus usuarios por una misma IP .. Eso te va a dar problemas. Realmente lo único seguro para evitar que vote una persona dos veces es obligar a un registro (con su usuario/password) y marcar a ese usuario cuando vote.

Un saludo,