[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
Bonjour,

Je cherche à limiter un clic par jour par ip sur un lien de mon site.
Comment dois-je m'y prendre ?
Je sais que je dois faire quelque chose dans la bbd mais je sais pas quel code mettre etc ...

Voilà aidez moi :)
A voir également:

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
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.
0
Ca je sais mais tu peux me dire exactement les code à rentrer etc ...
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514 > Pilou
9 avril 2009 à 14:26
ben non y'a pas d'intérêt, c'est pas formateur...
0
Bah si après je serais comment m'y prendre :)
0
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
On apprend mieux en faisant des erreurs qu'en ayant déjà tout de fait.

Dites-moi, que savez-vous faire en PHP?
0
(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....
0
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
Savez-vous vous connecter à une base de données mysql et faire des requêtes?
0
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
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...
0

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 ?
0
->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.
0
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
ç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 ?

:/
0
-Ce sont des visiteurs anonyme
-Pour identifier le visiteur = ip
-C'est un lien sur le site du type <a href="#"></a>
0
Je vois pas pourquoi je me suis embeter a te répondre... La solution est grosso modo dans cet algo

Si ya des choses que tu piges pas dis moi ^^ des souçis d'implémentation
0
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
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 :)
0
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
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 ;)
0
Ok j'essaye ;)
0
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 !
0
Pour mon champ ip c'est quel type que je dois prendre ?
0
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
réfléchis à ta question, c'est comment une ip ?

123.123.123.123

ça peut être quoi comme type ?
0
varchar ?
0
Quand tu dois contenir des Infos sans faire aucunes opérations dessus prend du varchar (comme un numero de telephone par exemple )

Quand je dis aucune opérations, c'est opération mathématique ( > , < , + , - , etc...)
0
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
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)
0
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
ouais
0