Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASSE CHMOD


Information sur la source

Catégorie :Fichier / Disque Classé sous : chmod, chmoder, securité fichier, droits, droits repertoire Niveau : Initié Date de création : 04/07/2008 Date de mise à jour : 05/07/2008 11:51:38 Vu : 1 565

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


Description

cette classe peut vous etre d'une tres grande utilité lors de l'upload de vos fichiers, ou des envetuelle mise à jour de votre site; dans la mesure où elle vous permettra d'attribuer automatiquement des droits utilisateurs à vos fichiers et repertoires.
tres simple d'utilisation
 

Source

  • <?php
  • ///////////////////////////////////////////////////////////////////////////
  • ///////////////////////////////////////////////////////////////////////////
  • /// ///
  • /// systeme de gestion des droits utilisateurs de fichiers ///
  • /// ou des repertoires sur le serveur ///
  • /// Les remarques sont les bienvenues ///
  • /// ///
  • /// Developpé par Alfred Timagni T. SITEWEB http://www.bbsecurit.com ///
  • /// copyright 2007-2008 Tchalftechnology, Inc ///
  • /// ///
  • ///////////////////////////////////////////////////////////////////////////
  • ///////////////////////////////////////////////////////////////////////////
  • class Chmod
  • {
  • /*notre repertoire[de la forme (/NOM_DE_REPERTOIRE/) ou (/NOM_DE_REPERTOIRE/NOM_DE_FICHIER.EXT)]à chmoder.
  • */
  • private $dir;
  • //initialisation des droits
  • private $modes = array('owner' => 0 , 'group' => 0 , 'public' => 0);
  • //fonction definissant les droits du proprietaire du fichier ou du repertoire
  • public function setOwnermodes($read,$write,$execute) {
  • $this->modes['owner'] = $this->setMode($read,$write,$execute);
  • }
  • //definition de droits du groupe utilisateur
  • public function setGroupmodes($read,$write,$execute) {
  • $this->modes['group'] = $this->setMode($read,$write,$execute);
  • }
  • // definition des droits des visiteurs(publique)
  • public function setPublicmodes($read,$write,$execute) {
  • $this->modes['public'] = $this->setMode($read,$write,$execute);
  • }
  • public function getMode() {
  • return 0 . $this->modes['owner'] . $this->modes['group'] . $this->modes['public'];
  • }
  • private function setMode($r,$w,$e) {
  • $mode = 0;
  • if($r) $mode+=4;
  • if($w) $mode+=2;
  • if($e) $mode+=1;
  • return $mode;
  • }
  • public function setChmod($target)
  • {
  • if(!is_file($target) && !is_dir($target)){
  • return false;
  • }else{
  • return chmod($target , $this->getMode());}
  • }
  • }
  • ?>
<?php
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
///                                                                     ///
///      systeme de gestion des droits utilisateurs de fichiers         ///
///              ou des repertoires sur le serveur                      ///
///               Les remarques sont les bienvenues                     ///
///                                                                     ///
/// Developpé par Alfred Timagni T.   SITEWEB http://www.bbsecurit.com  ///
///       copyright 2007-2008 Tchalftechnology, Inc                     ///
///                                                                     ///
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
class Chmod
{
  /*notre repertoire[de la forme (/NOM_DE_REPERTOIRE/) ou (/NOM_DE_REPERTOIRE/NOM_DE_FICHIER.EXT)]à chmoder.
*/  
    private $dir;
//initialisation des droits
    private $modes = array('owner' => 0 , 'group' => 0 , 'public' => 0);
    //fonction definissant les droits du proprietaire du fichier ou du repertoire
    public function setOwnermodes($read,$write,$execute) {
        $this->modes['owner'] = $this->setMode($read,$write,$execute);
    }
    //definition de droits du groupe utilisateur
    public function setGroupmodes($read,$write,$execute) {
        $this->modes['group'] = $this->setMode($read,$write,$execute);
    }
// definition des droits des visiteurs(publique)
    public function setPublicmodes($read,$write,$execute) {
        $this->modes['public'] = $this->setMode($read,$write,$execute);
    }
    
    public function getMode() {
        return 0 . $this->modes['owner'] . $this->modes['group'] . $this->modes['public'];
    }
    
    private function setMode($r,$w,$e) {
        $mode = 0;
        if($r) $mode+=4;
        if($w) $mode+=2;
        if($e) $mode+=1;
        return $mode;
    }

    public function setChmod($target) 
{
    if(!is_file($target) && !is_dir($target)){
        return false;
}else{

    return chmod($target , $this->getMode());}
}  
    
}

?>

Conclusion

EXEMPLE D'UTILISATION DE CETTE CLASSE
/*
$chmod = new Chmod;
$chmod->setOwnermodes(true,true,true);
$chmod->setGroupmodes(true,true,true);
$chmod->setPublicmodes(true,true,true);
setchmod($dir);
*/
// fixe les droits de $dir à 0777

 

Historique

05 juillet 2008 09:27:24 :
ajout de la fonction setchmod()
05 juillet 2008 11:51:38 :
modification de la fonction setchmod() pour une verification de la nature de la cible

Commentaires et avis

signaler à un administrateur
Commentaire de tex73 le 04/07/2008 23:10:27

vos commentaires et critiques sont les les bienvenus

signaler à un administrateur
Commentaire de kankrelune le 05/07/2008 11:31:39

Salut

C'est pas mal par contre dans ta méthode setchmod() tu ne vérfie pas que le fichier/dossier cible existe... la méthode chmod() n'existe pas dans ta classe... pour moi le second paramètre de cette méthode n'a pas lieu d'être...

public function setChmod($target)
{
    if(!is_file($target) && !is_dir($target))
        return false;

    return chmod($target , $this->getMode());
}  

Je trouve que faire de l'objet pour gérer les chmod c'est un peu beaucoup, coder en procédural à aussi ses avantages notamment en terme de perf, tu charge ton appli pour pas grand chose... ou alors il faudrait faire une classe de gestion de fichier/répertoire qui entre autre peut gérer le chmod... .. .

A part ça rien à redire... .. .

@ tchaOo°

signaler à un administrateur
Commentaire de tex73 le 05/07/2008 11:44:43

merci pour ton post kankrelune.
mais il faut dire que cette classe à vu le jour parce que la question revient tres souvent sur le forum. alors avec ceci les internautes pourront avoir des solutions toutes faites.

signaler à un administrateur
Commentaire de coucou747 le 05/07/2008 13:22:23

salut

a mon avis, tu devrais integrer ca a une classe Fichier ou autre.

sinon, ton chmod est incomplet, et ne gere pas les erreurs.

signaler à un administrateur
Commentaire de tex73 le 05/07/2008 13:53:07

J'en prend note et vos attentes et surgestions ferront l'objet de la prochaine mise à jour

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Gros Problèmes de droits sur Image Uploadée [ par efrancilien ] Bonjour,Je viens de changer d'h&#233;bergeur et mon scripts upload qui jusqu'&#224; present a toujours bien fonctionn&#233; me cause des soucis.Enfin changer de droits avec chmod pour chaque session [ par darkvadoriste ] Bijour;voici ce que j'aimerais pouvoir faire:sur mon site il y a des sessions avec des droits differents les personnes pouvant se connecter (qui ont u Droits fichiers / chmod [ par djagger ] Salut !J'ai un petit soucis !J'ai une page web qui permet d'uploader des fichiers chez mon h&#233;bergeur ....Le probl&#232;me c'est que je n'ai pas l chmod 777 ? [ par firrss ] bonjour,je ne comprend pa ce que sa veut dire.des fois on me demande de faire un chmod 777.merci de m'aider chmoder hors ftp [ par fannymar ] Bonjour,Voici le probl&#232;me que j'ai &#224; r&#233;soudre. Lorsque je veux sauvegarder mon site certains fichiers sont "interdits" &#224; cause d'u CHMOD 777 toujours et encore [ par laurentphoto30 ] bonjour voici mon probleme concerne CHMOD 777 et oui une fois de plus j ai trouve pas mal d info sur le sujet mais rien qui se reporte au miens j ai f chmod 777 [ par spaa05 ] bonjourcomment je peux metre&nbsp;un fichier sous&nbsp;chmod 0777 CHMOD [ par yoarf ] Sous FTP Expert; est-il possible de faire un CHMOD particulier pour que cela s'applique à tous les répertoires, sous-réperoites, etc ... ???MerciY.C Problème avec droits d'admins... [ par R3dDragon ] Bonjour,C'est encore moi!lolVoilà, j'essaie de crée un système de permissions sur mon site, le problème c'est que je ne sait pas comment mis prendre!J Probleme de création d'images [ par _stic_ ] Bonjour à tous,J'ai créé un fichier php dans lequel je crée des images. Ca fonctionne très bien en local sous easyphp sous windows mais lorsque je le


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.