Compteur téléchargement

[Résolu]
Signaler
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012
-
 syndrael -
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

Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

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 :
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
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.
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

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)
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
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>
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

le fichier en question se nomme "Setup.exe"
il se trouve dans un dossier /Fichiers

que dois je ecrire dans le .htaccess ?
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
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.
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

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
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
Oui, c'est bon je dirais à première vue.
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

ç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");
?>
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
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).
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

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
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
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).
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

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
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
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.
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

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
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

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
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

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
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

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
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
3
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.
Messages postés
239
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
20 février 2012

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