Merci pour cette réponse.
J'ai donc essayé d'appliquer l'exemple à ma page mais il ne veut toujours pas renommer parceque les chemins semblent erronés. Je m'explique:
En realité, l'idée n'est pas aussi simple que cela...

Chaque utilisateur a son propre espace avec trois sous repertoire dedans "doc", "img" et "mus". le nom de son dossier personnel est stocké dans la base de donnée et on le rappele au login en le stockant dans une session et par la suite dans la variable "$folder".
Une fois identifié, on accède à son espace et on rentre dans les sous dossiers via des liens. la variable pour le choix du sous-dossier est stocké dans $ssrep! Enfin

, le nom du fichier est stocké dans la variable $f
On a donc, quant on veut telecharger un fichier un lien de la forme:
users/$folder/$ssrep/$f
.
Or depuis que j'utilise votre code, le chemin du fichier (je l'ai verifié en l'affichant avec un echo) est de la forme
users/$folder$ssrep//$f: <=il colle le $folder et le $ssrep et renvoi le slach qui les sépare normalement après!

Donc je ne sais pas si cela a un rapport avec le nouveau code mais pour l'instant je ne peux pas tester votre code (qui semble marcher) sur ma page.
Merci encore pour votre "soutien"
C'est pas facile tous les jours la programmation!!!

Bertrand (testez sur http://winlive.fr.nf avec le login "visitor" et le mdp "visitor")