Version complète: sur le forum Webmaster Hub : creation de repertoire
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
vero
bonjour,

j'ai besoin de créer un repertoire dans un script php et j'utilise :

CODE
<?
$oldumask = umask(0000);
mkdir("photos_galerie/$login_ok[0]/");
umask($oldumask);

?>


cela marche bien à la premiere utilisation en creant le repertoire par contre à la 2 eme utilisation j'ai un message d'erreur car le repertoire existe deja. comment je peux faire pour eviter le message d'erreur?

Cordialement
captain_torche
Si tu veux éviter d'avoir une erreur si le répertoire existe déjà, rajoute simplement cette ligne avant le mkdir
CODE
if(is_dir("photos_galerie/$login_ok[0]"))
vero
toujours pas resolu voila ou j'en suis ...

CODE
<?
if   (is_dir('photos_galerie/$login_ok[0]/')) break;
 
$oldumask = umask(0000);
mkdir("photos_galerie/$login_ok[0]/");
umask($oldumask);

?>
Théo B.
CODE
<?
$oldumask = umask(0000);
_AT_mkdir("photos_galerie/$login_ok[0]/");
_AT_umask($oldumask);

?>


Ca retire l'erreur mais pas le problème.
KaRaK
Bonjour,

Tu ne peux pas creer deux repertoires avec le meme nom.

Avant de creer un repertoire tu peux tester si il existe deja ou non.

Je pense qu'il est possible de faire cela avec plusieurs fonctions.

Tu peux essayer avec is_dir().
vero
dernier code essayé qui ne marche pas

CODE
<?
if(is_dir('photos_galerie/$login_ok[0]/'))
die("Le répertoire {$login_ok[0]} existe déjà !"); //die affiche le message en argument et stoppe le script

$oldumask = umask(0000);
mkdir("photos_galerie/$login_ok[0]/");
umask($oldumask);

?>
vero
non ca marche pas je pense que c'est dans la condition qu il y a un probleme car il voit bien le repertoire existant et la il faudrait qu'il ne passe pas à la ligne suivante du script

CODE
<?
if(is_dir("photos_galerie/$login_ok[0]/"))
$oldumask = umask(0000);
mkdir("photos_galerie/$login_ok[0]/");
umask($oldumask);

?>
Théo B.
<?
if (is_dir('photos_galerie/$login_ok[0]/')) die('Finito');
$oldumask = umask(0000);
mkdir("photos_galerie/$login_ok[0]/");
umask($oldumask);
?>
captain_torche
Non, c'est moi qui me suis trompé dans mon premier code.
Il faut vérifier si le répertoire n'existe pas, et dans ce cas, le créer, ce qui donnerait :
CODE
<?php
$oldumask = umask(0000);
if(!is_dir("photos_galerie/$login_ok[0]"))
mkdir("photos_galerie/$login_ok[0]/");
umask($oldumask);
?>


<modérateur: checker si un répertoire existe IMSTP6.gif ?>
vero
merci à tous voila la solution retenue

CODE
<?php

$dir = 'photos_galerie/'.$login_ok[0];
if(!is_dir($dir)){
  $oldumask = umask(0000);
  mkdir($dir);
  umask($oldumask);
}

?>
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.