Bonjour,
J'ai réalisé un code entiérement, et comme je débute tout juste en php j'aimerais savoir si mon code est correct et surtout si il ne comporte pas des failles.
Ce code me permet de permettre à mes visiteurs de donner 1 point à un site toutes les heures seulement.
Voila le code qui vérifi si la personne n'a pas déja voté, en vérifiant la date de sa derniere connexion au script réussite.
Il vérifi également si la personne c'est déja connecté avec son IP et si non il l'enregistre dans la bd.
J'attend vos critiques
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 <?php // conexion bd mysql_connect("localhost", "root", ""); // Connexion à MySQL mysql_select_db("eckopland2"); // Sélection de la base // recuperation ip visiteur $ip = $_SERVER['REMOTE_ADDR']; // vérification anti flood pour 1heure soit 3600 secondes // recuperation info dans table visiteur $mysql_result = mysql_query("SELECT COUNT(*) FROM visiteur WHERE ip = '$ip';"); $mysql_array = mysql_fetch_row($mysql_result); // si ip visiteur non trouvé, créer un nouvel enregistrement if ($mysql_array[0] > 0) { // si ip existe test si l'heure est écoulé // dans un premier temps recuperation de la date de la dernier conexion $reponse = mysql_query("SELECT temps FROM visiteur WHERE ip='$ip'"); $donnees = mysql_fetch_array($reponse); $lastime = $donnees['temps']; // ensuite on compare cette date à la date courante $dateC = date('Y-m-d H:i:s'); // date courante - date visiteur $duree = strtotime($dateC) - strtotime($lastime); // si durée inférieure à 3600 if ($duree < 3600) { // fermer sql mysql_close(); // Déconnexion de MySQL } // si durée supérieure à 3600 OK else { // mise à jour lastime mysql_query("UPDATE visiteur SET temps = NOW() WHERE ip = '$ip'"); // demande variable get Fichier $id = $_GET['id']; // mise à jour du classement mysql_query("UPDATE gallery SET vu = NOW() WHERE fichier = '$id'"); // fermeture sql mysql_close(); // Déconnexion de MySQL } } else { // si ip visiteur non trouvé, créer un nouvel enregistrement // envoi ip et date courante dans visiteur $sql = "INSERT INTO visiteur VALUES ( '".$ip."', now())"; $res = mysql_query($sql) or die(mysql_error()); // demande variable get fichier $id = $_GET['id']; // mise à jour du classement mysql_query("UPDATE gallery SET vu = NOW() WHERE fichier = '$id'"); // fermeture sql mysql_close(); // Déconnexion de MySQL } ?>