[PHP] Sytème anti-triche :)

Sytème anti-triche :) [PHP] - PHP - Programmation

Marsh Posté le 14-05-2002 à 19:28:38    

Salut a tous :)
 
J'ai fais un Top 50 pour mon site, et je me heurte donc aux petits tricheurs qui votent 100x par jour pour leur site :(
 
J'ai donc pensé a un systeme qui stockent les dernieres IP dans la base MySQL :)
 
Mais justement, pour stocker les 10 derniers IP, je fais 10 champs ? Ou bien, je fais un champ, et les IP sont stockées les unes a la suite des autres ?
 
En fait, je vois pas trop comment faire :(
 
Sinon, si j'utilise le systeme de stockage d'IP, un systeme anti-triche est utile aussi ou pas ?
 
Merci a tous :)
Arnaud ;)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
Reply

Marsh Posté le 14-05-2002 à 19:28:38   

Reply

Marsh Posté le 14-05-2002 à 20:00:41    

Reply

Marsh Posté le 14-05-2002 à 20:14:13    

Une table avec 2 colonnes, l'IP et la date du dernier vote sur cette IP.
Avant de valider, tu recherche dans cette table :
- Si l'IP s'y trouve et que la date est < à 24 heures, tu valides pas.
- Sinon, tu valides le vote et tu insères la nouvelle IP (où tu mets à jour le champ date).
 
Faudra penser à vider la table des IP les plus vieilles de temps en temps.

Reply

Marsh Posté le 14-05-2002 à 20:21:50    

ca sur programmationworld.com  
 
ya un super article sur la création d'un sondage, qui permet egalement de ne pas voter 2 fois grace a un stockage d'ip


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
Reply

Marsh Posté le 14-05-2002 à 20:43:12    

Je viens de faire ca :
 

Citation :

$query = "delete from ip";
$result = mysql_query($query);
if(!$result)
     die( mysql_errno(). ": ".mysql_error(). "<br>" );
 
$ip=getenv( "REMOTE_ADDR" );
$sql = "UPDATE top50 SET hitsin=hitsin+1 WHERE id = '$id'";
$sql2 = "UPDATE top50 SET ip=$ip WHERE id = '$id'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
mysql_close($db);  
?>


 
Malheureusement, ca marche pas, l'IP n'est pas enregistrée ds la base, vous voyez pk ?
 
Merci bocoup ;)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
Reply

Marsh Posté le 14-05-2002 à 20:46:12    

Max Evans a écrit a écrit :

Je viens de faire ca :
 

Citation :

$query = "delete from ip";
$result = mysql_query($query);
if(!$result)
     die( mysql_errno(). ": ".mysql_error(). "<br>" );
 
$ip=getenv( "REMOTE_ADDR" );
$sql = "UPDATE top50 SET hitsin=hitsin+1 WHERE id = '$id'";
$sql2 = "UPDATE top50 SET ip=$ip WHERE id = '$id'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
mysql_close($db);  
?>


 
Malheureusement, ca marche pas, l'IP n'est pas enregistrée ds la base, vous voyez pk ?
 
Merci bocoup ;)  




 
tu l'a vide a chaque fois!!

 

[jfdsdjhfuetppo]--Message édité par veryfree le 14-05-2002 à 20:47:53--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-05-2002 à 20:55:37    

Max Evans a écrit a écrit :

Je viens de faire ca :
 

Citation :

$query = "delete from ip";
$result = mysql_query($query);
if(!$result)
     die( mysql_errno(). ": ".mysql_error(). "<br>" );
 
$ip=getenv( "REMOTE_ADDR" );
$sql = "UPDATE top50 SET hitsin=hitsin+1 WHERE id = '$id'";
$sql2 = "UPDATE top50 SET ip=$ip WHERE id = '$id'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
mysql_close($db);  
?>


 
Malheureusement, ca marche pas, l'IP n'est pas enregistrée ds la base, vous voyez pk ?
 
Merci bocoup ;)  



Pourquoi tu vides toujours la table ip :??:  
 
Sinon, tu peux mettre à jour 2 colonnes en même temps, pas la peine de faire 2 requetes :
UPDATE top50 SET hitsin=hitsin+1, ip='$ip' WHERE id = '$id'";
(en mettant ip entre '';)

Reply

Marsh Posté le 14-05-2002 à 20:56:29    

Ha oki lol, ca a l'air de marcher :)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
Reply

Marsh Posté le 14-05-2002 à 20:57:03    

bien grilled là ...  
 
$query = "delete from ip where date<".time();
$result = mysql_query($query);
 
$ip=getenv("HTTP_X_FORWARDED_FOR" ) ? getenv("HTTP_X_FORWARDED_FOR" ) : getenv("REMOTE_ADDR" );
$query= "Select * from ip where ip='$ip'";
$result = mysql_query($query);
if(mysql_num_rows($query)>0){
  echo "un seul vote, merci";
  exit;
}

 
$sql = "UPDATE top50 SET hitsin=hitsin+1 WHERE id = '$id'";
$sql2 = "INSERT INTO ip (ip,date) VALUES ('$ip','".time()+3600*24."';)";
$req = mysql_query($sql);
$req2 = mysql_query($sql2);
mysql_close($db);

 

[jfdsdjhfuetppo]--Message édité par ethernal le 14-05-2002 à 20:59:36--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-05-2002 à 21:02:10    

Ho, c le code pour limiter le vote a une fois par jour, et un stockage de l'IP ????
 
C ce que je cherchais !  :love:  
 
MERCHI ! :) :love:


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed