Partage
  • Partager sur Facebook
  • Partager sur Twitter

compteur avec fichier texte

compteur de téléchargements

    20 mai 2006 à 0:41:40

    Bonsoir,

    Après avoir vu le tuto sur comment créer son conteur de pages vues j'ai eu envie de le modifier un peu pour en faire un compteur de téléchargements.
    Tout fonctionne très bien à part que le fichier ne se télécharge pas :lol:

    j'ai deux pages
    1-Compteur.php
    2-index.php

    Voilà le très court code du fichier "compteur.php":
    <?php
    // 1 : on ouvre le fichier
    $monfichier = fopen("ressources/compteur.txt", "r+");
    $download = fgets($monfichier); // On lit la première ligne (nombre de téléchargements)
    $download++; // On augmente de 1 ce nombre de téléchargements
    fseek($monfichier, 0); // On remet le curseur au début du fichier
    fputs($monfichier, $download); // On écrit le nouveau nombre de téléchargements
    // 3 : quand on a fini de l'utiliser, on ferme le fichier
    fclose($monfichier);
    header("Location: $file"); // Je ne suis absolument pas sur de cette ligne
    ?>


    le fichier zip et le compteur.txt sont dans un dossier "ressources"

    Et j'ai fais le lien suivant :
    <a href="compteur.php?file=ressources/mon_archive.zip">Télécharger</a>


    Sauriez vous me dire, comment après avoir ajouter la valeur +1 au compteur, télécharger l'archive?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      20 mai 2006 à 0:46:26

      header('Location: ' . $lurldetonfichierquilestbien);
      • Partager sur Facebook
      • Partager sur Twitter
        20 mai 2006 à 0:54:06

        Merci.

        En fait maintenan le code fonctionne si je fais ça :
        - le lien :
        <a href="compteur.php">Télécharger</a>

        - le fichier compteur.php :
        <?php
        // 1 : on met à jour le compteur
        $monfichier = fopen("ressources/compteur.txt", "r+");
        $download = fgets($monfichier); // On lit la première ligne (nombre de téléchargements)
        $download++; // On augmente de 1 ce nombre de téléchargements
        fseek($monfichier, 0); // On remet le curseur au début du fichier
        fputs($monfichier, $download); // On écrit le nouveau nombre de téléchargements
        // 2 : quand on a fini de l'utiliser, on ferme le fichier
        fclose($monfichier);
        // 3 : redirection vers le fichier
        header("Location: http://127.0.0.1/mon_site/ressources/mon_archive.zip");
        ?>


        Le truc c'est que j'aimerai mettre l'url dans une variable (genre $file) pour qu'après dans la redirection je n'ai pas à écrire l'url complète mais juste la variable enregistrée et passé par le lien de la page de téléchargement.

        Pourquoi quand je fais :
        le lien :
        <a href="compteur.php?file=http://127.0.0.1/monsite/ressources/mon_archive.zip">Télécharger</a>

        la redirection :
        header('Location:' $file);

        Ca ne fonctionne pas?
        • Partager sur Facebook
        • Partager sur Twitter
          23 mai 2006 à 7:01:33

          J'ai "réussi" à faire fonctionner le téléchargement mais avec une redirection en javascript et pas avec la fonction header de php, ce qui n'est pas du tout ce que je cherche.

          Est ce donc réellement fesable avec header?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            23 mai 2006 à 11:55:42

            Avec un GET c'est possible...

            telecharger.php?fichier=02

            <?php
            $fichier = intval($_GET['fichier']);
            if (!$fichier)
            {
                die('Mauvaise demande');
            }
            if (file_exists('ressources/' . fichier . '.zip'))
            {
                    header('Location: ressources/' . $fichier . '.zip');
            }
            else
            {
                     die('Mauvaise demande');
            }
            ?>


            Bien sur tes zip doivent être nommés en chiffres à partir de 1 (ou alors faut sécuriser encore plus avec une de mes conditions magiques)
            Et ils doivent être dans le dossier ressources du site.
            • Partager sur Facebook
            • Partager sur Twitter
              23 mai 2006 à 18:47:56

              J'ai essayé ton code mais j'ai l'erreur suivante après avoir cliqué sur le lien :

              Citation : erreur

              Notice: Use of undefined constant fichier - assumed 'fichier' in g:\program files\easyphp1-8\www\monsite\telecharger.php on line 12
              Mauvaise demande


              La ligne 12 est la suivante :
              if (file_exists('ressources/' . fichier . '.zip'))


              et si je met 01.zip à la place de ' . fichier . ' j'ai la même erreur qu'avant, impossible de changer le header...
              • Partager sur Facebook
              • Partager sur Twitter

              compteur avec fichier texte

              × 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