Compteur téléchargement

Résolu
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012 - 29 nov. 2006 à 16:43
 syndrael - 30 nov. 2006 à 09:51
Bonjour,

Je souhaite réaliser un compteur de téléchargement.
Dans mon site ou depuis un lien url se trouvant sur site distant,
je souhaite mesurer le nombre de fois que ce fichier a été téléchargé.

Si le téléchargement de ce fichier était effectué que depuis mon site
le problème serait simple.

La difficulté que je n'arrive pas à résoudre est justement que ce fichier
peut être téléchargé depuis d'autre site: et là je n'ai pas la moindre idée
pour y parvenir. Enfin si, je sais que aucune page php n'est lu à ce moment précis
par coontre le fichier .htaccess lui est lu.
peut être une piste....

merci de votre aide

26 réponses

m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
30 nov. 2006 à 09:02
Bonjour,

Je reformule ma question et l'idée qu'avance Blind.
Je souhaite savoir sur quel site un internaute a cliqué pour télécharger un fichier
(le fichier se trouve bien sur mon site)

l'idée de blind est la suivante :

Il faut récuperer en php la variable $_SERVER['HTTP_REFERER'] .
Mais je ne sais pas si ça passe correctement après le .htaccess, il faut essayer.

merci de votre aide :
3
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
29 nov. 2006 à 16:48
Une solution, certes peu élégante, serait de créer une page php sur ton serveur qui est appelée lors du téléchargement du fichier. Donc sur un site distant, on demande pas toto.txt, mais toto.php. Et dans cette page php, tu places ton code pour compter les téléchargements, et tu rediriges au bout de 1s vers ton fichier toto.txt.
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 16:54
Merci de votre réponse si rapide.

L'idée est bonne, le soucis c'est que les liens qui pointent vers ce fichier
je ne peux les modifiers
(je n'en ais plus le controle, il sagit du site telecharger.com, et il n'autorise pas de changement)
0
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
29 nov. 2006 à 17:47
Tu dis que ton .htaccess est lu.
Si tu as les permissions pour l'url rewritting, tu peux utiliser ca, il faut juste renommer (genre ajouter _ à tes noms de fichiers).

Mettons que tes fichiers soient des .exe (supposition)

Tu créé une page dl.php

et une condition de reecriture

RewriteRule ^([a-zA-Z0-9]+).exe$ dl.php?file=$1

et dans dl.php, tu récupères le nom de fichier
 via un $_GET['file']

Tu mets à jour tes statistiques, et tu rediriges sur le nom de fichier modifié.

</explication pas vraiment claire>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 17:56
le fichier en question se nomme "Setup.exe"
il se trouve dans un dossier /Fichiers

que dois je ecrire dans le .htaccess ?
0
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
29 nov. 2006 à 18:09
RewriteEngine on
RewriteRule ^Files/Setup.exe$ dl.php?file=Setup

Il faut que tu renommes Fichiers/Setup.exe en Fichiers/_Setup.exe
Et dans dl.php, tu mets

<?php
    $file = $_GET['file'];

    updateStats ($file); //fonction pour mettre a jour tes stats
    header ("Location:./Fichiers/_" . $file . ".exe");
?>

Le fait de renommer le fichier en question permet d'éviter le phénomène de la boucle infinie.
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 18:44
j'ai mis ça dans mon fichier .htaccess . est ce bon ??

<Files .htaccess>
order allow,deny
deny from all
</Files>
RewriteEngine on
RewriteRule ^Files/Setup.exe$ dl.php?file=Setup
0
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
29 nov. 2006 à 18:48
Oui, c'est bon je dirais à première vue.
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 18:59
ça marche pas
j'ai crée un fichier dl.php comme suit :
j'ai renommé mon fichier Setup.exe en _Setup.exe
le telechargement depuis telecherager.com se fait (meme apres le renommande)
mais la table mysql n'est pas mise à jour:
j'ai deux champs
id  >>> mediumint autoincrément,
date_dl  >>> Date

<?php
    $file = $_GET['file'];
     $host = "localhost";
    $user = "user";
    $password = "pass";
    $database = "base";
    //open a connection to the database server
    $connection = mysql_connect ($host, $user, $password)
    or die ("Connection au serveur impossible.");
    $db =  mysql_select_db($database, $connection)
    or die ("Selection de base de données impossible.");
    $query = "INSERT INTO statdl values ('NULL', current_date)";
    $result = mysql_query($query);
    header ("Location:./Fichiers/_" . $file . ".exe");
?>
0
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
29 nov. 2006 à 19:27
J'ai testé chez moi, ça a l'air de fonctionner.
(Du moins le fichier que je lui demande d'écrire dans dl.php est écrit)

Voici le contenu de mon .htaccess :

RewriteEngine on
RewriteRule ^Files/Setup.exe$ dl.php?file=Setup

et le contenu de mon dl.php :

<?php
$file = $_GET['file'];

$toto = fopen("toto",'w+');
fwrite ($toto, $file);
fclose ($toto);

header ("Location:./_" . $file . ".exe"); // on est déjà dans le repertoire Files en fait
?>

Le fichier toto est bien écrit, et il me propose bien de télécharger _Setup.exe.
Par contre, si tu dis que le téléchargement fonctionne quand même depuis télécharger.com, peut être que tu ne peut pas faire d'url rewriting (si tu es hosté chez free, ca ne marchera pas).
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 19:33
Je ne suis pas chez free

Comme dis, je peux pas agir sur le lien de telecharger.com
le lien sous le curseur de souris indique Fichier/Setup.exe

etes vous sur qu'il faut pas un _ dans cette synthaxe

RewriteEngine on
RewriteRule ^Files/Setup.exe$ dl.php?file=Setup
0
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
29 nov. 2006 à 19:41
Oui, je suis sur qu'il ne faut pas de _.

Le .htaccess va "détecter" le clic sur le lien, et le rediriger sur dl.php.
Et c'est dans ce fichier dl.php qu'on va repointer le téléchargement sur le fichier existant (donc celui avec un underscore).
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 20:52
je n'arrive plus à télécharger mon fichier Setup maintenant : erreur 404
on va dire que c'est presque normal
du coup je croit que c'est le htaccess qui fait pas sont travail

vous m'avez dis n'avoir que

RewriteEngine on
RewriteRule ^Files/Setup.exe$ dl.php?file=Setup

dans le htacess.

mais vous m'avez dis que mon fichier est bon, pourtant ils ne sont pas les memes
pouvez me confirmer ce que vous avez exactement dedans.

<Files .htaccess>
order allow,deny
deny from all
</Files>
RewriteEngine on
RewriteRule ^Files/Setup.exe$ dl.php?file=Setup
0
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
29 nov. 2006 à 21:15
J'ai mis RewriteRule ^Files/Setup.exe$ [...] dans mon .htaccess car j'avais créé un dossier Files.

Dans votre cas, le fichier .htaccess devrait contenir :

RewriteEngine on
RewriteRule ^Fichiers/Setup.exe$ dl.php?file=Setup

Normalement, il n'y a pas besoin de protéger le .htaccess avec une directive <Files>, un serveur normalement configuré s'en charge, mais le laisser ne devrait pas poser de problème.
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 21:24
y'a du progres :

il me repond

y'a un Fichiers de trop, comment faire
le htacces envoi l'abrorscence complete

Not Found
The requested URL /Fichiers/Fichiers/_Setup.exe was not found on this server.

<hr />Apache/2.0.54 (Fedora) Server at unigest-solutions.com Port 80
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 21:32
Non ça marche comme ça !!!!
Super !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! merci de ton aide
et ça ecrit dans ma base.

merci beaucoup et quelle patience !!!
je suis débutant, on trouve pas toujours quelqu'un d'aussi compétent aussi disponible que vous !

Merci encore
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 21:42
j'ai une petite question

pour inserrer la date dans une chaine mysql :

current_date

pour l'heure j'essaie current_time, ça marche pas !!

merci de votre aide
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 22:19
Bonjour,

comment savoir l'origine du lien sur lequel a cliqué l'utilisateur
en clair sur quel site il a cliqué pour telecharger le fichier.

merci
0
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
29 nov. 2006 à 22:27
Il faut récuperer en php la variable $_SERVER['HTTP_REFERER'] .
Mais je ne sais pas si ça passe correctement après le .htaccess, il faut essayer.
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
29 nov. 2006 à 22:28
Resalut,

y'a t'il une solution pour ne pas renommer le fichier Setup.exe en _Setup.exe
j'ai peur que cela effraie des gens d'avoir un _ devant le nom d'un exe.

merci
0
Rejoignez-nous