Limiter le nombre de requete php par minute - PHP - Programmation
Marsh Posté le 22-07-2004 à 12:33:35
yobogs a écrit : Bonjour, |
requete php ? tu veu dire l'acces a une page ?
Marsh Posté le 22-07-2004 à 12:49:38
bein... je vois pas le prob ...
SELECT id FROM users WHERE heure_connect > $heure_actuelle+5min && ip=$ip
apres si ca te retourne un resultat ==> tu peu afficher la page, sinon non
Marsh Posté le 22-07-2004 à 14:57:26
certes j'me suis conpliqué la vite pour rien
Merci bcp ...
Marsh Posté le 22-07-2004 à 15:16:40
esox_ch a écrit : bein... je vois pas le prob ... |
c'est ça k'il voulait ?? il me semblait ke non :
yobogs a écrit : J'aimerai limiter le nombre de requetes par minutes à 5. |
or, ta requête parle de 5 minutes... lui, il veut 5 requêtes par minute et pas plus... or avec ta requête, ca joue pas... non?
Marsh Posté le 22-07-2004 à 18:05:26
si c 5 reket sql par min je vois mal comment le faire (a part en fesant comme une reket mais dan un ficher)
Marsh Posté le 22-07-2004 à 18:12:05
esox_ch a écrit : si c 5 reket sql par min je vois mal comment le faire (a part en fesant comme une reket mais dan un ficher) |
je ferais comme ca:
table: compteur
id (primary key, auto-increment), ip (char(15)), compte (tinyint), temps.
puis avant de faire une requête, tu controles ke depuis une minute compte soit inférieur à 5. si ca fait + d'une minute, tu mets le compteur à 0. si le compteur est supérieur ou égal à 5, tu mets un message d'erreur. et sinon, c'est ok et alors tu incréments compte de 1...
ca marche ou ca marche pas ?
Marsh Posté le 22-07-2004 à 18:17:02
je crois que c'est correct, mais j'ai quand même un doute
Marsh Posté le 22-07-2004 à 20:14:17
5 requêtes par minutes c'est 1 requête max pour 12 secondes
donc tu lis dans la table la date de dernière action :
- si date lu < date actuelle + 12 secondes : interdir l'action
- sinon : autoriser l'action et mettre à jour la table
et c'est tout
Marsh Posté le 22-07-2004 à 22:38:42
c'est surtout totalement faux
5 requetes en 1 minute, si j'ai envie d'en faire 3 en meme temps, et 2 en meme temps 59secondes + tard, j'ai le droit.
or avec le systeme de mathix, c'est pas jouable
Marsh Posté le 22-07-2004 à 22:58:47
il faut une table avec une date / heure (on regarde pas les secondes) et un compteur pour cette date / heure, qui vaudra maxi 5
Marsh Posté le 22-07-2004 à 23:54:27
Ils vont être content tes visiteurs abonnés à AOL, Noos ou Club-Internet ... Plutôt que de t'emmerder avec un script PHP tu devrais installer mod_throttle si tu es en dédié
Marsh Posté le 23-07-2004 à 02:49:59
Core 666 a écrit : Ils vont être content tes visiteurs abonnés à AOL, Noos ou Club-Internet ... Plutôt que de t'emmerder avec un script PHP tu devrais installer mod_throttle si tu es en dédié |
J'ai du mal à cerner le rapport avec la choucroute
Marsh Posté le 23-07-2004 à 02:58:26
travailler sur 1 minute glissante :
à l'initialisation du système, on a droit à 5 requetes.
à un instant t, il faut regarder si l'action au rang -5 a eu lieu 1min ou plus avant. Si c'est OK, alors action OK, sinon, action bloquée.
cela permet d'avoir un système non dépendant d'une date, d'une heure et une minute donnée.
Dès qu'un des 5 créneaux est "libre", il est à nouveau utilisable.
Marsh Posté le 23-07-2004 à 03:03:01
D'ailleurs je trouve la solution mysql totalement stupide, lui il veut limiter à 5 requêtes/min. Or avec les solutions utilisant mysql développées plus haut dans le topic, avec d'éxécuter chaque requête on en éxécute une autre pour savoir si on pourra éxécuter la requête "principale". Donc en se limitant à 5 requêtes, il en éxécute 10....
Marsh Posté le 23-07-2004 à 07:33:28
mouais ... il faudrait déjà qu'il nous explique pourquoi il veut faire ça, ce serait plus simple
Marsh Posté le 23-07-2004 à 10:24:48
harrysauce a écrit : J'ai du mal à cerner le rapport avec la choucroute |
Le rapport c'est que les abonnées AOL et Noos sont connectés depuis le proxy de leur provider, et qu'une simple limitation par l'IP va rendre leur navigation impossible si le site a un minimum de trafic. Même problème pour ceux qui se connectent avec Club-Internet sans avoir configuré leur connexion à la main : le kit CI fait automatiquement passer le http par un proxy.
Marsh Posté le 22-07-2004 à 12:30:17
Bonjour,
J'aimerai limiter le nombre de requetes par minutes à 5.
Pour cela je stock les ip des visiteurs dans une table avec l'heure de la dernière connexion.
Là où je bloque c'est au nivo de la requete.
Je ne sais pas koi ou comment selectionner les champs ... (plutot de kel maniere parce que le select etc ... ça va )
D'avance merci