Savoir si un membre a déjà effectué une action ou non [TITRE MODERE CAR PEU EXPL

[Résolu]
Signaler
Messages postés
127
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
11 juin 2008
-
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006
-
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..



Voyez vous mon problème ?



Merci bien, j'espère que vous pourrez m'aider.

11 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

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.
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

Moi je vote pour malalam :]

La relation many-to-many a fait ses preuves! Ça ne peut que marcher!



Bon pour explicité ce que malalam a dit (que j'ai pourtant trouvé clair mais bon)



Normalement tu as une table avec tout tes membres à l'intérieur :

table membres :

id : 1 pseudo : boulay

id : 2 pseudo : nono

id : 3 pseudo : darkslug

etc...



tu fais une table avec tout tes liens

table liens :

id : 1 url : http://www.google.fr/

id : 2 url : http://www.php.net/

id : 3 url : http://www.phpcs.com/

id : 4 url : http://www.csszengarden.com/

etc...



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.



Voilà :)
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesud



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 ...

Sigurjón Bírgir Sigurðssón aka Sjón
Messages postés
127
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
11 juin 2008

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.



N'y a t-il aucun autre moyen ?
Messages postés
127
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
11 juin 2008

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!
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
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é.
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesud



Bah vous enregistrer la date et l'heure du clic et vous ne créditez pas si cela fait moins de 24h par exemple ...

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón
Messages postés
127
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
11 juin 2008

Sjon : Comment faire une session pour chaque lien, et lui donner une validité de 24H .. ? car là je ne sais pas faire



Merci beaucoup !
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesud



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 ...

Sigurjón Bírgir Sigurðssón aka Sjón
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Y a pas, t'es vachement plus pédagogue que moi lol ;-) Merci pour le soutien les gars ça fait chaud au coeur lol.
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

;p