Comparer deux IP dans le temps

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Comparer deux IP dans le temps

Message le Ven Déc 23, 2005 10:38

Bonjour,
Je suis en train de placer un système de commentaire sur un site et pour éviter le flood, je vais devoir comparer le temps qui s'est écoulé entre deux post d'une même ip.

Pour ce faire je récupère l'ip du posteur dans un champ hidden ainsi que l'heure de son post, et je compare ces données avec l'heure du post ayant la même IP.

Bon


Je vais farfouiller sur internet pour savoir comment comparer deux IP dans le temps, mais si vous avez déjà une idée de requête SQL, ce serait sympa.


merci d'avance.

Toutou-Fr
WRInaute impliqué
WRInaute impliqué
 
Messages: 642
Inscription: 22 Aoû 2005

Message le Ven Déc 23, 2005 10:58

En quel langage ?

Il faut que tu stocke l'heure précise de ton serveur dans une variable . (a l'aide de la fonction microtime() par exemple en php)
tu stockes egalement l'ip

tu fais un " select ip from table_ip where ip = "l'ip" and temps>" $var_temps - (la durée pendant laquelle la meme ip ne doit pas poster ) "

si la requete ne te retourne aucun resultat,
alors la personne peut poster

et tu fais un insert dans la table de l'ip et de ta $var_temps pour eviter qu'il reposte.


cela dit, je te recommande egalement la mise en place de sessions, moins gourmande.

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Message le Ven Déc 23, 2005 11:09

Merci pour ta réponse,

C'est du PHP/mysql.

Ce qui me chiffonne, c'est la date dans la requête sql.

Exemple : le gars viens de poster. Avant l'insertion dans la base, je récupère son IP et l'heure de son post, je lui soustrais 30 sec.
Là j'ai une requête qui va chercher dans la base une éventuelle IP identique datant de moins de 30 seconde.

C'est juste ?
Si oui, je récupère la date ainsi:
$date=strftime("%y/%m/%d %H:%M:%S"); echo"$date"

Comment j'enlève 30 seconde à cette date ?


Sinon pour les sessions je veux bien en savoir plus, mais par curiosité pour d'autres développement, là je reste sur cette idée, je dois aller vite pour ce projet.

Merci d'avance.

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Message le Ven Déc 23, 2005 12:03

Que pensez vous de cette requête ?

SELECT ip FROM table WHERE ip=$ip AND date= $date - INTERVAL 30 SECOND.


Ron56
WRInaute impliqué
WRInaute impliqué
 
Messages: 708
Inscription: 20 Nov 2005

Message le Mer Jan 04, 2006 20:00

Et pourquoi pas utiliser le jour ? :wink:

Comme ca si il a posté dans la journée la requete de retourne pas de resultat !

Mais utilise aussi un cookie :wink:

psychoreflex
WRInaute passionné
WRInaute passionné
 
Messages: 1123
Inscription: 10 Juil 2005

Message le Mer Jan 04, 2006 20:37

En fait le problème est résolu de longue date, j'ai utilisé la fonction time(), beaucoup plus simple à utiliser.

Pour ce qui est d'utiliser le jour, cela veut dire qu'une fois un commentaire posté, il n'est plus possible de poster quoi que ce soit durant toute la journée. Pas terrible comme idée, me semble t'il.

Enfin bon, merci d'avoir participé ;-)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités