Page 1 sur 3
compteur de telechargements
Posté : 20 sept. 2005, 16:05
par tartpion
salut a tous
sur mon site je donne des videos a telecharger, jaimerais bien pouvoir mettre un systeme de compteur de techargements pour savoir exactement combien de fois une video a etait telechargee; j'ai evidemment cherche sur google mais je n'ai pas tro etait satisfait, donc si quelqun pourrait me dire où est ce que je peux trouver un bon tuto ou bien me donner directement le code ce serait sympa .
je rappele que je ne veux pas passer par une page intermediaire
et que j'ai deja une base de donnee où est stocke le nom de la video son lien sa description ......
merci d'avance pour vos reponses
Posté : 20 sept. 2005, 16:07
par tartpion
en fait pour la page intermediaire si ca donne plus court et un meilleur resultat pourquoi pas

Posté : 20 sept. 2005, 17:38
par Manio 54
Pas besoin de page intermediaire !
Ce que tu fais c'est tu fais le lien vers la même page mais en mettant l'id du fichier a telecharger
et puis
<?php
if(!empty($_GET['id'])){
$retour = mysql_query('SELECT * FROM compteur WHERE id=' . $_GET['id']);
$donnees = mysql_fetch_array($retour);
$file = $donnees['lien'] ;
$donnees['hit']++ ;
mysql_query("UPDATE compteur SET hit='" . $donnees['hit'] ."' WHERE id=" . $_GET['id']);
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=".$file);
readfile($chemin.$file);
}
?>
Attention header donc avant tout code si tu veux plus d'explication redemande moi j'ai pas pris le temps de commenter [/code]
Posté : 21 sept. 2005, 03:21
par tartpion
j'avoue ne pas tro avoir compris ton code, donc jaimerais bien une petite explication, pas besoin de me commenter ton code juste explique moi en gros ce qui se passe
Posté : 21 sept. 2005, 03:34
par HD
Posté : 21 sept. 2005, 13:13
par Manio 54
ce qui se passe c'est que en cliquant sur le lien il recharge la page en incluant l'id du fichier a telecharger, il fait une requete dans la BDD pour l'adresse et tu incremente un compteur dans la BDD par la même occasion et ensuite le fichier et forcé a être telechargé avec l'adresse recuperée dans la BDD
Posté : 21 sept. 2005, 15:12
par Fumiste
.sds
Posté : 22 sept. 2005, 01:36
par tartpion
super j'ai tout compris le code, il est super simple en faite mais c'est le premier que je vois aussi simple, en general avec google on a toujours besoin d'une page intermediaire ou bien un code 10 fois plus long bref ...
quelqu'un peut m'expliquer exactement ce que sont les fonctions header() et readfile() puisque je n'en ai jamais entendu parler ????
Posté : 22 sept. 2005, 02:01
par HD
tartpion
Posté : 22 sept. 2005, 02:11
par tartpion
desole de forcer mais j'avais deja regarde sur ce site, et a vrai dire je n'ai pas tro compri; j'aimerais une explication un peu plus claire avec un vrai exemple ou quelque chose du style
pour l'exemple suffit de m'expliquer exactement que vient faire le header dans le script plus haut pour le compteur de telechargements
une autre question: avec ce systeme de compteur de telechargement, on ouvre le fichier avec la fonction readfile() le probleme c'est qu'il propose de telecharger la video au lieu de l'ouvrir seulement comment dois je faire pour qu'elle ne s'ouvre seulement ???
merci a vous
Re: tartpion
Posté : 22 sept. 2005, 02:44
par Invité
desole de forcer mais j'avais deja regarde sur ce site, et a vrai dire je n'ai pas tro compri; j'aimerais une explication un peu plus claire avec un vrai exemple ou quelque chose du style
pour l'exemple suffit de m'expliquer exactement que vient faire le header dans le script plus haut pour le compteur de telechargements
une autre question: avec ce systeme de compteur de telechargement, on ouvre le fichier avec la fonction readfile() le probleme c'est qu'il propose de telecharger la video au lieu de l'ouvrir seulement comment dois je faire pour qu'elle ne s'ouvre seulement ???
merci a vous
Posté : 22 sept. 2005, 16:35
par tartpion
voila le code comme je l'ai modifie a ma facon et ca ne marche pas
1) premierement ca me fait telecharge une page ou quelque chose du style mais pas la video
2) deuxiemement et ca c bizarre le nombre de telechargements dans ma base de donnees n'augmente pas
j'ai essaye de chercher ou sont mes erreurs mais sans succes je vous laisse essayer de chercher voici le code
<?
if (isset ($_GET['id']))
{
mysql_connect("localhost", "root", "");
mysql_select_db("ajouts");
$reponse = mysql_query("SELECT lien, nb_telechargements FROM videos WHERE id='".$_GET['id']."'");
$donnees = mysql_fetch_array($reponse);
$fichier = $donnees['lien'];
$nb_telechargements = $donnees['nb_telechargements']++ ;
mysql_query("UPDATE videos SET nb_telechargements=.$nb_telechargements WHERE id=" . $_GET['id']);
mysql_close();
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=".$fichier);
readfile($fichier);
}
?>
Posté : 22 sept. 2005, 16:42
par VaN
mysql_query("UPDATE videos SET nb_telechargements=.$nb_telechargements WHERE id=" . $_GET['id']);
une erreur ici nan ?
moi je mettrai ça :
mysql_query("UPDATE videos SET nb_telechargements=$nb_telechargements WHERE id=".$_GET['id']);
Posté : 22 sept. 2005, 16:45
par tartpion
nan desole van j'ai changé comme tu m'as dis mais ca ne resous aucun des 2 problemes
Posté : 22 sept. 2005, 17:52
par Manio 54
pour l'erreur de telechargement c'est un problème dans le lien je sais au debut aussi cela me le fesait !
readfile($chemin.$file);
$chemin provient d'une variable GET que j'avais ajouté dans le lien vers le fichier mais je n'ai pas pris le temps de modifier je te conseille donc de mettre ton chemin directement a la place de $chemin