compteur de téléchargement avancé - PHP - Programmation
Marsh Posté le 13-08-2007 à 16:30:44
cookie avec les mêmes infos Ca pompe même pas de ressource bd ce qui coute le plus.
Après y'a rien fiable à 100% si t'es pas en émulation d'un mode connexion (authentification dans ce cas)
Marsh Posté le 13-08-2007 à 16:56:03
Et sans passer par des cookies ? quels sont les autres possibilités ?
Marsh Posté le 13-08-2007 à 16:58:48
leflos5 a écrit : cookie avec les mêmes infos Ca pompe même pas de ressource bd ce qui coute le plus. |
Cookie c'est facilement manipulable par l'utilisateur donc bon
Marsh Posté le 13-08-2007 à 17:27:20
Manipulable, manipulable,... Enlevable oui
Mais dans un cas où de toutes façons y'a rien de mieux que ça? On fait comment? On empêche toute une plage d'IP privée ayant la même IP publique d'être comptabilisé? On prend le risque de quelqu'un qui voudrait supprimer ses cookie?
Sortons une pièce, en effet c'est que pour des stats donc pas primordial
Mais justement, vu que ce ne sont que des stats, pourquoi ne pas analyser les logs? Et on a le même problème: une IP c'est un et un seul utilisateur ou plusieurs ayant la même IP publique? Faudrait au moins aller vérifier les entêtes dans le cas de proxies, trouver un moyen sur que c'est la même personne derrière le clavier, ...
En gros y'a qu'une solution, soit on on considère que un téléchargement est un téléchargement, soit on authentifie tout le monde ou sinon pas de DL!
Et d'ailleurs pourquoi 10 minutes??? Si ça plante? C'est de quel ordre de grandeur?
Marsh Posté le 13-08-2007 à 18:32:56
Les cookies, c'est sur, c'est manipulable.
Les sessions c'est pas manipulable, mais il est généralement facile de les faire sauter (on modifie l'adresse ou on supprime le cookie)
Les IP c'est non fiable : chez certains FAI, on change d'IP comme de chemise ... ou plutôt comme de page web et chez d'autres on est nombreux avec la même IP. D'ailleurs, ceux qui sont au boulot ont souvent la même IP que les autres employés.
Si je voulais faire ça, je stockerais la date en session et je vérifierais donc cette date. Pour les non connecté qui ont leur session qui a expiré, je considèrerais que les 10 minutes sont dépassé. Pour les connectés qui ont perdus leur session, je regarderais dans la table pour remettre la valeur en session et reprendre le traitement normal.
Pour le moment, je ne vois pas de meilleur compromis sans prendre le risque d'avoir beaucoup de faux positif.
Marsh Posté le 13-08-2007 à 18:42:50
Ouai, l'idée de la session est pas mal.
Mais pour les gros sites de téléchargement style youtube vous pensez que c'est la méthode qu'ils ont choisi ?
Marsh Posté le 13-08-2007 à 19:01:36
Et ca tournerait sur les concepts que j'ai expliqué en premier message ?
Marsh Posté le 13-08-2007 à 15:23:00
Bonjour,
Je souhaite implementer un comteur de téléchargement avancé.
Le script que j'ai crée compte le nombre de click sur des hyperliens grace à une table mysql.
Ce que je souhaite c'est que le compteur de téléchargement pour chaque fichier ne s'incremente que si l'utilisateur n'a pas cliqué sur le lien dans les 10 dernieres minutes.
Mais je voudrais faire cela tout en ne surchangant pas trop la charge de travail du serveur.
Sachant que mon site propose 80% des téléchargements uniquement pour les utilisteur enregistré et connecté et 20% pour n'importe quel visiteurs.
J'ai déja en tête 2 possibilités :
-pour les téléchargements à utilisateur connecté je consulte la date du dernier téléchargement effectué sur le fichier et ca ne pose donc pas de problème.
-pour les téléchargements à utilisateurs non connecté je consulte dans une table (3 champs : id du fichier, ip de l'utilisateur, date) la derniere date de téléchargement.
Mais existe-til d'autre possibilité de conception utilisant peu de ressources ?
Aussi, pour la 2ème possibilité que j'ai ennoncé quand demander au serveur d'effectuer la mise à jour de la table (supprimer les entrées trop vieille) ? toujours dans le soucis d'optimisation.