=> Pb Compteur de downloads.

=> Pb Compteur de downloads. - PHP - Programmation

Marsh Posté le 02-05-2006 à 14:31:05    

Bonjour à tous.
 
J'ai téléchargé la suite de scripts PHP @lexpoll 2 (si certains connaissent...) qui permet de comptabiliser le nombre de fois qu'un fichier est téléchargé. Pour pouvoir assurer ses fonctions, les fichiers de téléchargement doivent être accompagné d'un fichier .txt initialisé à la valeur "0".
 
Cette suite se compose de 2 fichiers :
- Un premier portant le nom de dalinker.php3, soccupant de l'incrémentation dans le fichier .txt contenant le nombre de téléchargements. Voici le code :
 

Code :
  1. <?
  2. $tel_file = "$file".".txt";
  3. // --------------------------------
  4. $fp = fopen("$tel_file","r+" );
  5. $nbtel = fgets($fp,255);
  6. $nbtel++;
  7. fseek($fp,0);
  8. fputs($fp,$nbtel);
  9. fclose($fp);
  10. // --------------------------------
  11. header("Location: $file".".zip" );  //On redirige vers le fichier à télécharger (toujours au format ZIP!)
  12. ?>


 
 
- Et un second du nom de dareader.php3 permettant de lire le chiffre se trouvant dans le fichier .txt :
 

Code :
  1. <?
  2. $fp = fopen("fichier.txt","r" ); //changer le "fichier.txt"
  3. $nbtel = fgets($fp,255);        //pour votre nom de fichier
  4. fclose($fp);
  5. // --------------------------------
  6. if($nbtel<2)
  7. {                             //Moins de 2 téléchargements
  8. echo "$nbtel Téléchargement"; //on vire le "S" à la fin :)
  9. }
  10. else
  11. {
  12. echo "$nbtel Téléchargements";
  13. }
  14. ?>


 
Enfin, pour que tout cela fonction il faut mettre le lien de téléchargement sous cette forme :

Code :
  1. <a href="dalinker.php3?file=fichier(sans l'extension)">fichier</a>


 
J'ai fait tout cela sur une page test et ça ne fonctionne pas (ma page).
 
Si quelqu'un pouvait m'aider ce serait sympatique! :)
 
Merci d'avance.


Message édité par Grobs le 02-05-2006 à 17:06:40
Reply

Marsh Posté le 02-05-2006 à 14:31:05   

Reply

Marsh Posté le 02-05-2006 à 14:38:39    

En gros, le problème de la page "Doawnloads" réside en ces lignes :

Code :
  1. $fp = fopen("fichier.txt","r" ); //changer le "fichier.txt"
  2. $nbtel = fgets($fp,255);        //pour votre nom de fichier
  3. fclose($fp);


 
Et celui du dalinker (c'est à dire du lien) ici :

Code :
  1. $fp = fopen("fichier.txt","r" ); //changer le "fichier.txt"
  2. $nbtel = fgets($fp,255);        //pour votre nom de fichier
  3. fclose($fp);


Message édité par Grobs le 02-05-2006 à 14:42:32
Reply

Marsh Posté le 02-05-2006 à 15:20:25    

le fopen marche ? (sous-entendu il retourne une ressource, pas un false ?)
 
Si le fopen marche pas :
- vérifie que ton serveur a les droits pour ouvrir le fichier si tu es sous linux.
- vérifie que t'es pas en safe mode
- vérifie le paramètre open_basedir
 
(toutes ces suggestions venant de là : http://fr.php.net/manual/fr/function.fopen.php )

Reply

Marsh Posté le 02-05-2006 à 15:35:22    

Merci pour ton aide.
 

Citation :

Si le fopen marche pas :
- vérifie que ton serveur a les droits pour ouvrir le fichier si tu es sous linux.
- vérifie que t'es pas en safe mode
- vérifie le paramètre open_basedir


 
En effet le fopen pause problème.
- Je suis sou XP donc la question des droits d'ouverture est écartée.
- safe mode ? Si tu parle de la lecture seule je pense que non.
- open_basedir ? :), où ?

Reply

Marsh Posté le 02-05-2006 à 15:41:04    

http://fr.php.net/manual/fr/features.safe-mode.php
http://fr.php.net/manual/fr/featur [...] en-basedir
 
quel erreur te renvoit le fopen ? Ptet que tout simplement le fichier n'existe pas à l'emplacement que tu indiques.

Reply

Marsh Posté le 02-05-2006 à 15:43:54    

C'est bien ça qui m'inquiete. J'ai l'impression qu'il cherche le fichier .txt dans la page de downloads elle-même! :
 
"Warning: fopen() [function.fopen]: Unable to access fichier.txt in /media/160go/hebergement/grobs/Contenu_Downloads.php on line 431"


Message édité par Grobs le 02-05-2006 à 15:44:12
Reply

Marsh Posté le 02-05-2006 à 15:47:25    

La solution serait peut-être de changer de script non ? :)

Reply

Marsh Posté le 02-05-2006 à 16:51:27    

bah, ou de mettre le bon directory

Reply

Marsh Posté le 02-05-2006 à 16:52:08    

C'est vrai mais je ne vois pas où est l'erreur dans mon chemin...

Reply

Marsh Posté le 02-05-2006 à 17:15:49    

J'ai mis le lien dans une page test et les premiers messages d'erreur ont disparuent. Restent ceux du lien en lui-même...

Reply

Marsh Posté le 02-05-2006 à 17:15:49   

Reply

Marsh Posté le 02-05-2006 à 17:18:51    

Le message d'erreur en entier :
 
Warning: fopen() [function.fopen]: Unable to access .txt in /media/160go/hebergement/grobs/dalinker.php3 on line 10
 
Warning: fopen(.txt) [function.fopen]: failed to open stream: No such file or directory in /media/160go/hebergement/grobs/dalinker.php3 on line 10
 
Warning: fgets(): supplied argument is not a valid stream resource in /media/160go/hebergement/grobs/dalinker.php3 on line 11
 
Warning: fseek(): supplied argument is not a valid stream resource in /media/160go/hebergement/grobs/dalinker.php3 on line 13
 
Warning: fclose(): supplied argument is not a valid stream resource in /media/160go/hebergement/grobs/dalinker.php3 on line 15
 
Warning: Cannot modify header information - headers already sent by (output started at /media/160go/hebergement/grobs/dalinker.php3:10) in /media/160go/hebergement/grobs/dalinker.php3 on line 17

Reply

Marsh Posté le 02-05-2006 à 17:33:03    

bah danston code tu as :
$fp = fopen("fichier.txt","r" ); //changer le "fichier.txt"
 
Donc tu fais comme c'est dit, tu remplaces "fichier.txt" par le bon fichier, par exemple 'c:/windows/monfichier.txt'

Reply

Marsh Posté le 02-05-2006 à 17:35:38    

Ok. En faite, ce qui m'a induit en erreur c'est que je pensais qu'il n'y avait pas besoins de copier les fichiers pour chaque lien à faire... C'est pour ça que je ne modifiais pas ça. Merci de ton aide. Je vais essayer.

Reply

Marsh Posté le 02-05-2006 à 17:38:52    

Ca ne marche toujours pas.


Message édité par Grobs le 02-05-2006 à 17:39:08
Reply

Marsh Posté le 02-05-2006 à 19:07:54    

message d'erreur quand tu mets la direction vers le bon fichier ?

Reply

Marsh Posté le 02-05-2006 à 19:57:47    

Ben oui... :

Code :
  1. $fp = fopen("Softs/accordeur_guitarsound.txt","r" ); //changer le "fichier.txt"

Reply

Marsh Posté le 02-05-2006 à 23:48:07    

c'est quoi le message d'erreur ?
c'est qui ton hénergeur ?

Reply

Marsh Posté le 03-05-2006 à 10:04:57    

Le message d'erreur est celui que j'ai posté un peu plus haut. Mon hébergeur est goldzoneweb.info (gratuit).

Reply

Marsh Posté le 03-05-2006 à 11:14:22    

soit tu te trompes de répertoire, soit le safe_mode est activé (mais je crois qu'il y a un message d'erreur spécifique dans ce cas)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed