Bonjour, je suis actuellement en train de créer un site web mais je suis confronté à un problème que je n'arrive pas à régler.
Effectivement dans ce site, il y a un espace membre, et chaque membre a
un nombre de points, jusque là pas de soucis, mais j'ai créé une page
qui fait que, à chaque fois qu'un membre clique sur un des 10 liens
présents sur la page son compte est crédité de 10 points.
Or, je ne sais pas comment sécuriser pour chaque membre, afin que si il
clique une fois sur le lien, il gagne 10 points, mais que si il
reclique cela ne lui ajoute pas 10 points à nouveau..
une table membre, une table lien, une table click (c'est qu'un exemple hein lol).
dans click on a id_membre et id_lien. Tu remplis avec l'id_membre et l'id_lien quand un de tes membres clique sur un lien.
Et là, tu peux même t'amuser, quand un membre est connecté, à n'afficher que les liens dont l'id_lien n'est pas lié à l'id_membre du mebre en question, dans la table click.
Ou tu peux juste n'ajouter les points que lorsque, quand il clique, cette jointure n'est pas présente.
et enfin tu vais une table qui va engendrer une relation entre les deux (de type many-to-many mais tout le monde s'en fout)
table clicks :
id_membre : 2 id_lien : 4
id_membre : 3 id_lien : 1
id_membre : 2 id_lien : 3
id_membre : 2 id_lien : 2
id_membre : 1 id_lien : 2
etc...
et là, si nono (id=2 dans la table membres) veut cliquer une nouvelle fois sur http://www.php.net/(id = 4 dans la table liens) pour bien booster son quota, tu n'as qu'a vérifier si il n'y a pas dans la table clicks un enregistrement avec à la fois id_membre = 2 et id_lien = 4.
d'autant plus que te conseil d'indexer en clé primaire la paire id_membre, id_lien ( PRIMARY KEY (id_membre,id_lien) ), ce qui fera générer une erreur à MySQL quand si tu essayais d'ajouter à nouveau une paire identique.
Bah lors du premier clic vous créer une variable de session et vous la
checker par la suite ... Vous pouvez également mettre en place un
système de temps ...
Bon courage ...
NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...
Malalam merci pour ta réponse mais c'est un peu compliqué vu que j'ai
déjà beaucoup de requetes SQL, Sjon, les sessions me paraissent être
une bonne solution mais si le membre se déconnecte et se reconnecte il
pourra de nouveau être crédité de dix points.
Ahh oui de plus, les 10 liens sur la page ne sont pas statiques, c'est
à dire qu'à n'importe quel moment, un site peut se rajouter à cette
liste ainsi le premier site devient deuxième et le 10° site s'en va de
la liste vous voyez ?
Donc il faudrait qu'à chaque actualisation de la liste si le membre
clique sur le premier lien, il soit crédité, et que si il clique sur le
deuxième lien ( l'ancien premier sur lequel il avait déjà cliqué ) il
ne soit pas crédité
Je sais c'est compliqué c'est pourquoi je fais appel à vous! merci!
Heu...ma solution est simple, et c'est la plus efficace pour ton
problème, justement. Et puis en fait, c'est la seule, pour ce que tu
veux...lol.
Donc il faudrait qu'à chaque actualisation de la liste si le membre
clique sur le premier lien, il soit crédité, et que si il clique sur le
deuxième lien ( l'ancien premier sur lequel il avait déjà cliqué ) il
ne soit pas crédité
D'où l'intérêt d'une table lien. Je ne vois pas ce que ça a de compliqué.
Bah vous créez un variable de session $_SESSION[LIEN]=Id du lien
et vous stockez sur le server le temps ... Mais il est vrai que la
solution de Malalam est la meilleure ... et simple à mettre en oeuvre
en plus ... Donc orientez vous plutôt la dessus ...
Bon courage ...
NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...