Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cherche Tuto Compteur téléchargement

    17 mai 2021 à 11:34:23

    Bonjour à tous,

    Dans une page HTML je propose des fichiers PDF en téléchargement.
    Novice en php, je suis à la recherche d’un tutoriel pour concevoir un compteur de téléchargement. Le but étant de voir la popularité des téléchargements. 
    Je souhaiterais afficher le nombre de téléchargements pour chacun des fichiers dans ma base de donnée avec la date et je ne souhaite pas que le compteur soit visible dans ma page.

    Si quelqu’un a connaissance d’un tutoriel récent de ce type je suis preneur.

    Merci

    -
    Edité par Jokoa 17 mai 2021 à 11:35:46

    • Partager sur Facebook
    • Partager sur Twitter
      17 mai 2021 à 14:51:03

      Hello!

      Je pense pas que tu es besoin d'un tuto pour cela mais plus d'une guideline.

      Car si tu sais faire un téléchargement, c'est carément moins compliqué :)

      Mais il faudrait que tu nous montre déjà comment est fait ton téléchargement actuellement en partant du HTML jusqu'au PHP :)

      • Partager sur Facebook
      • Partager sur Twitter
      $2b||!$2b
        17 mai 2021 à 17:21:25

        Salut,

        Au risque de te décevoir, je crois qu'on ne parle pas de la même chose ^^, je me suis peut-être mal exprimé.

        Voici mon code pour un exemple de 3 fichiers que je propose : 

        <div class="hasard-choix h-white">
                    <a href="images/fichier1.pdf" download>
                      <svg width="63.8" height="63.6" viewBox="0 0 63.8 63.6" xmlns="http://www.w3.org/2000/svg" version="1.1"
                        preserveAspectRatio="xMinYMin">
                        <use xlink:href="#img-question"></use>
                      </svg>
                    </a>
                    <a href="images/fichier2.pdf" download>
                      <svg width="63.8" height="63.6" viewBox="0 0 63.8 63.6" xmlns="http://www.w3.org/2000/svg" version="1.1"
                        preserveAspectRatio="xMinYMin">
                        <use xlink:href="#img-question"></use>
                      </svg>
                    </a>
                    <a href="images/fichier3.pdf" download>
                      <svg width="63.8" height="63.6" viewBox="0 0 63.8 63.6" xmlns="http://www.w3.org/2000/svg" version="1.1"
                        preserveAspectRatio="xMinYMin">
                        <use xlink:href="#img-question"></use>
                      </svg>
                    </a> 
                  </div>

        Voilà, tout simplement..

        • Partager sur Facebook
        • Partager sur Twitter
          18 mai 2021 à 7:48:21

          Ok donc tu fournis directement le fichier.

          Dans ce cas je vois deux options:

          - Soit tu comptes les "clic" sur le lien en utilisant Javascript et à chaque clic, tu envois un message AJAX sur une page PHP qui va lui ce cantonner à faire un +1 en BDD sur le nom du fichier (ou un ID que tu lui auras attribué).

          - Soit au clic ça appel un page PHP (au lieu de desservir directement le fichier) qui va faire +1 en BDD comme au dessus puis qui va envoyer le contenue du fichier.

          • Partager sur Facebook
          • Partager sur Twitter
          $2b||!$2b
            18 mai 2021 à 11:40:24

            Je te remercie pour ta réponse,

            J'ai essayé de chercher un tutoriel qui irait dans le sens de ta 2e proposition. 

            C'est un tutoriel de 2020, Je l'ai mis en place sur mon site mais je reçois ce message d'erreur : 

            Fatal error: Uncaught Error: Call to undefined function mysql_result() in /home/monsite/www/myclickscript.php:9 Stack trace: #0 {main} thrown in /home/monsite/www/myclickscript.php on line 9

            Je te montre mon code si jamais tu veux bien m'orienter. 

            myclickscript.php :

            <?php
            
            $connect = new PDO('***');
            
            
            if (isset($_GET['id']) && intval($_GET['id']) > 0) {
                $delay = 12*3600;
                $sql_check = sprintf("SELECT COUNT(*) AS test FROM clicks WHERE link_id = %d AND visitor_ip = '%s' AND UNIX_TIMESTAMP(click_at) + %d > UNIX_TIMESTAMP(NOW())", $_GET['id'], $_SERVER['REMOTE_ADDR'], $delay);
                if (mysql_result(mysql_query($sql_check), 0, "test") == 0) {
                    $country_sql = "SELECT country FROM ip2nation WHERE ip < INET_ATON('".$_SERVER['REMOTE_ADDR']."') ORDER BY ip DESC LIMIT 0,1";
                    $country = mysql_result(mysql_query($country_sql), 0, "country");
                    $sql_insert = sprintf("INSERT INTO clicks (link_id, visitor_ip, click_at, country, on_page) VALUES (%d, '%s', NOW(), '%s', '%s')", $_GET['id'], $_SERVER['REMOTE_ADDR'], $country, $_SERVER['HTTP_REFERER']);
                    mysql_query($sql_insert);
                }
                $sql_url = sprintf("SELECT url FROM link_table WHERE id = %d", $_GET['id']);
                $url = mysql_result(mysql_query($sql_url), 0, "url");
                header("Location: ".$url);
                exit;
            } else {
                header("Location: https://monsite.com/");
                exit;
            }
            ?>
             <a href="https://monsite.com/myclickscript.php?id=34">test clic</a>
            CREATE TABLE IF NOT EXISTS `links` (
              `id` int(11) NOT NULL auto_increment,
              `titel` varchar(75) NOT NULL default '',
              `naam` varchar(35) NOT NULL default '',
              `url` varchar(150) NOT NULL default '',
              `description` text NOT NULL,
              PRIMARY KEY  (`id`)
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
            
            CREATE TABLE IF NOT EXISTS `clicks` (
              `id` int(10) NOT NULL auto_increment,
              `link_id` int(10) NOT NULL default '0',
              `visitor_ip` varchar(15) NOT NULL default '',
              `click_at` datetime NOT NULL default '0000-00-00 00:00:00',
              `country` char(2) NOT NULL default '',
              `on_page` varchar(50) NOT NULL default '',
              PRIMARY KEY  (`id`)
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
            




            • Partager sur Facebook
            • Partager sur Twitter
              18 mai 2021 à 12:51:38

              Salut

              Tu créés ta connexion avec PDO, mais le tutoriel semble utiliser les vieilles méthodes mysql_* qui n'existent plus en PHP depuis la version 7.0. Il va te falloir adapter aux méthodes de PDO.

              • Partager sur Facebook
              • Partager sur Twitter

              Cherche Tuto Compteur téléchargement

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown