Compteur téléchargement + lien caché

Scipt complet

    <b>1ere Partie - Page test-compteur.php</b>
    <?php
    /** identifiants BDD */
    define('USER',	'xxxxxxxx'); // Nom Utilisateur
    define('MDP',	'Xyxyxy'); // Mot de passe
    define('_DB',	'ma_base'); // Nom de votre Base
    define('HOST',	'localhost');

    // Connection à la Base 1
    $conn_DB = mysqli_connect(HOST,USER,MDP,_DB);
    // si la connexion se fait en UTF-8, sinon ne rien indiquer
    $conn_DB->set_charset("utf8");
    if (!$conn_DB) {
      die("Erreur de connexion: " . mysqli_connect_error());
    }
    ?>
    <a id="retour-actu"></a>

    <h1>Tester le compteur :</h1>          
    <br />
    <!-- Script Obfuscation
    On cache l'emplacement du fichier à télécharger -->         
  
    <script type="text/javascript">
    document.addEventListener("DOMContentLoaded", function(event) {
    var classname = document.getElementsByClassName("transf");
    for (var i = 0; i < classname.length; i++) {
    classname[i].addEventListener('click', myFunction, false);
    }
    });
    var myFunction = function(event) {
    var attribute = this.getAttribute("data-int");               
    document.location.href= decodeURIComponent(window.atob(attribute));};
    </script>         
  
    <style>
    .transf:hover {
    text-decoration: underline;
    cursor: pointer;
    }
    </style>         
  
En cliquant sur le bouton Télécharger, vous allez pouvoir télécharger un fichier zip.
Cette action va aussi ajouter + 1 dans la base de données.
    //On récupère l'id de l'article à télécherger
    //par une requête appropriée pour un résultat tel que:
    $id_article = 1;         
  
    <?php
    $query_compteur = mysqli_query($conn_DB, "SELECT * FROM logiciels WHERE id_article = '".$id_article."' ");
    $res_compteur = mysqli_fetch_object($query_compteur);
    $recupNB = $res_compteur->compteur;
    $Message_Avant = 'Téléchargements actuels : '.$recupNB.'';
    if (isset($_POST['new_compteur'])) {
    $query_new_compteur = mysqli_query($conn_DB, "SELECT * FROM logiciels WHERE id_article = '".$id_article."' ");
    $res_new_compteur = mysqli_fetch_object($query_new_compteur);
    $recupNB = $res_compteur->compteur - 1;
    $recupNewNB = $res_new_compteur->compteur;
    $Message_Avant = 'Téléchargements antérieurs : '.$recupNB.'';     
    $Message_Actu = '
Téléchargements actuels : '.$recupNewNB.''; } // Lien de téléchargement $Lien_download = '/COMPTEUR/LOGICIELS/demo-compteur.php?renvoi=demo_download.php&id='.$id_article.''; //Affichage des messages echo $Message_Avant; echo $Message_Actu; //Bouton de téléchargement en lien caché ?> <a class="transf btn" data-int="<?php echo base64_encode($Lien_download); ?>">1) > > Télécharger</a> <br /> <br /> <!-- Pas nécessaire au script: actualisation de la page pour les test --> <form method="post" action="#retour-actu"> <input type="submit" id="submit" name="new_compteur" class="btn" value="2) Voir le tableau des téléchargements"> </form> <br /> <br /> <b>2ere Partie - Page demo-compteur.php</b> <?php /** identifiants BDD */ define('USER', 'xxxxxxxx'); // Nom Utilisateur define('MDP', 'Xyxyxy'); // Mot de passe define('_DB', 'ma_base'); // Nom de votre Base define('HOST', 'localhost'); $Site_Url = "https://www.mon-site.com";//Adresse du site // Connection à la Base 1 $conn_DB = mysqli_connect(HOST,USER,MDP,_DB); // si la connexion se fait en UTF-8, sinon ne rien indiquer $conn_DB->set_charset("utf8"); if (!$conn_DB) { die("Erreur de connexion: " . mysqli_connect_error()); } $url = $_GET["renvoi"]; $id = $_GET["id"]; // Mise à jour de la table logiciels //et renvoi vers la page qui va effectuer le téléchargement $update_compteur= 'UPDATE logiciels SET compteur=compteur+1 WHERE id_article = "'.$id.'"'; $res_update = $conn_DB->query($update_compteur); header("location: $Site_Url/COMPTEUR/LOGICIELS/$url"); die(); ?> <br /> <br /> <b>3ere Partie - Page demo_download.php</b> <!-- La page qui génère le download --> <?php $fichier = 'demo_telechargement.zip'; header("Content-disposition: attachment; filename=$fichier"); header("Content-Type: application/force-download"); readfile($fichier); ?>