Comment empecher un internaute de voter plusieurs fois sur le meme élément ?
alf666666
Messages postés46Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention16 avril 2008
-
13 août 2005 à 09:24
cs_bastoun
Messages postés164Date d'inscriptiondimanche 1 octobre 2000StatutMembreDernière intervention23 mars 2007
-
18 août 2005 à 09:56
Je désire savoir comment faire pour empecher un internaute de faire un vote sur qqch, plusieurs fois pour le meme élément et donc influencer le vote négativement ?
Si je fais avec les cookies sur son ordi... il supprime les cookies et il pourra recommencer...
Merci de m'aiguiller
Salutations
Alf
A voir également:
Comment empecher un internaute de voter plusieurs fois sur le meme élément ?
cs_Metrox
Messages postés267Date d'inscriptionjeudi 19 septembre 2002StatutMembreDernière intervention 8 septembre 2013 16 août 2005 à 10:57
En fait, il y a deux possibilités, variables de session ou variables clients. Pour ma part j'utilise plus fréquemment les variables de sessions, qui se terminent une fois que l'utilisateur quitte le site. Si tu veux faire en sorte que ton utilisateur même en ayant quitté le site ne puisse plus voter, tu peux faire expirer les variables de session plus tard en espérant qu'il les reprenne, ou alors utiliser des variables clients, qui elles-mêmes utilisent selon le mode choisi des cookies.
Ces deux variables sont à déclarer dans ton fichier application.cfm.
Si tu veux des exemples d'utilisation de variables de session, tu peux m'envoyer un mail, je t'enverrai quelques pages à moi...
max@metrox.be
cs_bastoun
Messages postés164Date d'inscriptiondimanche 1 octobre 2000StatutMembreDernière intervention23 mars 20071 18 août 2005 à 09:05
Si tes internautes sont identifiés par identifiant/mot de passe, sert
toi d'une des clefs d'unicité de ta table en tant que référence par
exemple (par exemple la clef primaire)
Si ce n'est pas le cas, tu peux utiliser effectivement les variable
client ou de session, mais niveau fiabilité c'est pas top : dans les
deux cas, un bon nettoyage des cookies(quelque soit la durée de ta
session) permettra à un internaute de voter plusieurs fois, sauf si ton
jeton de session sert de clef dans ta base d'internaute (mais bon, là
tu reviens à la première parti de ma réponse)
Vous n’avez pas trouvé la réponse que vous recherchez ?
alf666666
Messages postés46Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention16 avril 2008 18 août 2005 à 09:13
Salut bastoun,
Ta réponse m'intéresse beaucoup, j'ai effectivement dans ma table une clé primaire sur une table client qui possède donc un champ nom d'utilisateur et un champ mot de passe, est ce que tu pourrais m'expliquer comme tu ferais à ce moment la... aurais tu un exemple par hasard ?
Merci
Salutations
Alf
cs_Metrox
Messages postés267Date d'inscriptionjeudi 19 septembre 2002StatutMembreDernière intervention 8 septembre 2013 18 août 2005 à 09:52
Ben ton Identifiant est une clé primaire non?
Tu peux stocker dans une table sondage_resultats l'identifiant unique du sondage et le login de l'utilisateur. S'il essaie de voter une seconde fois, et qu'il est présent dans cette table, il ne peut plus...
<cfquery name="maquery" database="madb">SELECT * FROM sondage_resultats where login '#session.login#' AND sondage_id '#querysondage.id#'
</cfquery>
<cfif #maquery.recordcount# EQ 0>
cs_bastoun
Messages postés164Date d'inscriptiondimanche 1 octobre 2000StatutMembreDernière intervention23 mars 20071 18 août 2005 à 09:56
Tout dépend de comment sont structurées tes tables et de comment tu
stocke les réponses de tes client, mais je suppose que
lorsqu'un internaute répond, tu incrémente un compteur pour l'élément
choisi et que tu ne stockes pas qui à répondu quoi (sinon, je ne vois
pas pourquoi tu poses ta question puisque tu peux à ce moment là savoir
qui a déjà répondu..)
Mais en gros, il
faut que tu aies une table de relation entre la table questionnaire et
la table internaute. Cette table doit avoir au moins deux colonnes :
une colonne étant une clef etrangère correspondant à la clef primaire de l'internaute et une autre qui
correspond à la clef primaire du questionnaire.
Par exemple ma table sera AReponduA(ClientIdx,QuestIdx)
Donc quand une personne répond, tu dois simplement insérer le couple (clef primaire du client, clef primaire du questionnaire)
Et lorsque tu veux vérifier que la personne n'a pas déjà répondu, tu
requètes sur cette table en vérifiant que le couple n'existe pas déjà.
bon... si tu veux un peu plus de précision et d'explications, n'hésites pas.