creation dynamique d'un repertoire

Nouveau WRInaute
Bonjour,
je cherche a creer un repertoire ou plutot un sous repertoire selon un nom saisie , en fait l'utilisateur saisie un nom via un formulaire et un sous-dossier se creer dans les dossier galeries

Mon probleme c'est que entre ftp_mkdir() et mkdir() je n'arrive pas a trouver le plus efficasse , de plus le sous-repertoire ne veux absolument pas se creer :/

voici mon code si quelqu'un peut m'aider ca serais cool:

Code:
<?php include('../config.php'); ?>
<?php include('../fonction.php'); ?>

<?php if ( isset ( $_POST['submit'] ) ) {

$login = quote_smart($_POST['login']);
$dir = quote_smart("galeries/".$_POST['dir']."");
$titre = quote_smart($_POST['titre']);

		$names = "id, login, titre, dir";
		$values = "id, '$login', '$titre', '$dir'";
		$req ="INSERT INTO $table1 (".$names.") VALUES (".$values.")";
		mysql_query($req)  or die(mysql_error());
		// Mise en place d'une connexion basique
		$conn_id = ftp_connect($ftp_server);		
		// Identication avec un nom d'utilisateur et un mot de passe
		$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);		
		// Tentative de création du dossier $dir
		if (ftp_mkdir($conn_id, $dir)) {
		 echo "Le dossier $dir a été créé avec succès\n";
		} else {
		 echo "Il y a eu un problème lors de la création du dossier $dir\n";
		}
		
		// Fermeture de la connexion
		ftp_close($conn_id);		
				
}else{ ?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
Titre de la galerie <input type="text" name="titre"  /><br />
Login d'acces a la galerie <input type="text" name="login" /><br />
Nom du dossier de la galerie qui sera cree <input type="text" name="dir" /><br />
<input type="submit" name="submit" value="creer la galerie" />
</form>
<?php } ?>
 
WRInaute accro
>> de plus le sous-repertoire ne veux absolument pas se creer

message d'erreur retourné par le serveur ? (permission denied ?)

sinon, il vaut mieux faire la création par ftp uniquement si l'autre fonction ne marche pas je suppose
 
Nouveau WRInaute
j'ai penssé ausii que ftp_mkdir() est logiquement adapté aux ftp ...

quand a l'arreur y en a pas , au contraire il renvoie que le dossier a bien été crée ...
 
Nouveau WRInaute
merci beaucoup en fait c'etait une combinaison des 2 , le chemin vers le repertoire ainssi que le chmod qui etait mal defini ...

Quand au chmod du repertoire final (le repertoire qui se creer) la fonction ftp_mkdir() n'accepte pas de valeur dans ses parametres ...

Je suis donc passer par la fonction chmod(); pour le definir mais ca passe pas non plus il le creer en 0755 ... et je vais avoir besoins du 0777 pour ecrire dans le dossier .

D'autre part je cherche a verifier si le dossier que je veux creer n'existe pas deja ... mais is_dir() verifie seulement si le dossier est bien un dossier et non un fichier

Une idée ? voici ou en est mon code

Code:
<?php include('../config.php'); ?>
<?php include('../fonction.php'); ?>

<?php if ( isset ( $_POST['submit'] ) ) {

$login = quote_smart($_POST['login']);
$dir = "cai/galeries/".$_POST['dir']."/";
$titre = quote_smart($_POST['titre']);

		$names = "id, login, titre, dir";
		$values = "id, '$login', '$titre', '$dir'";
		$req ="INSERT INTO $table1 (".$names.") VALUES (".$values.")";
		mysql_query($req)  or die(mysql_error());
		// Mise en place d'une connexion basique
		
		$conn_id = ftp_connect($ftp_server);		
		// Identication avec un nom d'utilisateur et un mot de passe
		$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);		
		// Tentative de création du dossier $dir
		if (ftp_mkdir($conn_id, $dir)) {
		chmod($dir, 0777);
		echo "Le dossier $dir a été créé avec succès avec les droits necessaires\n";
		} else {
				if (is_dir($dir)){
				echo"Ce nom de dossier existe deja, vous devez en choisir un autre<br>";
				}
		 echo "Il y a eu un problème lors de la création du dossier $dir\n";
		}
		
		// Fermeture de la connexion
		ftp_close($conn_id);		
				
}else{ ?>
<?php echo $_SERVER['DOCUMENT_ROOT'];?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
Titre de la galerie <input type="text" name="titre"  /><br />
Login d'acces a la galerie <input type="text" name="login" /><br />
Nom du dossier de la galerie qui sera cree <input type="text" name="dir" /><br />
<input type="submit" name="submit" value="creer la galerie" />
</form>
<?php } ?>
 
WRInaute accro
le probleme, c est que en safe mode, les droits d'accès ftp et les droits d'accès http ne sont pas les mêmes. au final, tu uitlises quelle fonction pour créer ton répertoire ?

>> is_dir() verifie seulement si le dossier est bien un dossier et non un fichier

j'ai pas compris, tu veux vérifier que le dossier existe et un is_dir ne te renvoi pas false dans le cas contraire ?
 
WRInaute impliqué
is_dir est suffisant, si le dossier n'existe ou ou si un fichier de même nom n'est pas un dir il retourne false.

Sinon, la meilleure méthode et de faire comme suit :
Code:
if(!is_dir($repUp)){
mkdir($repUp, 777) or die('Echec de la creation du repertoire');
}
/*
Système de upload...
*/
 
Nouveau WRInaute
Sir Dipp a dit:
is_dir est suffisant, si le dossier n'existe ou ou si un fichier de même nom n'est pas un dir il retourne false.

Sinon, la meilleure méthode et de faire comme suit :
Code:
if(!is_dir($repUp)){
mkdir($repUp, 777) or die('Echec de la creation du repertoire');
}
/*
Système de upload...
*/

tout d'abord le chmod corect pour la creation d'un dossier via mkdir doit etre exprimée en base octale donc mkdir($repUp, 0777)

e-kiwi a dit:
j'ai pas compris, tu veux vérifier que le dossier existe et un is_dir ne te renvoi pas false dans le cas contraire ?

oui c'est exactement ca ... puisque is_dir ne verifie pas si "$dir" existe mais verifie le type c'est a dire si "$dir" est un dossier et non fichier (d'&pres ce que j'ai compris)
 
Discussions similaires
Haut