quel est le code Php qui n'autorise le droit d'utiliser une fonction qu'une seul fois PAR jour ?
quel est le code Php qui n'autorise le droit d'utiliser une fonction qu'une seul fois PAR jour ?
Moi quand je veux limiter le nombre d'utilisation de quelques choses dans le temps à quelqu'un, je récupère son adresse ip que je viens stocker dans une table avec le temps écoulé depuis l'époque unix à l'instant T.
Ensuite au niveau de la fonction par l'intermédiaire d'un if, je viens conditionner son utilisation en comparant l'adresse ip et le temps unix + le nombre de seconde que tu veux avant la possibilité de réutilisation de la fonction.
Si non, je ne connais pas de fonction en php toute faite pour réaliser ce tour de passe passe...
Tu peux aussi utiliser une variable session de deux manières :
1. Tu fixes la validité de la session à 24h et tu crées une variable session qui est à 0 si l'opération n'a pas été effectuée ou à 1 dans le cas contraire. Ensuite tu testes cette valeur et tu agis en fonction.
2. Tu crées une variable session dans laquelle tu places un timestamp, ensuite à chaque appel tu testes le temps écoulé entre le timestamp actuel et le timestamp de la variable. Le reste est un jeu d'enfant.
Cette solution est plus simple que la bdd mais aussi moins sécurisée. En effet, si l'internaute réinitialise sa session t'es vu.
C'est un choix à faire entre simplicité, rapidité d'exécution et sécurité. A toi de voir.
@++
webrider
Envoyé par Andalor
Tu peu me donner un exemple de code pour l'envoi d'un formulaire avec cette histoire d'ip stocker dans la BDD ?
C'est très facile sous PHP.
Tu récupères l'adresse ip dans la variable
puis tu la stockes dans ta base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ip = $_SERVER['REMOTE_ADDR'];
webrider
Ca sera de l'à peu près vu que ce n'est pas tout à fait fiable de trier les gens avec leur adresse IP.
Les utilisateurs n'ont pas besoin de se logguer sur ton site pour accéder à la fameuse fonction par hasard (on sait jamais...) ?
SI il sont obliger de ce logguer et la variable $auth les identifieEnvoyé par JWhite
Ah bon bah dans ce cas il te suffit d'ajouter un champ dans ta table utilisateurs contenant la date de la dernière utilisation de la fonction et en testant cette date le tour est joué...Envoyé par mickado
la date y est déja ajouter a chaque fois qu'un nouveau commentaire est ajouter le probléme c'est que je ne sais pas comment tester cette dateEnvoyé par JWhite
Tu créais une colonne, dans ta table : last_connect (par exemple)
Quand une personne veut poster un commentaire, tu vérifies que le champ last_connect de cette personne comme ceci :
Voilà c'est aussi simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $a = mysql_num_rows(mysql_query('...')); if ( (time() - $a['X']) >= 86400){ // Envoie du commentaire // Ajout de time() dans la colonne last_connect } else { echo 'Vous avez poster un commentaire il y a trop peu de temps'; }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager