Maison / Tutoriels Windows / Créez un compteur de téléchargement de fichiers en utilisant PHP et MySQL. Installation du compteur de téléchargement - un aperçu des plugins pour WordPress Compteur de fichiers sélectionnés

Créez un compteur de téléchargement de fichiers en utilisant PHP et MySQL. Installation du compteur de téléchargement - un aperçu des plugins pour WordPress Compteur de fichiers sélectionnés

Pendant longtemps, il n'y a eu aucune leçon sur PHP et MySQL. Aujourd'hui, nous allons créer un compteur de téléchargement simple mais efficace.

Chaque fichier aura une entrée dans la ligne de la table de la base de données. La même table stockera le nombre de téléchargements de fichiers. PHP mettra à jour la base de données MySQL et rediriger l'utilisateur vers le fichier requis.

Pour suivre le nombre de téléchargements de n'importe quel fichier, vous devez le mettre dans un dossier des dossiers et utilisez une URL spéciale pour y accéder.

Étape 1 - XHTML

La première étape consiste à créer le balisage de notre script. C'est très simple - nous avons gestionnaire de fichiers div, qui contient une liste non ordonnée dans laquelle chaque élément de la liste est responsable d'un fichier.

Les fichiers dont vous souhaitez suivre les téléchargements sont placés dans le dossier des dossiers dans le dossier racine du script. PHP parcourt ensuite tous les fichiers et ajoute chacun d'eux en tant qu'élément de liste ( li ) à une liste non ordonnée.

demo.php


  • photoShoot-1.0.zip 0 Télécharger

Notez que l'attribut href links passe le nom du fichier comme paramètre à download.php. C'est là qu'intervient le suivi des téléchargements.

Vous n'êtes pas obligé de tout afficher de la même manière - vous pouvez simplement créer un lien vers download.php sur vos pages et tous les téléchargements ne passeront pas.

Étape 2 - CSS

Après le balisage, passons au design. CSS les règles ci-dessous s'appliquent à gestionnaire de fichiers div avec id (symbole #), puisqu'il n'apparaît qu'une seule fois sur la page, et au reste des éléments par noms de classe.

styles.css

#file-manager( background-color:#EEE; border:1px solid #DDD; margin:50px auto; padding:10px; width:400px; )
ul.manager li( background:url("img/bg_gradient.gif") repeat-x center bottom #F5F5F5; border:1px solid #DDD; border-top-color:#FFF; list-style:none; position:relative ; ) ul.manager li a( display:block; padding:8px; ) ul.manager li a:hover .download-label( /* Au survol, affiche le texte de téléchargement vert : */ display:block; ) span. download- label( background-color:#64B126; border:1px solid #4E9416; color:white; display:none; font-size:10px; padding:2px 4px; position:absolute; right:8px; text-decoration:none ; text -shadow:0 0 1px #315D0D; haut:6px; /* Coins arrondis CSS3 */
-moz-bordure-rayon : 3 px ; -webkit-bordure-rayon : 3 px ; rayon de bordure : 3 px ; ) span.download-count( color:#999; font-size:10px; padding:3px 5px; position:absolute; text-decoration:none; )

Étape 3 -PHP

Comme je l'ai déjà dit, PHP recherche des fichiers dans le dossier des fichiers et répertorie chaque fichier en tant qu'élément de liste dans une liste non ordonnée. Voyons comment ça se passe

demo.php- partie supérieure

// Coucou rapports d'erreurs: error_reporting(E_ALL^E_NOTICE); // : nécessite "connect.php" ; $extension="" ; $files_array = array(); /* Ouvrez le dossier et parcourez tous les fichiers: */ $dir_handle = @opendir($directory) or die("Il y a une erreur avec votre répertoire de fichiers!"); tandis que ($file = readdir($dir_handle)) ( /* saut fichiers système : */ if($file(0)==".") continuer ; /* fin() renvoie le dernier élément du tableau généré par la fonction exploser() : */ $extension = strtolower(end(exploser(".",$fichier)) ); /* Ignorer les fichiers php : */ if($extension == "php") continue; $files_array=$fichier ; ) /* Trier les fichiers par ordre alphabétique*/ sort($files_array,SORT_STRING); $file_downloads=tableau(); $result = mysql_query("SELECT * FROM download_manager"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* Clé de tableau $file_downloads sera le nom du fichier, et contiendra le nombre de téléchargements: */ $file_downloads[$row["filename"]]=$row["downloads"] ; )

Remarquez comment nous sélectionnons toutes les lignes de la table download_manager avec mysql_query(), puis les ajoutons au tableau $file_downloads avec le nom du fichier comme clé du nombre de téléchargements. Ainsi, plus loin dans le code, nous pouvons écrire $file_downloads["archive.zip"] et imprimer le nombre de téléchargements.

Ci-dessous, vous pouvez voir le code qui génère les éléments de la liste :

demo.php- partie médiane

Foreach($files_array as $key=>$val) ( echo "

  • ".$val." ".(int)$file_downloads[$val]." Télécharger
  • "; }

    Tout se fait simplement avec une boucle foreach du tableau $files_array. Après cela, tout est sorti en utilisant echo.

    Examinons maintenant de plus près le fonctionnement du suivi des fichiers.

    download.php

    // Vérification des erreurs : error_reporting(E_ALL^E_NOTICE); // Activer le fichier de connexion db: require("connect.php"); if(!$_GET["file"]) error("Paramètre manquant !"); if($_GET["file"](0)==".") error("Mauvais fichier !"); if(file_exists($directory."/".$_GET["file"])) ( /* Si et le visiteur n'est pas un robot de recherche, compter les téléchargements: */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET filename="".mysql_real_escape_string($_GET["file"])."" ON DUPLICATE KEY UPDATE downloads=downloads+1"); header("Emplacement : ".$répertoire."/".$_GET["fichier"]); sortir; ) else error("Ce fichier n'existe pas !"); /* assistants de fonction: */ erreur de fonction($str) ( die($str); ) function is_bot() ( /* Cette fonction de contrôle sur le robot*/ $botlist = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK ", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler" ,"TweetmemeBot", "Butterfly", "Twitturls", "Me.dium", "Twiceler"); foreach($botlist as $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) return true; // Est un bot ) return false; // Pas un robot)

    Il est important de vérifier si votre visiteur est un humain ou un robot de moteur de recherche. Les robots sont sympas, mais ne les laissons pas fausser nos statistiques. C'est pourquoi la ligne de la base de données n'est mise à jour qu'après la vérification is_bot().

    Étape 4 -MySQL

    Comme nous l'avons noté à la dernière étape, le nombre de téléchargements est stocké sous forme de ligne dans la table download_manager. Tout d'abord, expliquons comment cette requête fonctionne :

    download.php

    INSERT INTO download_manager SET filename="filename.doc" ON DUPLICATE KEY UPDATE downloads=downloads+1

    Il indique à MySQL d'insérer une nouvelle ligne dans la table download_manager et de définir le champ de ligne du nom de fichier sur la valeur du fichier appelé pour le téléchargement. Cependant, le champ de nom de fichier désigné par index unique dans la table. Cela signifie que chaque ligne ne peut être insérée qu'une seule fois, sinon une erreur de clé en double se produira.

    C'est là que la deuxième partie de la requête fonctionnera - ON DUPLICATE KEY UPDATE indiquera à MySQL d'en ajouter un à la colonne des téléchargements si le fichier existe déjà dans la base de données.

    Ainsi, les nouveaux fichiers seront automatiquement ajoutés à la base de données lors du premier téléchargement.

    Étape 5 - jQuery

    Afin de faire un suivi en temps réel, il serait bon de mettre à jour le compteur à côté du nom du fichier après chaque téléchargement.

    Nous allons le faire avec jQuery :

    script.js

    $(document).prêt(fonction())( /* Le code est exécuté après le chargement de la page*/ $("ul.manager a").click(function())( var countSpan = $(".download-count",this); countSpan.text(parseInt(countSpan.text())+1); ) ); ));

    Nous attribuons simplement un gestionnaire de clics aux liens qui mènent à des fichiers, et à chaque clic nous ajoutons une valeur.

    Étape 6 -htaccess

    Il y a encore une chose à faire. Download.php redirigera l'utilisateur vers le fichier demandé, qui a été passé en paramètre. Cependant, vous avez peut-être remarqué que les navigateurs essaient d'ouvrir directement certains types de fichiers. Nous devons également lancer leur téléchargement. Cela peut être fait avec quelques lignes dans le fichier .htacess, qui se trouve dans le dossier des fichiers.

    Application ForceType/flux d'octets

    Maintenant, notre comptoir est complètement prêt !

    Conclusion

    Pour que la démo fonctionne, vous devez recréer la table download_manager dans la base de données MySQL. Vous pouvez trouver le code SQL requis dans les sources.

    Après cela, ajoutez vos données de connexion à la base de données dans le fichier configuration.php.

    La question suivante qui m'a récemment intéressé lors de la mise en place de mon projet d'auteur sans prétention était la question de savoir comment compter le nombre de téléchargements d'un fichier particulier publié ici. Il était plus logique de supposer que cela nécessite un autre plugin, certains Gestionnaire de téléchargement, ou ce qui est plus simple - compteur de téléchargement. Après avoir cherché sur Internet, il s'est avéré que, comme d'habitude, ces plug-ins sont un wagon et un petit chariot. Mais leurs critiques - encore une fois, non. Ce qu'il faut choisir n'est absolument pas clair, et comme d'habitude, j'ai dû tout tester sur moi-même. Et selon les résultats des tests, ce critique s'est avéré. Il a été écrit pendant très longtemps, alors que l'objectif n'était pas un test approfondi de tous les plugins ci-dessus avec un examen complet de leurs paramètres, vous ne trouverez donc pas de captures d'écran détaillées de chacun, mais voici les paramètres clés. Je ne voulais pas du tout en parler - ils étaient si stupides, mais si j'avais déjà regardé, c'était dommage de ne rien écrire du tout.

    Introduction.

    Ainsi, la tâche consistait à compter le nombre de téléchargements d'un fichier particulier en définissant le compteur de téléchargement pour WordPress. Après un examen plus approfondi, il s'est divisé en plusieurs sous-tâches, ou plutôt, souhaite un plugin qui l'exécuterait. En voici une courte liste :

    • Il est nécessaire que le nombre de téléchargements soit affiché quelque part dans le panneau d'administration, avec la possibilité de trier - combien ont été téléchargés par jour, par semaine, mois, année, total
    • Il est souhaitable que vous puissiez voir des graphiques / diagrammes de téléchargement de fichiers les uns par rapport aux autres
    • Il est souhaitable que vous puissiez voir des graphiques / diagrammes de téléchargement de fichiers au fil du temps
    • Il est souhaitable que des statistiques soient conservées sur le dernier téléchargement du fichier
    • La possibilité d'afficher des informations à côté du lien sur le nombre de fois que le fichier a été téléchargé, ainsi que sa taille et la date de téléchargement pour un utilisateur qui est sur le point de le télécharger. Eh bien, ou ne pas afficher - à la demande de l'administrateur
    • La possibilité d'insérer le code responsable de cela avec un bouton séparé dans le panneau de publication de l'éditeur TinyMCE (je n'aime pas utiliser les balises rapides)
    • Possibilité de limiter la vitesse de téléchargement (donc, juste au cas où)
    • Attacher la fonction de téléchargement à ce plugin (télécharger des fichiers sur le serveur) - au contraire, n'a pas abandonné. FTP fonctionne bien pour moi aussi. Mais si cela n'interfère pas beaucoup, alors laissez-le rester
    • Ce serait bien de pouvoir coller un beau bouton sur le lien de téléchargement - même si je n'ai qu'à écrire class = "bouton"

    ABAP

    Télécharger un fichier!

    • Eh bien, si vous comptez le nombre de téléchargements non seulement à partir de votre site, mais simplement à partir d'un lien
    • Possibilité d'interdire le téléchargement direct d'un fichier sans indiquer où il se trouve sur le serveur.

    C'est une si petite liste.

    Examen

    Après avoir décidé des termes de référence, nous commencerons à considérer ce qui nous est directement proposé.

    1. Plugin Download Counter 1.2, téléchargé ici.

    Initialement, la page du plugin était localisée, mais l'auteur ne l'a pas prise en charge depuis plus de 4 ans. Nous créons pour moi un autre dossier dans le répertoire des plugins - download-counter, jetez-y les deux fichiers. En conséquence - où penseriez-vous? - les paramètres correspondants apparaissent dans les enregistrements. Très original, mais bon.

    Nous entrons à l'intérieur, écrivons le chemin vers le fichier download-manager.php (je n'aime vraiment pas jeter des bêtises directement à la racine). Et regardez ce que nous avons. Téléchargez le fichier, vérifiez s'il se télécharge dans mode manuel, si vous entrez un lien direct dans le navigateur, entrez le chemin dans le plugin pour créer un compteur. En théorie, un ID devrait être créé, qui devra ensuite être inséré partout. Mais rien ne s'est passé - cela donne une erreur "Erreur - Impossible de sauvegarder l'enregistrement". Eh bien, ok, nous sommes persuadés, nous le transférons à la racine download-manager.php - plus rien, la même erreur. Eh bien, au diable, poisson rouge, il ne m'a pas suffi de comprendre les plugins que l'auteur n'a pas abandonnés. De plus, la fonctionnalité est pratiquement nulle.

    2. Plugin Download Counter Advanced 1.1, téléchargé le même.

    Je dirai tout de suite que cela n'a pas vraiment fonctionné pour moi non plus, vous ne pouvez donc lire sur son installation et sa configuration que par intérêt académique. En fait, c'est le même plugin, légèrement modifié. Dieu merci, même si l'instruction n'est pas traduite, vous pouvez la lire normalement et ne pas essayer de comprendre ce que le traducteur voulait dire. Soit dit en passant, dans le panneau d'administration - il semble que ce soit un plugin complètement différent, proposant de mettre à jour (oui, des figues). Semblable au plugin précédent, sa page a été localisée, et de la même manière l'auteur ne l'a pas supporté depuis plus de 4 ans. Par analogie, nous créons un autre dossier pour lui dans le répertoire des plugins, le mien est download-counter, nous y jetons tous les fichiers. Les paramètres semblent, bien sûr, plus riches, bien que la vitesse de téléchargement soit limitée immédiatement pour tous les fichiers et ne soit pas définie pour chacun individuellement. Où est le fichier download-manager..php (n'oubliez pas le nom du fichier à la fin, mais où se trouvent tous les téléchargements - j'ai deviné la première fois, ce qui m'a plongé dans un terrible étonnement. Comme il s'est avéré plus tard, je l'ai deviné avec le nom du répertoire dans lequel déposer les téléchargements, ici ma logique a fonctionné à 100% comme l'auteur du plugin.

    Nous ajoutons les noms des dossiers que nous avons sur le serveur dans le répertoire des téléchargements (dans les paramètres « catégories et répertoires ») pour faciliter le choix du chemin vers les fichiers. Si vous ne les ajoutez pas, vous devrez tout télécharger à la racine des téléchargements. Enregistrez, vous pouvez ajouter des téléchargements. Voici ce que nous obtenons à peu près.

    Maintenant, nous essayons d'insérer dans le message. Nous ajoutons un lien, nous y modifions notre lien vers le code, qui est émis directement dans les paramètres du plugin. Et puis... Et des figues à vous ! Erreur HTTP 500 (Erreur interne du serveur) : une situation inattendue s'est produite alors que le serveur tentait de répondre à la demande. Eh bien, j'allais juste vous dire comment ajouter un compteur directement au message, et si le lien à l'intérieur pour y arriver

    ABAP

    < ahref= "http://chewriter..jpg" />

    alors vous pouvez afficher le bouton de téléchargement - tordu, vraiment. Voici le plugin pour vous, perdu votre temps. Il ne tient pas particulièrement de statistiques, car où est le problème, nous ne le découvrirons pas.

    C'est exactement le plugin auquel il a été proposé de mettre à jour le Download Counter Advanced ci-dessus. Eh bien, il propose - et d'accord, téléchargeons, voyons. Le plugin n'a pas été mis à jour depuis plus de 3 ans, et certains utilisateurs ont même apporté eux-mêmes des corrections à son code. Il est installé assez bien, l'ascèse des décors n'incite pas à l'optimisme. Au fait, bravo aussi, ils ont deviné où placer les réglages - pas pire que dans le cas précédent. Nous ajoutons des compteurs sur la page des paramètres, tout semble être mis en évidence, comme il se doit.

    Voyons ce que nous avons avec l'ajout au poste. Oui, pas de boutons. Et bien sûr, j'oubliais là, tout est intuitif. Passons aux instructions. Il faut bloquer une structure complexe composée de shortcodes comme , download , et en même temps (probablement à cause de NC) ça ne compte vraiment rien.

    Par conséquent, il ne sera pas davantage envisagé, avec le plugin Download Counter Chart qui lui est associé, qui affiche des informations sous forme graphique, nous ne le réaliserons pas.

    Écrit par notre compatriote, mais malheureusement tout ce qu'il peut faire est d'afficher le nombre de téléchargements du fichier à côté de son nom - ni statistiques ni autres goodies ne sont fournis. Cependant, si vous êtes un fan de minimalisme, c'est ce qu'il vous faut. N'oubliez pas, il n'y a pas de boutons, un shortcode comme


    compteur de téléchargement à faire soi-même pour wordpress

    devra être saisi manuellement. C'est très bien que l'auteur ait tout peint en détail, je n'ai pas eu à le tester par moi-même.

    Eh bien, si nous parlons de plugins écrits par nos collaborateurs, nous ne pouvons pas manquer d'en mentionner un de plus. Son énorme avantage est qu'il vous permet de compter non seulement le nombre de téléchargements de fichiers, mais aussi les clics sur les liens - peu importe s'ils mènent à un fichier ou simplement à une autre page. Ou vers un fichier sur la page de quelqu'un d'autre 🙂 Il calculera également cela, ou plutôt, théoriquement, il devrait le calculer. Ses statistiques ne sont pas non plus si chaudes, il n'y a pas de boutons sur le panneau d'édition, il n'y a pas non plus de restrictions sur les téléchargements. Mais c'est quand même intéressant à voir. Alors téléchargez et installez. En gros assez Description détaillée est sur le site de l'auteur, donc je ne vais pas trop le diffuser. Vous devez toujours garder à l'esprit que si vous voulez mettre un compteur sur un fichier ou sur un lien, alors vous devez soit utiliser un shortcode du type, soit insérer la classe class="count" dans le lien. Ceci, bien sûr, est ennuyeux, avec un bouton, ce serait beaucoup plus pratique. Mais le plus ennuyeux est qu'après tous les gestes, je n'arrivais toujours pas à le faire fonctionner correctement - si le shortcode était utilisé, alors le lien de téléchargement lui-même n'était pas affiché, et si la classe était utilisée, les statistiques du lien n'étaient pas apparaissent dans le panneau d'administration. Des captures d'écran peuvent être consultées par l'auteur - si vous aimez l'idée elle-même - essayez-la, vous réussirez peut-être.

    En effet, très simple. Aucun shortcode, etc. requis. Cependant, ce plugin fournit des statistiques uniquement pour l'auteur, mais pour les visiteurs, à côté du lien vers le fichier, il n'est pas affiché.

    Cependant, il convient de noter que des statistiques détaillées sont conservées sur qui a téléchargé quel fichier et quand. Cependant, il n'est pas très pratique de l'utiliser.

    Les paramètres incluent les éléments suivants :

    • Vous pouvez spécifier le répertoire à partir duquel les fichiers sont autorisés à être téléchargés
    • Vous pouvez spécifier les types de fichiers autorisés à télécharger
    • Désactiver le téléchargement de fichiers en tant qu'auteur
    • Définissez en secondes l'intervalle pendant lequel les clics répétés sur un lien de la même IP ne seront comptés qu'une seule fois
    • Limitez le nombre de fichiers pouvant être téléchargés depuis une IP par jour
    • Utilisez une page intermédiaire avec des informations indiquant que le téléchargement va maintenant commencer

    Cependant, tout cela ne fonctionne que si vous avez (comment faire simple...) la permission d'éditer le fichier .htaccess, ou si vous spécifiez directement le lien en l'insérant dans

    Cependant, comme il n'avait pas la capacité d'afficher des statistiques pour les utilisateurs et que je ne voulais pas me souvenir du type de lien, j'ai arrêté de le considérer, décidant de revenir uniquement si les autres plugins de la file d'attente ne pouvaient pas résoudre la tâche .

    En termes d'affichage d'informations, ce plugin est très similaire à celui évoqué dans le paragraphe précédent. Il diffère en ce qu'il vous permet de visualiser les statistiques séparément hebdomadairement, mensuellement, pour n'importe quelle période et seulement le top 10. Au niveau de ses capacités, c'est beaucoup plus misérable, il n'y a pas de statistiques sur le dernier téléchargement, ni sur un fichier précis, sans parler de la possibilité d'imposer des restrictions sur le téléchargement de fichiers. Il n'y a pas de documentation claire du tout. J'ai eu l'impression qu'il ne s'agissait que d'un malentendu et non d'un plugin. Je ne veux même pas donner de captures d'écran, mais pour être objectif, je vais quand même leur donner, copyright.

    Eh bien, nous sommes arrivés à quelque chose de plus ou moins digne. Près d'un demi-million de téléchargements disent quelque chose. Page Officielle le plugin est localisé. Pour insérer un fichier dans un article, vous devez utiliser la flèche au-dessus de l'éditeur visuel (l'icône n'apparaît pas dans celui-ci)

    Et dans la fenêtre qui apparaît, sélectionnez le fichier requis (ceci est un exemple s'il a déjà été téléchargé via FTP)

    Ensuite, cliquez sur le bouton "Enregistrer le nouveau téléchargement"

    et, en passant à l'écran suivant, sélectionnez le format de téléchargement et cliquez sur insérer dans Publier. Il est possible que rien ne se passe. Le plugin est légèrement bogué avec dernières versions wordpress. Par conséquent, vous devez également cliquer sur le lien Afficher les téléchargements

    Et déjà alors choisir d'abord le format de téléchargement, cliquez sur le lien Insérer à côté du fichier que vous souhaitez insérer.

    Après cela, le shortcode correspondant du type apparaîtra dans le post

    ABAP

    [id de téléchargement="7592" format="1"]

    Le plugin nécessite mince réglage manuel, mais aucun WYSIWYG n'est fourni. Heureusement que vous n'avez besoin de le configurer qu'une seule fois. La documentation détaillée est sur l'auteur.

    Voici un exemple de configuration :

    ABAP

    (Titre)

    < ahref= "(url)" title="(!LANG :Téléchargé (hits,"ни разу","1 раз","% раза"}">{title}!}

    Il convient de noter que les déclinaisons ne sont pas prises en charge, c'est-à-dire. si le fichier a été téléchargé 21 fois et que vous avez des "fois" dans votre modèle, cela sonnera quelque peu non russe.

    Et voici l'option bouton :

    ABAP

    - (description), (taille), Téléchargé (date,"Y-m-d"), Téléchargé (hits) fois

    < ahref= "(url)" title="(!LANG :Téléchargé (hits,"ни разу","1 раз","% раза"}">!} - (description), (taille), Téléchargé (date,"Y-m-d"), Téléchargé (hits) fois

    Ressemble à ça:

    Eh bien, après quelques raffinements, cela a commencé à ressembler à ceci (toujours sans boutons):

    Code de ligne :

    ABAP

    (type_fichier_icon) (Titre)(Taille du fichier : (taille), Téléchargé : (date,"d.m.Y"), Téléchargé (hits) fois)
    (la description)

    La liste des possibilités est assez large :

    • Vous pouvez télécharger des fichiers à la fois avec son aide (en cliquant sur la flèche) et indiquer l'endroit où ils se trouvent, s'ils ont été téléchargés plus tôt via FTP, vous pouvez simplement spécifier l'URL
    • Masque le véritable emplacement du fichier, vous pouvez remplacer toute combinaison d'URL nécessaire
    • Vous pouvez utiliser le bouton de téléchargement, y compris le vôtre
    • Ne comptez pas les téléchargements par l'administrateur et toutes les adresses IP inutiles incluses dans la liste d'exclusion du compteur
    • S'il faut compter les téléchargements répétés dans un certain laps de temps à partir de la même adresse IP
    • Vous pouvez définir plusieurs formats - avec une image, avec un compteur, sans compteur, etc., et utiliser chacun d'eux dans la situation appropriée
    • Il y a un déchargement du journal de téléchargement sous la forme fichier csv un

    Si un fichier mp3 ou vidéo est téléchargé, vous devez spécifier pour eux, forcer le téléchargement ou non. Si force - alors en cliquant dessus, il sera téléchargé, s'il n'est pas coché - joué, puis enregistré - avec le bouton droit de la souris. Je tiens à noter que les fichiers téléchargés avec son aide ne sont pas placés là où votre répertoire spécial pour les fichiers est créé, mais dans le wp-content/uploads/downloads/ créé par celui-ci - vous devez vous en souvenir, ainsi que le fait que lors de leur suppression des statistiques - les fichiers physiques sont également supprimés du serveur. Avec ceux qui sont téléchargés via FTP - tout va bien. De plus, si vous insérez un lien dans différents articles vers le même fichier, je ne comprenais pas si cela les résumerait. Malheureusement, il ne prend en charge aucune restriction de téléchargement, à l'exception du fait que vous pouvez empêcher tout le monde de télécharger, à l'exception des utilisateurs enregistrés. Lorsque vous souhaitez afficher le nom du fichier dans la ligne inférieure du navigateur, ou que vous devez le remplacer par son ID - vous devez vous rappeler d'aller dans les paramètres-> permaliens, et d'y enregistrer la configuration afin que tout soit correctement enregistré dans .htaccess - Sans cela, les fichiers ne seront pas téléchargés.!

    Les statistiques sont affichées à trois endroits à la fois - dans la console, dans les informations sur les fichiers et dans les journaux de téléchargement. Cela crée certains inconvénients, par exemple lorsque vous devez voir quand un fichier a été téléchargé pour la dernière fois, mais vous pouvez télécharger des statistiques sous la forme d'un fichier csv, puis les trier dans Excel. Compte tenu du fait qu'Excel a la capacité diabolique de créer les tableaux et graphiques nécessaires, alors ce n'est peut-être pas mal. Cependant, je pense que les captures d'écran en diront plus:

    Eh bien, une capture d'écran du journal lui-même :

    En même temps, un énorme avantage est qu'un widget apparaît dans la console avec des statistiques comme celle-ci :

    De manière générale, on peut dire qu'après quelques ajustements, le plugin fait très bien son travail.

    Ce plugin a été écrit par le même auteur que le plugin WP-Polls que j'utilise sur ce site, par exemple. Bien qu'il jouisse, en comparaison avec lui, d'un ordre de grandeur moins populaire. Mais voyons si c'est mérité. Toute la documentation se trouve sur le site de l'auteur. À la base, le plugin est absolument identique au précédent - le modèle est écrit de la même manière, il n'y a aucune restriction sur le téléchargement, sauf pour les utilisateurs enregistrés ou non enregistrés, il est également nécessaire d'utiliser un shortcode du formulaire

    ABAP

    [id de téléchargement="7592"]

    et pour le reste des points :

    • Vous pouvez télécharger des fichiers à la fois avec son aide (jusqu'à deux Mo, eh bien, ou combien vous avez spécifié dans php.ini), et spécifier l'endroit où ils se trouvent, s'ils ont été téléchargés plus tôt via FTP, vous pouvez simplement spécifier l'URL
    • Masque le véritable emplacement du fichier, mais il n'est pas possible de substituer une combinaison d'URL nécessaire, il n'y a que quelques options fixes, la principale n'a pas fonctionné pour moi
    • Peut être configuré pour afficher des informations aux visiteurs sur la taille du fichier, combien de fois il a été téléchargé, quand il a été téléchargé
    • Vous pouvez afficher une icône pour les types de fichiers correspondants
    • Vous pouvez réinitialiser le compteur ou définir la valeur souhaitée

    Cependant, il y a aussi quelques différences. Premièrement, il n'y a pas de bouton dans l'éditeur visuel qui puisse être utilisé pour insérer un shortcode. Il y a plutôt un bouton, mais pour l'utiliser, vous devez d'abord ajouter un compteur pour le fichier dans les paramètres du plugin, puis ce bouton ajoutera l'ID du compteur directement à la publication. Deuxièmement, il n'y a qu'un seul modèle et une sortie pour différents fichiers des informations différentes ne fonctionneront pas. Parmi les avantages des statistiques, il indique quand le fichier a été téléchargé pour la dernière fois, sinon il n'y a que des inconvénients - pas de téléchargement dans un fichier csv, pas de visualisation de qui a téléchargé (il n'y a pas d'IP), pas de distribution par date.

    Mais les icônes sont plus jolies (je les ai ensuite attachées au plugin précédent). Le résultat de son travail est le suivant :

    De plus, lors de la suppression d'un enregistrement de la base de données, il demande s'il est également nécessaire de supprimer le fichier lui-même ou de le laisser. Mais en termes de totalité des propriétés, je l'ai moins aimé que le précédent - du moins par le fait que vous devez insérer le fichier séparément en dehors de la publication, cependant, il n'a pas d'inconvénients particuliers - le choix entre eux est une question de goût, le premier a plus d'options, des statistiques plus détaillées, le second - des statistiques légèrement plus pratiques (bien que plus pauvres) et moins de fonctionnalités.

    L'artillerie lourde entre en action. Le plugin est principalement russifié et est un gestionnaire de téléchargement, pas un compteur. Il est possible de limiter la vitesse de téléchargement, et le nombre de téléchargements par personne et par jour.

    Mais je dirais que certaines des fonctionnalités de ce plugin sont redondantes, et celles statistiquement nécessaires ne suffisent pas. Beaucoup de réglages, des widgets de téléchargement, un système de synchronisation complexe, un système d'affichage des tags mp3, d'affichage des fichiers flv, d'organisation d'un stockage de mini-fichiers, d'affichage de tous les fichiers spécifiés sur la page en début ou fin de post, etc. , etc.

    Je ne veux même pas donner des captures d'écran de tous les paramètres.

    Cependant, avec tout cela - afin d'afficher magnifiquement le modèle dans le message - j'ai dû modifier le fichier de style qu'il contient, en réduisant la largeur. De plus, pour afficher le modèle par défaut, il est nécessaire après avoir inséré le shortcode avec le bouton

    entrez le nom du modèle dans le code avec des stylos. Certains sont en conflit avec le nom russe. Au fait, cela ressemble à ceci (je donnerai trois variantes de modèles à la fois):

    Compte - via un pont de souches (enfin, ou plus d'un téléchargement depuis IP ne compte pas, je ne sais pas). Les statistiques sont un peu moins que complètement médiocres, très similaires au plug-in dont nous venons de parler ci-dessus.

    En général, j'ai eu une impression - saine, mais stupide. Convient pour certains stockages de fichiers, et même dans ce cas - s'il est associé à un autre plugin. Je l'ai regardé - oui, et démoli.

    Franchement, quand j'ai lu sa description, j'ai pensé - c'est ça, ce qu'il me faut !

    Compteur, protection par mot de passe, shortcode inséré par bouton, bouton modifiable, etc.

    Et cela ressemble à ceci (il a donné deux modèles utilisés à la fois):

    Cependant, pour ajouter un fichier, vous devez d'abord ajouter un compteur pour celui-ci dans les plugins. Deuxièmement, il n'y a pratiquement pas de statistiques du tout.

    Troisièmement, vous ne pouvez pas définir l'affichage de la taille du fichier pour l'utilisateur. Quatrièmement, il n'y a pas de limite de vitesse de téléchargement, il n'y a qu'une protection par mot de passe pour le fichier. Les modèles ne peuvent pas être modifiés. Et une grosse inscription avec une offre d'achat d'une version premium pour 45 dollars. Eh bien, en général, vous comprenez. Tout ce qui est délicieux est pour les grand-mères. Désactivé et démoli. Et de beaux cadres, boutons, etc. - Je prescrirai moi-même dans les styles quand je veux.

    Sommaire

    Installer de manière standard (en copiant dans le répertoire wp-content/plugins/download-monitor/, laissez mettre à jour, remplacez toutes les icônes par des icônes de l'archive dans le répertoire wp-content/plugins/download-monitor/img/filetype_icons/ et activer.

    À l'avenir, si je mets la main dessus, je pense créer des liens dans de jolis cadres en utilisant css3, sur lequel j'écrirai probablement aussi. Restez avec nous 🙂

    Mise à jour Maintenant, l'auteur a révisé Plug-in WordPress Téléchargez Monitor et créez une version complètement différente de l'original. Je l'ai vérifié, mais je l'ai beaucoup moins aimé car le modèle de formulaire de ce à quoi ressemblerait le lien de téléchargement n'est plus si facile à modifier. L'auteur a décidé que des vues prédéfinies prêtes à l'emploi suffiraient. Par exemple, si dans le menu des téléchargements, sélectionnez les paramètres vue souhaitée parmi les six pré-installés, cliquez sur enregistrer

    Ensuite, en choisissant la deuxième option, vous obtenez quelque chose comme ceci :

    Ceux. sur le nouvelle version utiliser la ligne que j'ai fournie dans la description ne fonctionnera pas, mais il sera nécessaire d'écrire un fichier php spécial que ce modèle de sortie décrirait. Mais le plus triste n'est même pas cela - mais le fait que ce fichier php, s'il est placé dans le répertoire avec le plugin, sera écrasé à chaque mise à jour du plugin. Et si vous le mettez dans le répertoire avec le thème, alors lorsque vous changez de thème (bien que cela se produise bien sûr beaucoup moins souvent). Mais en tout cas, l'écrire est une tâche assez laborieuse, et jusqu'à présent je n'ai aucune envie de le faire. Donc le seul plus du plugin mis à jour

    J'ai décidé de voir combien de fois l'un de mes scripts est téléchargé à partir du site. Pour ce faire, j'ai décidé d'écrire un compteur de téléchargement de fichiers pour le site. Il existe de nombreuses implémentations de cette tâche sur Internet, mais néanmoins, lisez ma solution.

    La logique du compteur de téléchargement est assez simple. Pour l'implémenter, nous allons utiliser mon ajax préféré. On accroche au bouton quand l'événement clik se produit, l'appel via ajax au fichier php du compteur. En php, la requête ajax est traitée et écrite dans fichier texte chiffres pour le nombre total de sauts. Après un enregistrement réussi, une réponse est renvoyée avec un compteur de téléchargement total et l'utilisateur est redirigé vers un lien pour télécharger le fichier (le fichier est en cours de téléchargement). Voici une logique si simple Maintenant, commençons à l'implémenter. Créons à l'avance un fichier test.zip téléchargeable. Créons le code du bouton et montrons le compteur de sauts.

    Nombre de sauts :

    Nous avons créé un bouton avec id="btnSend" , nous afficherons le compteur dans un span avec id="countView" , nous stockerons un lien vers le fichier téléchargé dans l'attribut data-download

    Attachons maintenant un gestionnaire de clic au bouton. Ici, nous utiliserons déjà js et jquery. Vous pouvez lire comment implémenter clik en utilisant jQuery. Mais avant d'installer le gestionnaire de clics, nous allons accéder ajax au fichier count.php, qui contiendra tout le travail du compteur. Vous pouvez en savoir plus sur le transfert de données ajax. Ceci est nécessaire pour afficher depuis le fichier où écrit le compteur, le nombre de téléchargements déjà effectués et les afficher dans un span avec id="countView"

    /*obtenir le nombre actuel de téléchargements*/ $(document).ready(function())( //interdire la requête ajax du cache //sinon le compteur échouera $.ajaxSetup((cache: false)); var html; $. ajax (( //comment nous allons passer le type de données : "GET", //où nous passons l'url : "count.php", //quelles données nous transmettons données : (drapeau : 2), //événement après réception d'une réponse from count.php success : function(data)( html=data; //afficher le nombre actuel de téléchargements $("#countView").html(html); ) )); /*accrocher un événement sur le bouton de téléchargement de fichier */ var clickevent=false ; //cliquez sur l'indicateur de vérification //cliquez sur le gestionnaire $("#btnSend").click(function())( if(!clickevent)( $.ajax(( //comment nous allons envoyer les données type : "GET", //où nous passons l'url : "count.php", //quelles données envoyer data : (drapeau : 1), //événement avant d'envoyer ajax beforeSend : function()() //si le bouton a été cliqué then true clickevent=true; ), //événement après réception de la réponse, //obtenir les données dans data success : function(data)( //après avoir effectué les actions, autoriser à nouveau //processing cliquez sur le bouton clickevent=false ; html=données ; //affiche un nouveau compteur $("#countView").html(html); //récupérer le lien depuis data-download //rediriger vers le lien de téléchargement, télécharger le fichier window.location.href = $("#btnSend").data("download"); ) )); ) renvoie false ;//interdit le traitement de l'événement au clic ) ); ));

    Pour éviter une pression répétée et erronée sur le bouton d'envoi, j'ai introduit le drapeau clickevent dans le script. Jusqu'à ce que la réponse de count.php soit renvoyée avec les données de compteur mises à jour, il sera interdit de cliquer sur le bouton. Je pense que le travail du code après avoir cliqué sur le bouton est plus ou moins clair. Après avoir cliqué sur le bouton de téléchargement, les données sont transférées vers le fichier count.php, où elles sont traitées et les données de compteur mises à jour sont renvoyées, une redirection vers le lien de téléchargement se produit et, en conséquence, le fichier est téléchargé.

    Décomposons maintenant le cœur de notre script, à savoir le fichier count.php.

    Function clearInt ($date)( //convertir la date en un nombre non négatif return abs((int)$date); ) if($_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest") ( //vérifier quel indicateur est venu if (clearInt($_GET["flag"]==1)) ( //ouvre le fichier en lecture $f=fopen("mycount.txt","a+"); //bloque l'accès au fichier depuis d'autres programmes flock($ f,LOCK_EX); //obtenir la valeur du compteur à partir du fichier $count=fread($f,100); //ajouter le compteur @$count++ ; //écraser le fichier ftruncate($f,0); //alimente un nouveau compteur lisant fwrite ($f,$count); //ferme le fichier fclose($f); //retourne la valeur echo $count; ) if(clearInt($_GET["flag"]==2) ) ( $c=fopen(" mycount.txt","a+"); flock($c,LOCK_EX); $festc=fread($c,100); fclose($c); //valeur de retour echo $festc ; ) )

    Ici, je pense que la même chose est simple. Si le drapeau 1 arrive, alors nous réécrivons le compteur. Si l'indicateur 2 apparaît, les données sur le nombre de téléchargements sont simplement renvoyées. Tout le reste, je pense, ressort clairement des commentaires dans le code.

    Compteur de téléchargement Joomla

    J'ai décidé d'attacher un compteur similaire à l'un de mes projets joomla. En théorie, bien sûr, vous devez soit écrire un module séparé, soit intégrer le code dans le contrôleur du composant de contenu com, de sorte que les données du compteur ne soient pas écrites dans un fichier, mais dans la base de données et pour chaque article séparément. Mais il n'y a pas de temps pour un tel développement et j'ai résolu le problème plus simplement. J'avais besoin d'un compteur pour une page. J'ai pris le fichier count.php et l'ai transféré dans le modèle joomla, qui est sur ce moment connecté (à la racine du site templates/votre_template). N'oubliez pas d'insérer le code defined("_JEXEC") ou die;tout en haut de count.php; (c'est pour joomla). Nous insérons le bouton de téléchargement dans la page que nous créons, et le code js peut également être intégré dans la page, ou connecté fichier séparé. Par exemple, j'ai un fichier séparé (il se trouve dans le dossier template js). Dans le modèle lui-même, dans l'en-tête, la connexion se fait via le code

    Et n'oubliez pas d'obtenir avec une requête ajax, nous accédons à l'url : "/index.php?tmpl=count" et non à l'url : "count.php", . Juste comme ça, j'ai juste foutu le compteur de téléchargement de fichiers sur joomla.

    Pour télécharger le compteur, suivez les instructions simples.

    1. Pour lancer le téléchargement du fichier d'installation, cliquez sur le bouton bleu "Télécharger depuis le serveur" situé juste au-dessus.
    2. Après cela, le serveur préparera et vérifiera le fichier d'installation pour les virus.
    3. Si le fichier n'est pas infecté et que tout va bien, un bouton gris "Télécharger" apparaîtra.
    4. En cliquant sur le bouton "Télécharger", le fichier sera téléchargé sur votre ordinateur.

    Nous ne vous demandons pas de passer par un processus d'inscription fastidieux ou d'envoyer un SMS de confirmation. Téléchargez et profitez =)

    Comment installer le compteur

    Pour installer le programme, suivez les instructions simples qui s'appliquent à la plupart des programmes.

    1. Exécutez le fichier téléchargé en double-cliquant dessus. Tous les fichiers d'installation proviennent des sites Web officiels des développeurs.La dernière date de mise à jour du fichier Counter version 1.1 était le 28 décembre 2016 à 4h38.
    2. Acceptez le contrat de licence dans la fenêtre qui apparaît. Vous pouvez également lire le contrat de licence sur le site officiel du développeur du programme.
    3. Sélectionnez les composants requis que vous souhaitez installer. Décochez les cases qui peuvent être nécessaires pour installer des programmes supplémentaires.
    4. Sélectionnez un dossier sur votre ordinateur où vous souhaitez installer le programme. Dans la plupart des cas, le programme sélectionne automatiquement un dossier, par exemple, sous Windows c'est C:\Program Files\
    5. Enfin, le gestionnaire d'installation du programme peut proposer de créer un "Raccourci Bureau" ou "Dossier Menu Démarrer".
    6. Ensuite, le processus d'installation commencera. Une fois l'installation terminée, le gestionnaire d'installation peut vous demander de redémarrer votre ordinateur pour que le programme fonctionne plus correctement.

    Dans l'article d'aujourd'hui, nous allons créer un système de suivi de téléchargement de fichiers simple mais fiable. Chaque fichier aura une ligne correspondante dans la base de données où le nombre total de téléchargements de ce fichier sera stocké. PHP mettra à jour la base de données MySQL et redirigera les utilisateurs vers les fichiers appropriés.

    Pour suivre le nombre de téléchargements, il vous suffit de télécharger les fichiers dans le bon dossier et d'utiliser une URL spécifique pour y accéder.

    Étape 1 - XHTML

    Nous avons d'abord besoin du balisage XHTML. C'est très simple - c'est un bloc commun gestionnaire de fichiers, contenant une liste à puces dans laquelle un lien vers chaque fichier sera situé à l'intérieur de l'élément li.

    Les fichiers pour lesquels le nombre de téléchargements sera compté doivent être téléchargés dans le dossier des dossiers situé dans le répertoire racine du script (vous pouvez voir comment la structure du fichier est organisée dans l'exemple d'archive). PHP parcourra tous les fichiers du dossier et ajoutera chaque fichier en tant qu'élément li séparé, à une liste à puces.

    demo.php

    • photoShoot-1.0.zip 0 Télécharger

    Notez que l'attribut href au niveau du lien passe le nom du fichier téléchargé comme paramètre pour le fichier download.php. C'est là que les téléchargements seront comptés, comme vous le verrez plus tard.

    Vous n'êtes pas obligé d'utiliser cette interface particulière pour organiser le comptage des téléchargements. Vous pouvez simplement créer un lien vers download.php sur les pages de blog ou de site Web, et tous les téléchargements seront comptés correctement.

    Étape 2 - CSS

    Une fois que notre balisage XHTML est prêt, nous pouvons nous concentrer sur l'apparence de notre script. Les styles CSS ci-dessous attribuent l'apparence au bloc gestionnaire de fichiers, via son ID, puisque nous n'en avons qu'un sur la page. Les éléments restants sont stylisés par des noms de classe.

    style.css

    #file-manager( background-color:#EEE; border:1px solid #DDD; margin:50px auto; padding:10px; width:400px; ) ul.manager li( background:url("img/bg_gradient.gif") repeat-x center bottom #F5F5F5; border:1px solid #DDD; border-top-color:#FFF; list-style:none; position:relative; ) ul.manager li a( display:block; padding:8px; ) ul.manager li a:hover .download-label( /* Lorsqu'une liste est survolée, affiche le texte vert de téléchargement à l'intérieur : */ display:block; ) span.download-label( background-color:#64B126; border :1px solide #4E9416; couleur:blanc; affichage:aucun; taille de police:10px; rembourrage:2px 4px; position:absolue; droite:8px; texte-décoration:aucun; texte-ombre:0 0 1px #315D0D; haut :6px; /* Coins arrondis CSS3 */ -moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; ) span.download-count( color:#999; font-size: 10px ; rembourrage : 3px 5px ; position : absolue ; décoration de texte : aucune ; )

    Notez qu'ici la légende "télécharger" est masquée par défaut, avec la propriété affichage : aucun. Il s'affiche à travers bloc de visualisation, uniquement lorsque vous survolez le lien, pas de JavaScript. Un peu de CSS3 est utilisé pour arrondir les coins de la légende.

    Étape 3 - PHP

    Comme nous l'avons dit plus haut, PHP parcourt tout le dossier des dossiers, et affiche chaque fichier sous la forme d'un élément li d'une liste à puces. Examinons de plus près comment cela se produit.

    demo.php - Haut

    // Rapport d'erreur : error_reporting(E_ALL^E_NOTICE); // Inclut le fichier de connexion à la base de données : require "connect.php" ; $extension="" ; $files_array = array(); /* Ouvrir le répertoire des vignettes et parcourir toutes les vignettes : */ $dir_handle = @opendir($répertoire) or die("Il y a une erreur avec votre répertoire de fichiers !"); while ($file = readdir($dir_handle)) ( /* Ignorer les fichiers système : */ if($file(0)==".") continue ; /* end() renvoie le dernier élément du tableau généré par la fonctionexplose() : */ $extension = strtolower(end(explode(".",$file))); /* Ignorer les fichiers php : */ if($extension == "php") continue; $files_array =$file; ) /* Trier les fichiers par ordre alphabétique */ sort($files_array,SORT_STRING); $file_downloads=tableau(); $result = mysql_query("SELECT * FROM download_manager"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* La clé du tableau $file_downloads sera le nom du fichier, et contiendra le nombre de téléchargements : */ $file_downloads[ $row["filename"]]=$row["téléchargements"] ; )

    Remarquez comment nous sélectionnons tous les enregistrements de la table download_manager avec mysql_query() puis ajoutez-les au tableau $file_downloads, avec le nom de fichier de la clé de tableau et la valeur downloads. Ainsi, plus loin dans le code, on peut écrire $file_downloads['archive.zip'], et affichez le nombre de téléchargements de ce fichier.

    Vous trouverez ci-dessous le code utilisé pour générer les éléments li d'une liste à puces.

    demo.php - Partie centrale

    Foreach($files_array as $key=>$val) ( echo "

  • ".$val." ".(int)$file_downloads[$val]." Télécharger
  • "; }

    Tout est très simple - nous passons par le cycle pour chaque par tableau $files_array, et affichez les données nécessaires sur la page dans le balisage approprié.

    Examinons maintenant de plus près le fonctionnement de la comptabilité des téléchargements.

    download.php

    // Rapport d'erreur : error_reporting(E_ALL^E_NOTICE); // Inclut le fichier de connexion : require("connect.php"); if(!$_GET["file"]) error("Paramètre manquant !"); if($_GET["file"](0)==".") error("Mauvais fichier !"); if(file_exists($directory."/".$_GET["file"])) ( /* Si le visiteur n'est pas un moteur de recherche, comptez le téléchargement : */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET filename="".mysql_real_escape_string($_GET["file"])."" ON DUPLICATE KEY UPDATE downloads=downloads+1"); header("Emplacement : ".$directory."/".$_GET[" file"]); exit; ) else error("Ce fichier n'existe pas!"); /* Fonctions d'assistance : */ function error($str) ( die($str); ) function is_bot() ( /* Cette fonction vérifiera si le visiteur est un robot de moteur de recherche */ $botlist = array("Teoma" , "alexa", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg " ", "rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler","TweetmemeBot", "Butterfly", " Twitturls","Me.dium","Twiceler"); foreach($botlist as $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) return true ; // Est un bot ) retourne false; // Pas un bot )

    Ici, vous devez absolument vérifier si le visiteur est un robot de moteur de recherche qui explore vos liens. Les robots sont de bons visiteurs car ils aident à référencer votre site dans les moteurs de recherche, mais dans notre cas, ils peuvent fausser les statistiques de téléchargement. C'est pourquoi la base de données n'est mise à jour qu'après que le visiteur a passé la vérification est_bot().

    Étape 4 - MySQL

    Comme nous l'avons mentionné à l'étape précédente, le nombre de téléchargements est enregistré sous forme de chaîne dans la table download_manager de la base de données MySQL. Tout d'abord, laissez-moi vous expliquer comment cette partie de la requête fonctionne :

    download.php

    INSERT INTO download_manager SET filename="filename.doc" ON DUPLICATE KEY UPDATE downloads=downloads+1

    La première partie de la requête indique à MySQL d'insérer une nouvelle ligne dans la table. Gestionnaire de téléchargement, et définissez la valeur du champ nom de fichierégal au nom du fichier demandé à charger. De plus, le champ nom de fichier défini comme un index de table unique. Cela signifie qu'une ligne avec un nom de fichier spécifique ne peut être insérée qu'une seule fois, sinon une erreur de champ de clé en double se produira.

    C'est dans ce cas que la deuxième partie de la demande entre en vigueur - SUR LA MISE À JOUR DE CLÉ EN DOUBLE, ce qui augmente la valeur du champ téléchargements par un si le fichier est déjà dans la base de données.

    De cette façon, les nouveaux fichiers seront automatiquement insérés dans la base de données la première fois qu'ils seront téléchargés.

    Étape 5 - jQuery

    Afin de rendre notre compteur de téléchargement plus visuel, il serait bien d'ajouter la possibilité de mettre à jour le compteur à côté du nom du fichier dès que l'utilisateur commence à télécharger. Jusqu'à présent, pour voir les nouvelles valeurs des compteurs, l'utilisateur doit recharger la page.

    Cela peut être corrigé avec un petit morceau de code:

    script.js

    $(document).ready(function())( /* Ce code est exécuté après le chargement complet du DOM */ $("ul.manager a").click(function())( var countSpan = $(".download -count",this); countSpan.text(parseInt(countSpan.text())+1); )); ));

    Nous venons d'affecter un gestionnaire d'événements au clic sur le lien. Chaque fois que l'utilisateur clique sur le lien, nous incrémentons de un la valeur actuelle des téléchargements.

    Étape 6 - htaccess

    Nous avons encore une chose à faire avant de pouvoir dire que le travail est terminé. Vous avez peut-être déjà remarqué que certains types de fichiers, le navigateur par défaut essaie de s'ouvrir immédiatement. Au lieu de cela, nous devons commencer à télécharger le fichier. C'est assez facile à faire en ajoutant quelques lignes à l'intérieur du fichier .htaccess situé dans le dossier des dossiers:

    Application ForceType/flux d'octets

    Ça y est, notre compteur de téléchargement est prêt.

    Conclusion

    Pour exécuter cet exemple sur votre propre serveur, vous devrez créer une table download_manager dans une base de données MySQL, à laquelle vous avez bien sûr accès. Dans l'archive avec un exemple, il y a un fichier table.sql, qui contient le code SQL nécessaire pour créer la table souhaitée.

    Après cela, spécifiez simplement les détails de connexion à votre base de données dans le fichier configuration.php.