Compteur de téléchargement: où est l'erreur?
octani
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
octani Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
octani Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débutais avec un petit script php comme suivant:
j'ai crée une page download.php, quand on clique sur un lien de téléchargement le code s'exécute et incrémente le nombre de téléchargement du fichier dans un fichier texte data.txt: on y ecrit $count:::$file.
le code est:
le téléchargement se déroule sans problème, sans aucune écriture dans data.txt sauf un 1!
J'attend vos aides avec remerciements .
Merci d'avance.
Je débutais avec un petit script php comme suivant:
j'ai crée une page download.php, quand on clique sur un lien de téléchargement le code s'exécute et incrémente le nombre de téléchargement du fichier dans un fichier texte data.txt: on y ecrit $count:::$file.
le code est:
<?php $data = "data.txt"; $file=$_POST['file']; //nom du fichier à télécharger $filename="files/$file"; $fp = fopen($data,"r+") or die("impossible..."); //ouvrir data. txt $fpc = file_get_contents($fp); // récupérer son contenu if(strpos($fpc, $file)!== false) { // si data.txt contient le nom du fichier on modifie son count en lui ajoutant 1 ( ici mon problème..) $content = fread($fpc,filesize($data)); $content = str_replace($count, $count+1, $content); fseek($f,0); fputs($fp,$content."\n"); fclose($fp); } else{ // si le nom du fichier n'est pas inclus on l'écrit et le count=1 $fp = fopen($data,"r+"); $count=1; $content=$count." :: ".$file."\n"; fseek($f,0); fputs($fp,$content); fclose($fp); } // ici le code du téléchargement; // exit;
le téléchargement se déroule sans problème, sans aucune écriture dans data.txt sauf un 1!
J'attend vos aides avec remerciements .
Merci d'avance.
A voir également:
- Compteur de téléchargement: où est l'erreur?
- Compteur électrique - Guide
- Site de telechargement - Accueil - Outils
- Compteur de contractions - Télécharger - Santé & Bien-être
- Dark world telechargement - Guide
- Téléchargement - Télécharger - Compression & Décompression
2 réponses
Salut salut,
J'ai noté quelques petites choses bizarre dans le code :
Ici tu passes en paramètre la variable issue du fopen, or la fonction file_get_contents prend un chemin en paramètre, as tu vérifie le retour que tu avais dans la variable $fpc? Je pense qu'il est NULL.
Dans ton cas fais plutôt :
$fpc = file_get_contents($data);
$data étant le chemin du fichier.
$fpc sera donc une chaine String, pour vérifier la présence d'une chaine et mettre à jour le compteur, j'aurais fais qqch comme ça :
Avec ensuite une boucle qui vérifie ligne par ligne la présence ou non de la chaine dans le tableau $tab_content en mettant à jour le paramètre.
Il y a peut être mieux mais je trouve que c'est le plus intuitif.
J'ai noté quelques petites choses bizarre dans le code :
$fpc = file_get_contents($fp);
Ici tu passes en paramètre la variable issue du fopen, or la fonction file_get_contents prend un chemin en paramètre, as tu vérifie le retour que tu avais dans la variable $fpc? Je pense qu'il est NULL.
Dans ton cas fais plutôt :
$fpc = file_get_contents($data);
$data étant le chemin du fichier.
$fpc sera donc une chaine String, pour vérifier la présence d'une chaine et mettre à jour le compteur, j'aurais fais qqch comme ça :
$tab_content=explode("\n",$fpc); //On obtient un tableau avec une ligne par indice
Avec ensuite une boucle qui vérifie ligne par ligne la présence ou non de la chaine dans le tableau $tab_content en mettant à jour le paramètre.
Il y a peut être mieux mais je trouve que c'est le plus intuitif.
Merci bien kyser soze , de me répondre.
j'ai rectifié mon code comme suit:
Mais l'écriture ne se fait plus dans data.txt.
le code ( $file=$_POST['file'] ) est-t-il juste ?
c'est pour récupérer la valeur d'un input radio d'une autre page contenant un form:
<form action ="telecharge.php" method= "post">
<input type="radio" name="file" value="pain.pdf">pdf<br>
<input type="radio" name="file" value="viande.doc">doc<br>
<input type="radio" name="file" value="poisson.zip">zip<br>
<input name="submit" type="submit" value="télécharger vite!"/>
Merci de m'aider.
j'ai rectifié mon code comme suit:
<?php $data = "data.txt"; $file=$_POST['file']; $filename="files/$file"; $fpc = file_get_contents($data); if(!strpos($fpc, $file)!== false) { $tab_content=explode("\n",$fpc); $tab_content[0]++; $content=$tab_content[0]." :: ".$tab_content[1]; fputs($fpc,$content); fseek($fpc,0); fputs($fpc,$content."\n"); fclose($fpc); } else{ $fp = fopen($data,"r+"); $count=1; $content=$count." :: ".$file."\n"; fseek($fp,0); fputs($fp,$content); fclose($fp); } ... ?>
Mais l'écriture ne se fait plus dans data.txt.
le code ( $file=$_POST['file'] ) est-t-il juste ?
c'est pour récupérer la valeur d'un input radio d'une autre page contenant un form:
<form action ="telecharge.php" method= "post">
<input type="radio" name="file" value="pain.pdf">pdf<br>
<input type="radio" name="file" value="viande.doc">doc<br>
<input type="radio" name="file" value="poisson.zip">zip<br>
<input name="submit" type="submit" value="télécharger vite!"/>
Merci de m'aider.