Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2935 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  compter les téléchargements de fichiers audio en streaming

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

compter les téléchargements de fichiers audio en streaming

n°1578521
Pulsar-
Posté le 24-06-2007 à 16:04:58  profilanswer
 

Bonjour,
J'ai voulu reprendre un code que j'avais tappé pour compter le nombre de téléchargements de fichiers sur mon site/ftp (qui fonctionne parfaitement) mais cette fois ci pour compter le nombre de personnes écoutant de la musique en streaming dewplayer.

 

Le problème est que à chaque fois qu'on écoute un moceau de musique malgrès qu'il se lit en streaming il se télécharge également sur le pc de l'utilisateur et le compteur de téléchargement est incrémenté de 2 au lieu de 1.
Pouvez-vous modifier mon code pour corriger cela ? (permettre une incrémentation de 1 et empecher le téléchargement du fichier audio sur le pc de l'utilisateur). :)

 

Sur la page content dewplayer :

 

($donnees['id'] et $donnees['nom']) reprensentent l'id et le nom du fichier à télécharger tirés de ma base sql.

 
Code :
  1. echo '<a href=dl.php?id='.$donnees['id'].'&amp;nom='.htmlentities($i);?>
  2. class='text1'>
  3. <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="200" height="20" id="dewplayer" align="middle"><param name="wmode" value="transparent"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="dewplayer.swf?mp3=<? echo htmlentities($donnees['nom']);?>&amp;showtime=1&amp;bgcolor=FFFFFF" /><param name="quality" value="high" /><param name="bgcolor" value="FFFFFF" /><embed src="dewplayer.swf?mp3=<? echo htmlentities($donnees['nom']);?>&amp;showtime=1&amp;bgcolor=FFFFFF" quality="high" bgcolor="FFFFFF" width="200" height="20" name="dewplayer" wmode="transparent" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>
  4. </a>
 


Sur la page contenant le compteur de téléchargements :

 
Code :
  1. <?php
  2. $id = isset($_GET['id']) ? $_GET['id'] : '';
  3. if (isset($id) && is_numeric($id)) {
  4.  mysql_connect("...." ) or die("Impossible de se connecter-SQL" );
  5.  mysql_select_db("...." );
  6.  mysql_query("UPDATE Fichiers SET dl = dl + 1 WHERE id = $id" );
  7.  header("Location: ".$_GET['nom']);  // là c'est sur qu'il y a quelque chose à changer :D
  8.  mysql_close();
  9. }
  10. ?>


Message édité par Pulsar- le 24-06-2007 à 20:39:17
mood
Publicité
Posté le 24-06-2007 à 16:04:58  profilanswer
 

n°1578524
dwogsi
Défaillance cérébrale...
Posté le 24-06-2007 à 16:16:52  profilanswer
 

Ca pu la faille ton code : Injection de SQL


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1578527
Pulsar-
Posté le 24-06-2007 à 16:20:44  profilanswer
 

Ma préocupation pour l'instant n'est pas la sécurité mais le problème que j'ai expliqué plus haut ;)

n°1578529
dwogsi
Défaillance cérébrale...
Posté le 24-06-2007 à 16:24:31  profilanswer
 

Non en fait j'avais pas vu une ligne et devrait pas y avoir de pb de sécu.
Sinon pour ne pas compter deux téléchargements, je dirais sessions pour faire simple.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1578530
Pulsar-
Posté le 24-06-2007 à 16:28:11  profilanswer
 

Mouai.. c'est pas a solution à laquelle je m'attendais :P

 

Je suis sur qu'en modifiant quelques lignes de mon code on peut également y arriver; non ?

 

Moi c'est juste parce que je suis débutant en php/sql que je coince sur ce petit problème. :)


Message édité par Pulsar- le 24-06-2007 à 16:28:47
n°1578532
dwogsi
Défaillance cérébrale...
Posté le 24-06-2007 à 16:30:12  profilanswer
 

Ba utiliser les sessions ça prend que quelques lignes, un p'tit exemple :

Code :
  1. <?php
  2. $id = isset($_GET['id']) ? $_GET['id'] : '';
  3. if (isset($id) && is_numeric($id)) {
  4.   session_start();
  5.   if(!isset($_SESSION['dl'])) $_SESSION['dl'] = array();
  6.   if(!in_array($id,$_SESSION['dl']))
  7.   {
  8.     mysql_connect("...." ) or die("Impossible de se connecter-SQL" );
  9.     mysql_select_db("...." );
  10.     mysql_query("UPDATE Fichiers SET dl = dl + 1 WHERE id = $id" );
  11.     mysql_close();
  12.     $_SESSION['dl'][] = $id;
  13.   }
  14.   header("Location: ".$_GET['nom']);
  15. }
  16. ?>


Message édité par dwogsi le 24-06-2007 à 16:30:29

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1578533
Pulsar-
Posté le 24-06-2007 à 16:33:13  profilanswer
 

Et pour empecher le téléchargement du fichier ligne 17 ?

n°1578537
dwogsi
Défaillance cérébrale...
Posté le 24-06-2007 à 16:36:01  profilanswer
 

Mais pourquoi voudrais-tu empécher le télchargement du fichier?
Pour faire simple tu peux faire ça :

Code :
  1. <?php
  2. $id = isset($_GET['id']) ? $_GET['id'] : '';
  3. if (isset($id) && is_numeric($id)) {
  4.   // Démarrage sessions
  5.   session_start();
  6.   // On créé la variable si elle n'existe pas déjà
  7.   if(!isset($_SESSION['dl'])) $_SESSION['dl'] = array();
  8.   // On test si ya déjà eu téléchargement
  9.   if(!in_array($id,$_SESSION['dl']))
  10.   {
  11.     // Non pas encore
  12.     mysql_connect("...." ) or die("Impossible de se connecter-SQL" );
  13.     mysql_select_db("...." );
  14.     mysql_query("UPDATE Fichiers SET dl = dl + 1 WHERE id = $id" );
  15.     mysql_close();
  16.     $_SESSION['dl'][] = $id;
  17.     header("Location: ".$_GET['nom']);
  18.   }
  19.   // Oui, on envoit sur une page d'erreur
  20.   else header("Location: erreur.html" );
  21. }
  22. ?>
 

A noter que ce n'est pas une solution complètement sécurisé puisqu'il est toujours possible pour le visiteur d'accèder au fichier directement. Pour faire mieux il faudrait placer le fichier en question dans un repertoire protégé par htaccess par exemple et que ce soit un script php qui le lise et renvoit au client le contenu du fichier en question seulement lorsqu'il y est autorisé.


Message édité par dwogsi le 24-06-2007 à 16:38:49

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1578538
Pulsar-
Posté le 24-06-2007 à 16:38:46  profilanswer
 

Empecher le téléchargement du fichier ?
Et bien car la personne qui écoute la musique sur dewplayer ne veut pas la télécharger en meme temps sur son disque dur, elle veut seulement l'écouter en direct.

n°1578539
dwogsi
Défaillance cérébrale...
Posté le 24-06-2007 à 16:39:30  profilanswer
 

Fait voir l'adresse de la page en question, parce que je ne suis pas sur qu'on ce soit bien compris là.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
mood
Publicité
Posté le 24-06-2007 à 16:39:30  profilanswer
 

n°1578540
Pulsar-
Posté le 24-06-2007 à 16:41:03  profilanswer
 

Effectivement...
 
Je te donne l'adresse de la page en mp :)

n°1578541
dwogsi
Défaillance cérébrale...
Posté le 24-06-2007 à 16:46:06  profilanswer
 

Ok et bien dans ton cas en fait il faut que ton player flash lise le contenu du mp3 renvoyé par un script php. Donc, ton player tu lui dit de lire mp3.php?id=109&file=leFichier.mp3 par exemple pour lire le fichier numéro 109. Ensuite dans le script mp3.php faut que tu fasse quelque chose genre :

Code :
  1. <?
  2. // Incrémentation de ton compteur
  3. // et :
  4. echo file_get_contents($_GET['file']);
  5. ?>


avec peut être aussi quelques headers qui vont biens.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1578542
Pulsar-
Posté le 24-06-2007 à 16:56:08  profilanswer
 

Hum, ta solution me parait tout de même étrange.  
Faut savoir que dans l'histoire je ne veut pas changer de page à aucun moment. Je reste toujours sur la même page quoi qu'il arrive !
 
Si je fais un echo dans la page mp3.php je crains que cela ne respecte pas cette idée.
 
Je vais attendre les idées des autres forumeurs :)
Merci de ton attention dwogsi ;)

n°1578779
Pulsar-
Posté le 25-06-2007 à 12:56:15  profilanswer
 

Personne n'a donc d'idée sur le sujet ?

n°1578995
Pulsar-
Posté le 25-06-2007 à 18:57:50  profilanswer
 

...

n°1579558
Pulsar-
Posté le 26-06-2007 à 19:17:30  profilanswer
 

Donc il n'y a pas de solution ?

n°1581729
Pulsar-
Posté le 03-07-2007 à 01:56:52  profilanswer
 

Je n'ai toujours pas résolu le problème....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  compter les téléchargements de fichiers audio en streaming

 

Sujets relatifs
Créer une page de récupération de fichiersLister des fichiers
Créer un flux streaming (pour du live) !makefile et fichiers dep *.d
[VBS] recherche d'une chaine de caractere dans different fichiersEmpecher le téléchargement direct de fichiers
Mise en page pour base de données de fichierscopie de fichiers
regrouper et compter les doubles[excel/vba] Compter le nombre de fichiers dans un repertoire ?
Plus de sujets relatifs à : compter les téléchargements de fichiers audio en streaming


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR