Connaitre le nombre de telechargement
Bonjour,
sur mon site j'ai un espace de téléchargement de document(.pdf, .doc, .zip,...). Je souhaite incrémenter un compteur à chaque fois qu'une personne récupère un document pour afficher sur ma page ce nombre.
J'ai parcouru google à la recherche d'astuce et j'ai trouvé ceci pour le téléchargement de document :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| <?php
$folder_stat = 'download/stat/' ; // répertoire dans lequel seront stockées les statistiques
$folder_archive = 'download/' ; // répertoire des téléchargements
if ( isset( $_GET['file'] ) ) // Si le visiteur veut télécharger un fichier
{
$name = htmlentities($_GET['file'], ENT_QUOTES); // sécurisation de la variable
if ( file_exists( $folder_stat . $name . '.txt' ) ) // si le fichier existe
{
$FileContent = fopen( $folder_stat . $name . '.txt', 'r+' ); // ouverture du fichier statistique contenant le nombre de hit
$hit = fgets( $FileContent ); // récupération de la valeur
$hit = intval( $hit ); // on vérifie qu'il s'agisse bien d'un nombre
$hit++; // ajout de 1 au nombre de hit
fseek( $FileContent, 0 ); // réinitialisation du curseur
fputs( $FileContent, $hit ); // écriture dans le fichier
fclose( $FileContent ); // fermeture du fichier
header( "Location: $folder_archive$name.rar" ); // redirection vers le téléchargement
}
}
function NumberOfHit( $name ) // création de la fonction NumberOfHit
{
$folder_stat = 'download/stat/' ; // répertoire dans lequel seront srockées les statistiques
$file = $folder_stat . $name . '.txt' ; // nom du fichier statistique contenant le nombre de hit
if ( file_exists( $file ) ) // si le fichier existe
{
$FileContent = fopen( $file , 'r' ); // ouverture du fichier
$hit = fgets( $FileContent ); // récupération de la valeur
fclose( $FileContent ); // fermeture du fichier
return $hit; // retour de la valeur de $hit
}
else // si le fichier n'existe pas
{
touch( $file ); // création du fichier
$FileContent = fopen( $file , 'r+' ); // ouverture du fichier
fseek( $FileContent, 0 ); // réinitialisation du curseur
fputs( $FileContent, 0 ); // écriture dans le fichier
fclose( $FileContent ); // fermeture du fichier
}
}
?>
<html>
<body>
<?php
$name = 'Fruity Loop 6.2' ; // nom du fichier (et de l'archive)
$result = NumberOfHit( $name ) ; // récupération du nombre de hit pour le nom concerné
echo '
<h3>' . $name . '</h3>
<p>
Télécharger le fichier : <a href="?file=' . $name . '">Direct download</a><br/>
Nombre de hit : ' . $result . '
</p>
';
?>
</body>
</html> |
mais un fichier doit exister pour chaque document que l'on souhaite télécharger. Donc si j'ai 30 documents, il faudra 30 fichiers...je trouve que ça fait lourd et pas très propre. C'est pour cela que j'avais pensé à utilisé un seul fichier ou l'on trouverait à l'intérieur les noms des 30 documents avec leur nombre de téléchargement, chacun séparé par un ";" par exemple. Mais est-il toujours intérressant d'utiliser un fichier, pour avoir un temps d'accès plus court qu'en interrogeant une BD, avec tous les telechargement à l'intérieur ?
Merci de votre aide