Function mkdir (php)



  • Bonjour,

    Dossier : DC31013713
    Serveur : NS2

    Problème : Il semblerait qu'il y ait un bug (sauf erreur de ma part) sur cette fonction mkdir($rep,$chmod) , à savoir que les chmod donnés lors de la création du dossier sont souvent incorrect .

    Voici le code que j'ai test :

    <? 
    mkdir( 'test/test1' , 0777 );
    mkdir( 'test/test2' , 0766 );
    mkdir( 'test/test3' , 0755 );
    mkdir( 'test/test4' , 0711 );
    mkdir( 'test/test5' , 0700 );
    mkdir( 'test/test6' , 0744 );
    ?> 
    

    Sur les resultat obtenu pour les chmod de chaque dossiers :
    test1 -> 744
    test2 -> 744
    test3 -> 744
    test4 -> 700
    test5 -> 700 (ok)
    test6 -> 744 (ok)

    J'ai tester la même chose sur chaque dossiers en regardant avec la fonction CHMOD directement, et là ça marche.. j'ai les bon chmod..

    Donc problème interne au serveur? Problème au niveau du php? Oubien?

    Merci de votre réponse !
    Althalus & Equinox



  • Je pense qu'il y a un rapport avec ceci:

    [4 Oct 2002 2:35pm UTC] http://www.php.net/manual/ and the instructions on how to report
    a bug at http://bugs.php.net/how-to-report.php

    The mkdir call is affected by umask. Since on most systems (unix)
    default umask is 022 when it is applied to mode 0777 you get 755
    directory permission.
    To avoid this problem, do a call umask(0), before creating a directory.



  • exacte, merci.

    Sauf que ici le umod est à 027 et non 022, fin bon, quoiqu'il en soit, ça répond à ma question, merci arcanis.

    echo  umask() .'<br />';  // affiche 27
    mkdir('test1',0777);        // cree le dossier test1 avec 744 en chmod
    echo umask(0) .'<br />';  // affiche 27 
    mkdir('test2',0777);       // cree test2 avec 777 en chmod
    echo umask() .'<br />';    // affiche 0
    
    


  • Possible, ça.
    En tout cas ça pourra être utile à d'autre … marrant que personne n'ait rapporté ça avant.

    Pour les valeurs de retour, c'est normal qu'il renvoie 27 à umask(0), vu qu'il renvoie l'ancienne valeur.



  • oui je sais, j'ai juste écrit ça pour ceux qui lirait le sujet et qui testerait. ;)



  • Bas te prend pas la tête tu fait un mkdir suivit un chmod ;)



  • C'est ce que j'fesait en fait, mais j'ai poster histoire de savoir si c'était normal ou non à la base ;)


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.