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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
if($data['hv'] >= $alerte)
on peu voté mais il n'y a pas d'incrémentation d'un point.
Code : PHP



Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
$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