lecture/ecriture fichier

Rechercher
Boutique en ligne, solution e-commerce, script PHP et PERL : RAYNETTE

lecture/ecriture fichier

Par grisbi  -  3 reponses  -  Le 01/06/2015 14:05  -  Editer  - 

Bonjour

a titre didactique je modifie le script upload

je voudrais ecrire le nombre d'upload dans un fichier texte pour une reutilisation ulterieure comme limiter le nombre d'upload ou autre

j'ai donc créé un fichier count.txt avec les droits 777

peis j'ai modifie ce passage dans le script :

    // Si c'est OK, on teste l'upload  
    if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET . $nomImage))  
    {  
        $message  = 'Upload réussi !';  
        $fp       = fopen("count.txt", "r+");  // ouvre le fichier en lecture/écriture  
        $nbimages = fgets($fp, 1);             // récupère le nombre dans le fichier  
        $nbimages++;                           // incrémente le nombre d'images(+1)  
        fseek($fp, 0);                         // se place en début de fichier  
        fputs($fp, $nbimages);                 // écrit dans le fichier le nouveau nb  
        fclose($fp);                           // 6.On ferme le fichier  
        echo $nbimages;                        // affiche le resultat à l'écran  
    }  

mais la valeur n'est pas ecrite dans le fichier donc ne s'affiche pas

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 01/06/2015 18:29  -  Haut de page  - 

Bonsoir,
l'erreur vient du fait que le fichier n'est ouvert qu'en lecture et non en écriture.
Les modes seront « r » (read), « w » ou « w+ » (write) (la différence avec ou sans le « + », c'est que sans, ça va remplacer le continuer, avec, ça va l'ajouter à la suite.), et quelques autres.
Remplace « r+ » par « w+ » et ça devrait beaucoup mieux fonctionner :)

 
Par grisbi  -  Le 01/06/2015 21:20  -  Haut de page  - 

malheureusement ça fonctionne toujours pas
est ce que mon bout de code est au bon endroit dans le fichier ?

a+

 
Par Cyrano  -  Le 02/06/2015 08:35  -  Haut de page  - 

Ça je ne sais pas, il faudrait vérifier que le déroulement passe bien par là et que la condition du IF est bien remplie.
Ensuite, l'utilisation de fopen() peut aussi être testé et en relisant le code, il n'est pas exclu que le problème vienne de là : à vérifier comme ceci par exemple :

    // Si c'est OK, on teste l'upload  
    if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET . $nomImage))  
    {  
        $message  = 'Upload réussi !';  
        if(false !== ($fp       = fopen("count.txt", "w")))  // ouvre le fichier en lecture/écriture  
        {  
            $nbimages = fgets($fp, 1);             // récupère le nombre dans le fichier  
            $nbimages++;                           // incrémente le nombre d'images(+1)  
            fseek($fp, 0);                         // se place en début de fichier  
            fputs($fp, $nbimages);                 // écrit dans le fichier le nouveau nb  
            fclose($fp);                           // 6.On ferme le fichier  
            echo $nbimages;                        // affiche le resultat à l'écran  
        }  
        else  
        {  
            echo("<p>Erreur lors de l'ouverture du fichier</p>");  
        }  
    }  

Si le message d'erreur s'affiche, c'est que le chemin vers le fichier n'est pas bon : il faudra alors l'ajuster en mettant un chemin absolu.

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !