[PHP] Limiter un clic par jour sur un lien
Fermé
Pilou
-
9 avril 2009 à 14:21
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 9 avril 2009 à 15:30
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 9 avril 2009 à 15:30
A voir également:
- [PHP] Limiter un clic par jour sur un lien
- Créer un lien pour partager des photos - Guide
- Verifier un lien - Guide
- Lien url - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Windows 11 clic droit afficher plus d'options par défaut - Guide
13 réponses
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
9 avril 2009 à 14:23
9 avril 2009 à 14:23
Mettre un champ dans la table des utilisateurs qui contiendra la date du clic.
Quand la personne clic vous enregistrez la date en base et vous effectuez un test pour voir si date courante différente de la date entrée.
Quand la personne clic vous enregistrez la date en base et vous effectuez un test pour voir si date courante différente de la date entrée.
Bah si après je serais comment m'y prendre :)
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
9 avril 2009 à 14:29
9 avril 2009 à 14:29
On apprend mieux en faisant des erreurs qu'en ayant déjà tout de fait.
Dites-moi, que savez-vous faire en PHP?
Dites-moi, que savez-vous faire en PHP?
(T'es pas obliger de me vousvoyer lol)
En php ? Je sais faire toutes sortes de choses, la majorité de ce que je sais je l'ai apris à partir d'un code que j'avais précedement demandé à quelqu'un, mais après j'ai comblé mes lacunes avec siteduzero....
En php ? Je sais faire toutes sortes de choses, la majorité de ce que je sais je l'ai apris à partir d'un code que j'avais précedement demandé à quelqu'un, mais après j'ai comblé mes lacunes avec siteduzero....
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
9 avril 2009 à 14:33
9 avril 2009 à 14:33
Savez-vous vous connecter à une base de données mysql et faire des requêtes?
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
9 avril 2009 à 14:33
9 avril 2009 à 14:33
au passage on risque pas de te dire quel code entrer étant donné qu'on va avoir du mal à deviner à la fois la structure de ton site et de ta base de données...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu recupes l'IP du visiteur quand il clique ( avec la variable d'envirronement $_SERVER['REMOTE_ADDR'] )
tu créés une table clic par exemple qui contient la date/heure/seconde, l'IP et le nom du lien, et a chaque clic tu fais d'abord un
ta requete = SELECT * FROM tatable WHERE ip="l'ipdu gars" && date < "24 heures"
Si ta requette = 0
// c'est a dire que la personne n'a pas cliqué aujourd'hui et donc aucune entrée correspondante
//dans ta table
{
on redirige vers le liens etc
et on fais un INSERT INTO pour enregistrer son clic
}
Sinon
{
message d'erreur du style "vous avez déja cliqué sur ce lien il y a moisn de 24h"
}
J'ai pensé ça rapidement je sais pas si c'est une bonne technique
Ca te parle ?
tu créés une table clic par exemple qui contient la date/heure/seconde, l'IP et le nom du lien, et a chaque clic tu fais d'abord un
ta requete = SELECT * FROM tatable WHERE ip="l'ipdu gars" && date < "24 heures"
Si ta requette = 0
// c'est a dire que la personne n'a pas cliqué aujourd'hui et donc aucune entrée correspondante
//dans ta table
{
on redirige vers le liens etc
et on fais un INSERT INTO pour enregistrer son clic
}
Sinon
{
message d'erreur du style "vous avez déja cliqué sur ce lien il y a moisn de 24h"
}
J'ai pensé ça rapidement je sais pas si c'est une bonne technique
Ca te parle ?
->NookZ
Oui, mais je ne sais quel code rentrer pour créer un table qui récupère la date du clic, l'adresse ip etc ...
->ThEBiShOp
C'est simple vous laisser les champs inconnu vide, avec une indication qu'est ce que je dois mettre.
Oui, mais je ne sais quel code rentrer pour créer un table qui récupère la date du clic, l'adresse ip etc ...
->ThEBiShOp
C'est simple vous laisser les champs inconnu vide, avec une indication qu'est ce que je dois mettre.
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
9 avril 2009 à 14:43
9 avril 2009 à 14:43
ça manque toujours cruellement d'infos...
ce sont des membres ou des visiteurs anonymes qui doivent cliquer ?
faut d'abord trouver un moyen d'identifier le visiteur, si c'est un membre, on utilise son id, si c'est un utilisateur anonyme, on procède soit pas ip, soit par cookies, soit avec les 2.
ensuite le principe est en gros comme l'a dit Samy.
Il vaut mieux utiliser le timestamp, c'est plus souple qu'une date déjà formatée
les liens sont en dur sur le site ? ils viennent d'une base ?
:/
ce sont des membres ou des visiteurs anonymes qui doivent cliquer ?
faut d'abord trouver un moyen d'identifier le visiteur, si c'est un membre, on utilise son id, si c'est un utilisateur anonyme, on procède soit pas ip, soit par cookies, soit avec les 2.
ensuite le principe est en gros comme l'a dit Samy.
Il vaut mieux utiliser le timestamp, c'est plus souple qu'une date déjà formatée
les liens sont en dur sur le site ? ils viennent d'une base ?
:/
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
9 avril 2009 à 14:57
9 avril 2009 à 14:57
J'en reviens a ce que ThEBiShOp dit au sujet du timestamp. c'est peut être plus souple car tu n'a qu'un seul nombre mais c'est plus compliqué a utilisé avec sql du moins, c'est plus facile d'utiliser les date géré directement par sql.
personellement je pense que le temps unix devrait s'utiliser seulement avec php et non pas sql.
les date avec sql sont beaucoup plus maniable mais bon, tu va me dire que dans son exemple, on s'en fou un peu car il ne manipule pas les variables de temps.
bref, j'arrete l'hors sujet :p
Pilou, regarde le début de code qu'on t'as donné au dessus. utilise le et fait toi même le code.
Si tu as suivi le tuto du SDZ, tu devrait y arriver sans trop de mal.
On est jamais mieux servi que par soit même ;)
Bonne chance :)
personellement je pense que le temps unix devrait s'utiliser seulement avec php et non pas sql.
les date avec sql sont beaucoup plus maniable mais bon, tu va me dire que dans son exemple, on s'en fou un peu car il ne manipule pas les variables de temps.
bref, j'arrete l'hors sujet :p
Pilou, regarde le début de code qu'on t'as donné au dessus. utilise le et fait toi même le code.
Si tu as suivi le tuto du SDZ, tu devrait y arriver sans trop de mal.
On est jamais mieux servi que par soit même ;)
Bonne chance :)
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
>
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
9 avril 2009 à 14:59
9 avril 2009 à 14:59
on ne gère pas vraiment une date dans ce cas, on fait uniquement une comparaison sur une durée fixe, le timestamp suffit donc largement, mais ça n'engage que moi ;)
Pourquoi faire Compliqué quand on peut faire simple ? le time stamp ca veut dire que tu dois faire
$timestampduclic
$timestampactuel
$nombredesecondeen24h
$test = $timestampactuel - $timestampduclic
Si $test > $nombredesecondeen24h
...
J'éxagère mais c'est plus complexe quoi lol :p
C'est par contre plus souple je te l'accord !
Et puis avec le bug de l'an 2032 ca risque d'être une mauvaise habitude a ne plus prendre d'utiliser les timestamp hihi !
$timestampduclic
$timestampactuel
$nombredesecondeen24h
$test = $timestampactuel - $timestampduclic
Si $test > $nombredesecondeen24h
...
J'éxagère mais c'est plus complexe quoi lol :p
C'est par contre plus souple je te l'accord !
Et puis avec le bug de l'an 2032 ca risque d'être une mauvaise habitude a ne plus prendre d'utiliser les timestamp hihi !
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
9 avril 2009 à 15:09
9 avril 2009 à 15:09
réfléchis à ta question, c'est comment une ip ?
123.123.123.123
ça peut être quoi comme type ?
123.123.123.123
ça peut être quoi comme type ?
varchar ?
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
>
Samy
9 avril 2009 à 15:30
9 avril 2009 à 15:30
oui, et il en va de même pour un code postale, on pourrait penser à mettre un int, mais il faut le mettre en varchar, notamment pour pouvoir utiliser la clause like en sql (recherche par département par exemple)
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
9 avril 2009 à 15:21
9 avril 2009 à 15:21
ouais
9 avril 2009 à 14:24
9 avril 2009 à 14:26