
Ce tuto est une version améliorée de http://forum.alsacreations.com/topic-1-34954-1.html (par msg_dracula)
Merci aussi à Zylann, Bardyl et LSN qui m'ont filé un gros coup de main quand j'essayais d'installer ce système sur mon site.
Introduction :
Le but donc, est d'avoir un compteur de clic sur un lecteur streaming sans avoir à passer par une redirection. L'auditeur peut alors rester sur une seule page et vos compteurs augmente.
De même, si vous postez un lecteur streaming sur Neto ou toute plateforme supportant le dewplayer, vos clics augmenteront.
Je vais ici vous exposer un tuto simple, pas le plus intelligent non plus, qui marche et qui est restreint au dewplayer d'alsa création.
Avant de commencer :
Pour que ce tuto marche, il vous faut juste un serveur gérant php. La version que je vais vous présenter fonctionne avec une base de donnée sql mais vous pouvez très bien l'adapter à un fichier texte.
Bon, maintenant, allez télécharger le dewplayer: http://www.alsacreations.fr/dewplayer.html
msg_Dracula a écrit :Tout d'abord, concernant l'arborescence de la base de test. J'ai :
/test/player.php qui est la page contenant le lecteur dewplayer.
/test/download.php qui comptabilise le nombre d'écoute
/test/doxnloads/ qui contient les titre en écoute.
HTML
Je reprends ici le code de msg_Dracula vu qu'il est simple et bien foutu:
Code : Tout sélectionner
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title> DEWPLAYERS </title>
</head>
<body>
<div align="center">
<h1 class="style1">Lecteur</h1>
<object type="application/x-shockwave-flash" data="dewplayer.swf?mp3=download.php?file=test.mp3" width="200" height="20">
<param name="wmode" value="transparent">
<param name="movie" value="dewplayer.swf?mp3=download.php?file=test.mp3&autostart=0" />
</object>
</div>
</body>
</html>Le code est assez simple. La seule subtilité est dans l'objet: le data du mp3 est remplacé par une page php.
PHP
Code : Tout sélectionner
<?php
$FILES_DIR = "/test/downloads/";
$MYSQL_USER = "root";
$MYSQL_PASS = "";
$MYSQL_HOST = "localhost";
$MYSQL_DB = "freemusic";
$cnt_sql = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS);
@mysql_select_db($MYSQL_DB, $cnt_sql);
if(isset($_GET['file'])) {
$file = urlencode($_GET['file']);
if(empty($file)) {
echo "No File Specified";
exit;
}
if(strpos($file, "..") !== FALSE) {
echo "HACK ATTEMPT!";
exit;
}
if(strpos($file, "://") !== FALSE) {
echo "Invalid File";
exit;
}
$cookie = urlencode(str_replace(".", "_", $file));
$query = "SELECT * FROM dl_count WHERE file = '$file'";
$result = mysql_query($query, $cnt_sql);
if(!$result) {
echo mysql_error();
exit;
}
if(mysql_num_rows($result) == 0) {
//first use of this file
$query = "INSERT INTO dl_count VALUES('$file', 1)";
$result = mysql_query($query, $cnt_sql);
setcookie("dl_" . $cookie, "set", time() + 60*60*24*365);
} else {
$query = "UPDATE dl_count SET count = count + 1 WHERE file = '$file'";
$result = mysql_query($query);
setcookie("dl_". $cookie, "set", time() + 60*60*24*365);
}
header("Location: " . $FILES_DIR . $file);
}
?>Dans l'ordre:
-Connection à la bdd
-Vérification des données
-Création d'une url
-Update de la table
-Redirection grâce à Header
Alors où est le soucis?
Le soucis, c'est que vous êtes limité à un seul paramètre dans l'url du dewplayer.
Il vous est impossible d'écrire:
Code : Tout sélectionner
[...] data="dewplayer.swf?mp3=download.php?type=DL&id=03
Donc si vous voulez distinguer le streaming du download, comme vous n'avez droit qu'à un paramètre, il faudra utiliser des substring genre "DL01" où DL est le type et 01 l'ID.
Pour ma part, j'utilise deux fichiers php (un pour le DL et un pour le streaming).
Voilà, je pense que tout est dit.
Encore un grand merci à msg_dracula.









