[OK] Compteur de telechargement

Cette section vous permet de fournir votre code pour relecture. Les membres pourront vous donner quelques retours concernant leur propre expérience. C'est un bon moyen pour apprendre et s'améliorer.

[OK] Compteur de telechargement

Messagepar bego » Jeu Oct 06, 2011 11:28 am

salut, j'ai un code php pour compter les telechargements et les afficher sur mon site. Les compteurs sont enregistrés dans des fichiers txt et à chaque telechargement une fonction php incremente le compteur dans son fichier. Ensuite La fonction header est utilisée pour rediriger vers le telechargement.
J'ai testé ce code sur mon localhost (wamp) et il marche au poil! Problème c'est qu'il ne marche pas en ligne avec free-h. Donc la je donne ma langue au chat :P

Lorsque un internaute telecharge un logiciel, le code php envoi un url de la forme "index.php?lang=fr&file=lelogiciel" qui est capté par le code php defini au début de mon index.php que voici:

Code: Tout sélectionner
$folder_stat    = 'trial/stats/' ;
$folder_archive = 'trial/' ;

if ( isset( $_GET['lang'] ) )
{
$lang = htmlentities($_GET['lang'], ENT_QUOTES);
if (strcmp($lang,"fr")!=0)
   {
   $lang="en";                     
   }
}
else
{
$lang="en";
}

if ( isset( $_GET['file'] ) )
{
        $name = htmlentities($_GET['file'], ENT_QUOTES);
               
        if ( file_exists( $folder_stat . $name . '.txt' ) )
        {       
                $FileContent = fopen( $folder_stat . $name . '.txt', 'r+' );
       
                $hit = fgets( $FileContent );
                $hit = intval( $hit );
                $hit++;
               
                fseek( $FileContent, 0 );
                fputs( $FileContent, $hit );
               
                fclose( $FileContent );
               
                header( "Location: $folder_archive$name$lang.7z" );
        }
}


function NumberOfHit( $name )
{
        $folder_stat = 'trial/stats/' ;
        $file = $folder_stat . $name . '.txt' ;
       
        if ( file_exists( $file ) )
        {
                $FileContent = fopen( $file , 'r' );
       
                $hit = fgets( $FileContent );
                fclose( $FileContent );
               
                return $hit;
        }
        else
        {
   return -1;
        }
}

?>


voici le code pour un lien de telechargement :
Code: Tout sélectionner
<a href="index.php?lang=<?php echo $lang ?>&file=lelogiciel">LELOGICIEL<?php echo $lang ?></a>


enfin le code pour afficher le compteur dans la page html:
Code: Tout sélectionner
<?php $name = 'lelogiciel' ; $result = NumberOfHit( $name ) ; echo $result; ?>


J'ai adapté un code php libre de droit que j'ai trouvé sur le web afin de gérer la langue du logiciel tout en ayant un compteur unique par logiciel. N'importe qui peu reprendre ce code à son compte.

Si quelqu'un veut bien m'expliquer pourquoi ca marche sur mon localhost et pas sur free-h, merci d'avance!
bego
 
Messages: 6
Inscription: Jeu Jan 20, 2011 7:00 pm

Re: compteur de telechargement

Messagepar zinc91 » Jeu Oct 06, 2011 7:34 pm

Bonsoir,

Il faut donner les droits d'écritures au fichier texte en question.
Pour cela, faites un clique droit sur le fichier (dans FileZilla) puis "Permissions de fichier", entrer 777 puis validez.
Votre script devrait fonctionner ensuite ;)

À bientôt,
Zinc91.
zinc91
 
Messages: 640
Inscription: Jeu Sep 23, 2010 4:38 pm

Re: compteur de telechargement

Messagepar bego » Jeu Oct 06, 2011 8:57 pm

Merci zinc91, c'était bien les droits sur les fichiers qui bloquaient. A force de travailler avec windos j'avais oublié ces derniers.
bego
 
Messages: 6
Inscription: Jeu Jan 20, 2011 7:00 pm

Re: compteur de telechargement

Messagepar zinc91 » Jeu Oct 06, 2011 9:28 pm

De rien ;)
N'hésitez pas à ouvrir un nouveau sujet si vous avez un autre problème.

À bientôt,
Zinc91.
zinc91
 
Messages: 640
Inscription: Jeu Sep 23, 2010 4:38 pm


Retourner vers Analyse de code



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités