Création d'un répertoire en PHP
RésoluPour créer un répertoire j'utilise la fonction mkdir
if(mkdir ("/home/sam/mondossier"))
{
echo"ça marche!!!!";
}
else
{
echo"marche pas";
}
mais la crétion ne se fait pas. Pourquoi?
Je pense qu'il s'agit d'une histoire de serveur avec les droit mais je vois pas comment y remédier. Un dossier temporaire?
Merci
23 réponses
Le problème central est que la création d'un répertoire via PHP avec mkdir('/home/sam/mondossier') ne s'effectue pas, probablement à cause des droits d'écriture de l'utilisateur exécutant le serveur. Des solutions proposées incluent l'usage de mkdir avec récursivité et suppression d'erreurs (@mkdir('/home/sam/mondossier', 0777, true)), et la vérification des droits d'écriture sous Linux pour ajuster le chemin et le contexte. D'autres conseils consistent à créer d'abord les répertoires parents étape par étape ou à tester des chemins relatifs lorsque le chemin absolu déclenche des erreurs d'accès. En complément, certains évoquent les risques de sécurité liés à l'utilisation de permissions élevées comme 0777 et recommandent d'évaluer les droits réels et la configuration du serveur avant d'adopter ces méthodes.
-
Bonjour,
suivant https://www.php.net/manual/fr/function.mkdir.php
Depuis PHP5,
Les répertoires peut être créer avec
if(@mkdir ("sam/mondossier",0777,true)
true pour la création de répertoire de façon récursif.
Attention toutes fois, si le droit utilisateur (instance apache) n'a pas les droits d'ecriture, la creation de répertoire ne pourra pas s'effectuer..
notamment sous linux, par example pour le répertoire /home ..etc...
PS: je sais que ce post date, mais je penses au nombreux utilisateurs qui tombe sur ce post ( via Google par ex) -
Bonjour,
Même 10 ans après, ça marche encore et c'est encore utile.
Pour exemple :<?php
$dossier='mondossier5';
$fichier='essais5.php';
$nb= 45;
if(mkdir ('modules/'.$dossier))
{
$txt = '<?php echo $edit = '.$nb.'; EditArticle($edit);?>';
file_put_contents('modules/'.$dossier.'/'.$fichier,$txt);
echo'ça marche'.$nb.'!!!!';
}
else
{
echo"marche pas";
}
?>
Avec les résultats :
Dossier créé
ça marche45!!!!
Fichier créé
Contenu du fichier créé !
Merci -
Septembre 2014, toujours d'une grande utilité.. Merci !
-
Merci
ça été utile pour moi Merci. -
Juin 2012 -> Réponse encore utile :)
-
Moi aussi je dit merci !
-
Mars 2012 toujours aussi utile !XD
-
20 décembre 2012 : ce post m'a été TRES utile ! Merci beaucoup !
-
Avril 2011 : Post UTILE^^
-
Essaye plutôt cela :
if(@mkdir ("/home/sam/mondossier")) {
echo"cela fonctionne";
} else {
echo"cela ne fonctionne pas";
}
referencement google -
janvier 2010..., et ce post m'a été utile !
Supposer qu'une réponse 5 ans après n'est pas utile suppose un bien grand savoir et une bien petite envie de partager.
Mais pour ceux la, je propose la création d'un filtre tout bête : ne voir que les réponses de moins de 3 heures.
Ca fait un peu "Pôle-emploi" mais chacun son truc... Y a plus qu'à étendre le principe et supprimer l'histoire et la géographie en terminale... -
cliquez sur le plus du/des message(s) qui vous ont été util(s). ;)
-
yesss moi zaussi
-
Utile !
-
Moi aussi ca m'a été utile ;)
et tac :p -
Essayez de rester poli...
-
Lu
Merci tu vois ça met utile gros boloss ! -
ouais
-
Modérateur
e lundi 12 janvier 2004 à 11:35:16
tu crois que cela sert de répondre encore depuis le temps ??? -
j'ai oublié de préciser que l'on ne peut créer qu'un seul répertoire à la fois d'abord le "home" puis le "sam" puis le "monDossier"
donc ça donne :
mkdir("home");
mkdir("home/sam");
mkdir("home/sam/monDossier");
- 1
- 2