problèmes sur l'implémentation d'un système de points
bonjour j'ai créer un script pour voté avec root top.
les utilisateurs votant (tout en étant loger) gagne 1 point.
mais il y a un problème :s.
soit on peut voté no stop et gagné des points a chaque fois ...
soit ne pas voté ^^.
car les points sonts attribués que s'il on vote toute les 2h.
voici ma bdd :
Code : SQL
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
CREATE TABLE IF NOT EXISTS `rc_accounts` (
`account_id` int(11) unsigned NOT NULL auto_increment,
`username` varchar(32) character set latin1 NOT NULL,
`password` varchar(32) character set latin1 NOT NULL,
`email` varchar(32) character set latin1 NOT NULL,
`isdm` tinyint(4) NOT NULL default '0',
`isbanned` tinyint(4) NOT NULL default '0',
`ignore` text character set latin1 NOT NULL,
`pts` int(11) NOT NULL default '0',
`hv` bigint(20) NOT NULL,
PRIMARY KEY (`account_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=8 ;
--
-- Contenu de la table `rc_accounts`
--
INSERT INTO `rc_accounts` (`account_id`, `username`, `password`, `email`, `isdm`, `isbanned`, `ignore`, `pts`, `hv`) VALUES
(1, 'neo22', '********', '*******@*******', 1, 0, '', 12, 1400); |
et voila bien entendu mon script php :
Code : PHP
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <?php
session_start();
$pseudo=$_SESSION['pseudo'];
mysql_connect("sql.free.fr", "david.balan", "*****");
mysql_select_db("david_balan");
$sql = "SELECT * FROM rc_accounts WHERE username='".$pseudo."'";
$req = mysql_query($sql) or exit(mysql_error());
$data = mysql_fetch_assoc($req);
$points = $data['pts'] +1 ;
$heure = date("Hi");
$alerte = $heure+ 120;
if($data['hv'] >= $alerte) {
mysql_query("UPDATE rc_accounts SET pts ='".$points."' WHERE username='".$pseudo."'") or die(mysql_error());
mysql_query("UPDATE rc_accounts SET hv ='" .$heure . "' WHERE username='".$pseudo."'") or die(mysql_error());
mysql_close();
}
header('Location: http://www.root-top.com/topsite/mmorpg/in.php?ID=1207');
?> |
dans le cas du :
Code : PHP
Code:
1 2
|
if($data['hv'] >= $alerte) |
on peu voté mais il n'y a pas d'incrémentation d'un point.
Code : PHP
Code:
if($data['hv'] <= $alerte)
on peut voté non stop et gagné 1 points a chaque fois.
un peu d'aide serai la bienvenue.
autrement comment sécuriser tout ca , car les :
Code : PHP
Code:
1 2 3 4
|
mysql_query("UPDATE rc_accounts SET pts ='".$points."' WHERE username='".$pseudo."'") or die(mysql_error());
mysql_query("UPDATE rc_accounts SET hv ='" .$heure . "' WHERE username='".$pseudo."'") or die(mysql_error()); |
en pleine air c'est une bonne source de hack je pence.
et je ne pence pas mètre :
Code : PHP
Code:
$machin = mysql_query("UPDATE rc_accounts SET hv ='" .$heure . "' WHERE username='".$pseudo."'") or die(mysql_error());
car le mysql_query ne va pas ce lancer dans ce cas.
merci de votre aide
cordialement neo