compteur de telechargements

tartpion
Invité n'ayant pas de compte PHPfrance

20 sept. 2005, 16:05

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

tartpion
Invité n'ayant pas de compte PHPfrance

20 sept. 2005, 16:07

en fait pour la page intermediaire si ca donne plus court et un meilleur resultat pourquoi pas ;-)

Eléphant du PHP | 199 Messages

20 sept. 2005, 17:38

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]

tartpion
Invité n'ayant pas de compte PHPfrance

21 sept. 2005, 03:21

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

HD
Mammouth du PHP | 1181 Messages

21 sept. 2005, 03:34

"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 199 Messages

21 sept. 2005, 13:13

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

Petit nouveau ! | 2 Messages

21 sept. 2005, 15:12

.sds

tartpion
Invité n'ayant pas de compte PHPfrance

22 sept. 2005, 01:36

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 ????

HD
Mammouth du PHP | 1181 Messages

22 sept. 2005, 02:01

"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 54 Messages

22 sept. 2005, 02:11

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
Modifié en dernier par tartpion le 22 sept. 2005, 02:46, modifié 1 fois.

Invité
Invité n'ayant pas de compte PHPfrance

22 sept. 2005, 02:44

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

Eléphant du PHP | 54 Messages

22 sept. 2005, 16:35

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); 
}
?>

VaN
Mammouth du PHP | 1107 Messages

22 sept. 2005, 16:42

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']);

Eléphant du PHP | 54 Messages

22 sept. 2005, 16:45

nan desole van j'ai changé comme tu m'as dis mais ca ne resous aucun des 2 problemes

Eléphant du PHP | 199 Messages

22 sept. 2005, 17:52

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