Fonction rename() ne fonctionne pas

Absot Messages postés 819 Statut Membre -  
Char Snipeur Messages postés 10112 Statut Contributeur -
Bonjour, je souhaiterais utiliser la fonction rename() pour renommer un fichier.

J'utilise Ubuntu et j'ai un fichier dans mon répertoire public_html que j'ai nommé "test.php" avec dedans, un simple:
echo "hello";


J'ai également créé dans mon répertoire public_html, un fichier php où j'utilise la fonction rename() pour comprendre son fonctionnement.

Mon but est de renommer mon fichier "test.php" en "hello.php", voici mon script utilisé:
if(file_exists("test.php"))
{
	if(rename("test.php", "hello.php"))
	{
		echo "Fichier existe et renomme!";
	}else
	{
		echo "Fichier existe mais pas renomme!";
	}
}else
{
	echo "Fichier n'existe pas";
}


Cela ne fonctionne pas, en regardant les spécification de la fonction, elle attend deux paramètres, le premier étant le fichier que l'on veut renommer et le second paramètre qui est le nom en lequel on veut renommer le fichier mais je ne vois pas où est mon erreur, j'ai pensé que peut-être mon fichier n'était pas trouvé donc j'ai vérifié avec la fonctione file_exists() et il le trouve bel et bien..

Au niveau des permissions, le fichier est en 777 donc n'importe qui peut le modifier et le lire.

La fonction: http://www.manuelphp.com/php/function.rename.php

Merci de votre aide.



A voir également:

5 réponses

Gremy87 Messages postés 360 Statut Membre 38
 
Bonjour,

tout cela me parait bien étrange, essaye avec des chemins absolus ou même relatifs mais des chemins plutôt que juste le nom.

il passe donc dans cette branche a chaque fois?

"Fichier existe mais pas renomme!"

0
Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
idée à la con : il n'y aurait pas déjà un fichier hllo.php ?
à vérifier dans ton script en tout cas, ça pourrait le bloquer.
Sinon, les permissions d'écriture du dossier ?
0
Utilisateur anonyme
 
Bonjour,

Avez vous vérifié les permissions sur le répertoire ou se trouve le fichier ?
0
Absot Messages postés 819 Statut Membre 44
 
Mon répertoire public_html est en permission 755 et il n'existe aucun fichier hello.php déjà présent dans celui-ci.

Il trouve bien mon fichier puisque ça m'affiche "Fichier existe mais pas renomme!" donc je ne comprends pas pourquoi il n'arrive pas à le renommer.

J'ai également essayé en faisant comme ça mais ça ne fonctionne pas:
rename("./test.php", "/home/***/public_html/hello.php") 
0
Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
essai le mode 777 pour le répertoire, si l'uid n'est pas celui du propriétaire du répertoire, c'est pour ça qu'il ne peut pas écrire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
Regardez peut-être du côté du safe mode de PHP

https://www.php.net/manual/fr/ini.sect.safe-mode.php
0