joboy84 Posté 18 Juin 2009 Posté 18 Juin 2009 hello Je souhaite pouvoir créer un dossier à partir de mon admin, chose que j'arrive à faire, mais pas au bon endroit! En effet, cela me crée un dossier à la racine du site, et je voudrais qu'il soit créé dans le dossier /images/screenjeux/ Mon code actuel: <?php$ftpc = ftp_connect($ftp_server) or die('Could not connect to FTP server'); //On se connecte au serveur ftp ftp_login($ftpc, $ftp_user, $ftp_pass) or die('Could not log into FTP');$nomdusite = 'webmasterHub'; //On vérifie si le dossier existe dejaif (scandir(''.$_SERVER["DOCUMENT_ROOT"].'/images/screenjeux/'.$nomdusite.'/') == FALSE) {// Le dossier n existe pas: Tentative de création du dossier if (ftp_mkdir($ftpc, $nomdusite)) { echo "Le dossier $nomdusite a été créé avec succès\n"; } else { echo "Il y a eu un problème lors de la création du dossier $nomdusite\n"; }}else{echo'Le dossier '.$nomdusite.' existe deja!';}?> Comment faire pour lui dire de le créer dans /images/screenjeux/ et non dans / ? J ai essayé en mettant if (ftp_mkdir($ftpc, "/images/screenjeux/$nomdusite")) mais cela ne fonctionne pas mieux... Merci
Portekoi Posté 18 Juin 2009 Posté 18 Juin 2009 Bonjour, Mon php est un peu rouillé mais essaie ceci : <? $nomdusite = $_SERVER["DOCUMENT_ROOT"].'/images/screenjeux/'.'webmasterHub/'; ?>
joboy84 Posté 18 Juin 2009 Auteur Posté 18 Juin 2009 Merci pour ton aide "Portekoi", mais apparemment cela ne règle pas le problème... Voila ce que cela renvoie: Warning: ftp_mkdir() [function.ftp-mkdir]: /home/www/503c69a9a240068c8059ec652aefc53b/web/images/screenjeux/webmasterHub/: No such file or directory in /home/www/503c69a9a240068c8059ec652aefc53b/web/test.php on line 73Il y a eu un problème lors de la création du dossier WebmasterHub
Portekoi Posté 18 Juin 2009 Posté 18 Juin 2009 <?php$ftpc = ftp_connect($ftp_server) or die('Could not connect to FTP server');//On se connecte au serveur ftpftp_login($ftpc, $ftp_user, $ftp_pass) or die('Could not log into FTP');$nomdusite = $_SERVER["DOCUMENT_ROOT"].'/images/screenjeux/webmasterhub/';//On vérifie si le dossier existe dejaif (scandir($nomdusite) == FALSE) {// Le dossier n existe pas: Tentative de création du dossierif (ftp_mkdir($ftpc, $nomdusite)) {echo "Le dossier $nomdusite a été créé avec succès\n";} else {echo "Il y a eu un problème lors de la création du dossier $nomdusite\n";}}else{echo'Le dossier '.$nomdusite.' existe deja!';}?>
joboy84 Posté 18 Juin 2009 Auteur Posté 18 Juin 2009 (modifié) J ai trouvé le problème... En fait il ne faut pas que cela commence par un slash (/) ! ftp_mkdir($ftpc, $_SERVER["DOCUMENT_ROOT"]."/images/screenjeux/webmasterhub") renvoie ftp_mkdir($ftpc, /home/www/503c69a9a240068c8059ec652aefc53b/web/images/screenjeux/webmasterhub/) comme si je met ftp_mkdir($ftpc, /images/screenjeux/monnvodossier/) Par contre en mettant ftp_mkdir($ftpc, images/screenjeux/monnvodossier) cela fonctionne! Bizarre, mais c'est ainsi lol Bonne continuation et merci pour votre aide Modifié 18 Juin 2009 par joboy84
jcaron Posté 18 Juin 2009 Posté 18 Juin 2009 Eeeuuuuhhhh... Le fait que tu utilises DOCUMENT_ROOT implique que tu travailles en local (i.e. la machine sur laquelle s'exécute le script est la machine sur laquelle tu veux créer le dossier)... Pourquoi ne pas faire un bête mkdir plutôt que de passer par ftp? Evidemment il peut y avoir un problème de droits, mais passer par FTP pour le résoudre me paraît bien tordu. Et si tu ne travailles pas en local, évidemment absolument de faire référence à un chemin local sur un serveur distant! Et pour info, oui: /xxx/yyy (un chemin qui commence par /) indique un chemin à partir de la racine (du système), on appelle ça un chemin absolu. xxx/yyy (ou ./xxx/yyy, c'est la même chose) indique un chemin à partir du répertoire courant (qui pour une session ftp est par défaut le répertoire de l'utilisateur correspondant, généralement un /home/nomdelutilisateur ou un truc du genre. Donc xxx/yyy == /home/nomdelutilisateur/xxx/yyy par exemple. On appelle ça un chemin relatif. Jacques.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant