m2rtech
Messages postés239Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention20 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....
m2rtech
Messages postés239Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention20 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.
Bling 182
Messages postés510Date d'inscriptionlundi 27 novembre 2006StatutMembreDernière intervention 5 juillet 20093 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.
m2rtech
Messages postés239Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention20 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)
Bling 182
Messages postés510Date d'inscriptionlundi 27 novembre 2006StatutMembreDernière intervention 5 juillet 20093 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>
Vous n’avez pas trouvé la réponse que vous recherchez ?
m2rtech
Messages postés239Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention20 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");
?>
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).
Bling 182
Messages postés510Date d'inscriptionlundi 27 novembre 2006StatutMembreDernière intervention 5 juillet 20093 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).
m2rtech
Messages postés239Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention20 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
Bling 182
Messages postés510Date d'inscriptionlundi 27 novembre 2006StatutMembreDernière intervention 5 juillet 20093 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.