Compteur sur free

stajem Messages postés 389 Statut Membre -  
stajem Messages postés 389 Statut Membre -
Bonjour à tous !

Me revoici avec un nouveau problème qui me tient à coeur depuis qq temps ( 3 ans...).
Je me suis à nouveau reconfronté à celui hier :

Je viens de créer un site perso sans gros intéret, (je me suis d'ailleurs pas géné de le faire avec toweb...et oui à ce point^^). Mais je compte y mettre un compteur de téléchargement pour connaitre à quels fichiers seront le plus télécharger (bien sur ^^).

Je sais pas trop comment faire, je veux y mettre mon compteur (tout con en lettre "style : 2331"). Je sais pas comment faire...Je sais que certains y sont arrivés...on parle de chmod...ect moi je tilte rien...ou pas grand chose

--

Vivre, c'est rien. Mais c'est tellement...
Configuration: Windows Vista
Firefox 2.0.0.9

2 réponses

  1. gryzzly Messages postés 5220 Date d'inscription   Statut Contributeur Dernière intervention   1 340
     
    Pour cela, il faut que tu connaisses un peu php/sql ... sans quoi tu n'y arrivera pas.
    Voici un exemple de script permettant de télécharger une image, et de compter le nombre de téléchargements :

    1) La table mysql:
    # Création d'une table pour un petit album photo 
    
    CREATE TABLE Album 
    (id           INTEGER AUTO_INCREMENT NOT NULL,
       description  TEXT,
       compteur      INTEGER DEFAULT 0,
       PRIMARY KEY (id)
    )
    ;

    2) Le code html (un lien dans lequel tu attribues l'identifiant du fichier - ici ce sera la photo n°14) :
    <a href='ChargerPhoto.php?id=14'>Télécharger cette photo</a>

    Bien évidemment, l'idéal est de gérer la liste des fichiers à télécharger de façon dynamique en les lisant dans la table...

    3) Le fichier ChargerPhoto.php :
    <?php
    
    // Variables
    define ('LOGIN',"ton_login");
    define ('MDP',"ton_mdp");
    define ('SERVEUR',"ton_serveur_sql");
    define ('BASE', "ta_base");
    
    function Connexion ($Nom, $MotDePasse, $Base, $Serveur)
    	{
    	 // Connexion au serveur : erreur
    	 $connexion = mysql_connect ($Serveur, $Nom, $MotDePasse);
    	 
    	 if (!$connexion)
    		{
    		 echo "Désolé, la connexion au serveur " . $Serveur . " est imposible.\n";
    		 exit;
    		}
    	 
    	 // Connexion à la base de données : erreur
    	 if (!mysql_select_db ($Base, $connexion))
    		{
    		 echo "Désolé, la connexion à la base " . $Base . " est impossible.<br />\n";
    		 echo "Message de MySQL : " . mysql_error($connexion);
    		 exit;
    		}
    	 
    	 // On renvoie la variable de connexion
    	 return $connexion;
    	}
    
    function ExecRequete ($requete, $connexion)
    	{
    	 $resultat = mysql_query ($requete, $connexion);
    	 
    	 if ($resultat)
    		 return $resultat;
    	 else
    		{
    		 echo "Erreur dans l'éxécution de la requête '$requete'.<br />\n";
    		 echo "Message de MySQL : " . mysql_error($connexion);
    		 exit;
    		}
    	}
    
    
      // Téléchargement d'une photo identifiée par $_GET['id']
      // On commence par incrémenter le compteur
    
      $connexion = Connexion (LOGIN, MDP, BASE, SERVEUR);
      $requete =  "UPDATE Album SET compteur=compteur+1 "
                . "WHERE id='{$_GET['id']}'";
      $resultat = ExecRequete ($requete, $connexion);
    
      //  On envoie un en-tête forçant le transfert (download)
    
      $fichier = "PHOTOS/" . $_GET['id'] . ".jpg"; // Dans cet exemple, tous les fichiers sont dans le répertoire "PHOTOS" et leur nom est identique à leur identifiant, suivi de .jpg
      header ("Content-type: application/force-download");
      header ("Content-disposition: filename=$fichier");
    
      // Après l'en-tête on transmet le contenu du fichier lui-même
      readFile ($fichier); 
    
    ?>

    0
  2. stajem Messages postés 389 Statut Membre 79
     
    merci pour ta réponse rapide. Je regarde ça et je te tiens au courant !

    @+
    0