Savoir si quelqu'un a déja voté aujourd'hui

jeronino -  
Grunt Messages postés 2845 Statut Contributeur -
Bonjour,

Je suis en train d'intégrer un système de vote sur mon site en php et je voulais savoir comment faire pour savoir si l'internaute a déjà voté ce jour même ?

Merci
A voir également:

3 réponses

Grunt Messages postés 2845 Statut Contributeur 301
 
Conserve son adresse IP, ce n'est pas infaillible mais c'est assez correct. Sinon, il faudra que tu lui mettes un cookie (et même là ce n'est pas infaillble).
0
jeronino
 
ok mais si je conserve l'ip comment je fais pour que mysql efface les ip qui on voté la veille ?
0
Grunt Messages postés 2845 Statut Contributeur 301
 
Bonne question, j'en sais rien. Mais il y a des fonctions de test sur les dates en PHP il me semble. Tu enregistres IP+date à chaque vote, et pour les nouveaux votes tu regardes si la combinaison "même IP + moins de 24H" existe, dans ce cas tu refuses. Sinon tu acceptes. pas besoin d'effacer.

Surtout que si tu gardes l'IP tu ne permettras à ceux qui ont une IP fixe (chez free c'est gratuit) de ne voter qu'une fois. pareil pour les proxy, genre université, ça sera un vote par proxy et point final..
En fait le cookie est une meilleure solution.
0
jeronino
 
Ok je vais me renseigner sur les cookies parce que j'en ai jamais fais.

Merci
0
jeronino
 
Salut, je pense que la technique ip + date avec sql est mieux que celle des cookies.
Mais je me pose plusieurs questions:

-Dans mysql je doit choisir quel type pour les champ "id" et "date" ? (vu qu'il y aura des points ou des slash)
-A quoi sert le type "Date" dans sql ?
-Y-a t il une fonction toute prête de mysql pour qu'a chaque entrée la date s'enregistre ?

Merci
0
Grunt Messages postés 2845 Statut Contributeur 301
 
Pour l'IP, tu fais soit 4 champs de type "entier" (IP1,IP2, IP3, IP4), soit un champ du type "chaîne de caractères". Le reste je sais pas, je connais pas assez MySQL, mais les réponses se trouvent là :
http://dev.mysql.com/doc/refman/5.0/fr/index.html
En français ^^
Si ce n'est pas assez complet, le net fourmille de tutos. Y'en a même sur CCM
0