Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2814 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  la fonction CHMOD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

la fonction CHMOD

n°1687376
pantoled
Posté le 16-02-2008 à 21:44:06  profilanswer
 

Salut à tous, :hello:  
j'ai entendu parlé d'une certaine fonction chmod qui permettrait de changer les autorisation des fichiers.
et j'aimerais savoir où je pourrais trouver des tutos qui m'expliquerais clairemenent comment s'en servir, ect.
merci de me répondre rapidement   :)

mood
Publicité
Posté le 16-02-2008 à 21:44:06  profilanswer
 

n°1687377
naeh
Posté le 16-02-2008 à 21:48:47  profilanswer
 
n°1687378
pantoled
Posté le 16-02-2008 à 21:54:56  profilanswer
 

merci mais j'avais déjà vu ça et c'est pas super clair..
parceque ça me dit pas quel code je dois utiliser (yen a plusieurs versions OO, je pige vraiment rien)
D'ailleur, pouvez vous me dire si ce code est bon (ce dont je doute) et quelles sont les choses à changer?

Code :
  1. <?php
  2.     // Ouverture du fichier en lecture [option "r"]
  3.     // et récupération d'un pointeur (ou descripteur de fichier)
  4.     // Ici, j'ai utilisé une petite astuce afin d'afficher
  5.     // le contenu du fichier constituant ce script
  6.     // j'ai donc utilisé __FILE__ au lieu de spécifier
  7.     // un fichier par "/chemin/monfichier"
  8.     // Le @ n'est absolument pas obligatoire mais il
  9.     // evite l'affichage d'un message d'erreur (non controlé)
  10.     // dans le cas où le fichier n'existe pas.
  11. bool chmod ( string $filename , int $mode )
  12.     $fd = @fopen("monsite","r+" );
  13.  
  14.    
  15.    
  16.     // si fopen retourne faux c'est que le fichier
  17.     // ne peut être ouvert en lecture
  18.     if (!$fd) die("Impossible d'ouvrir le fichier" );
  19.    
  20.     $i=1; // compteur de ligne
  21.    
  22.     // Lorsque nous atteindrons la fin du fichier
  23.     // foef($fd) retournera faux
  24.     // et la boucle while s'arrêtera
  25.     while (!feof($fd)) {
  26.    
  27.         // Il est temps de lire une ligne du fichier
  28.         // et en tout cas au maximum 1024 caractères
  29.         $ligne = fgets($fd, 1024);
  30.         fseek($fd, 0); // On remet le curseur au début du fichier
  31. fputs($fd, "texte" ); // On écrit le nouveau nombre de pages vues
  32.         // Si la fin du fichier n'est pas atteinte
  33.         // On peut maintenant afficher la ligne
  34.         if (!feof($fd)) echo "Ligne $i : $ligne<br>";
  35.         $i++;
  36.     }
  37.    
  38.     // On a fini, on ferme !!
  39.     fclose($fd);
  40. ?>


n°1687387
dwogsi
Défaillance cérébrale...
Posté le 16-02-2008 à 22:46:17  profilanswer
 

Code :
  1. bool chmod ( string $filename , int $mode )


T'essais de déclarer la fonction CHMOD là?
1. Ça marchera pas parce que cette fonction existe déjà
2. On ne déclare pas une fonction ainsi en PHP


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1687435
pantoled
Posté le 17-02-2008 à 11:57:41  profilanswer
 

youhou, ça je m'en doutais :p
bon alors comment je fais pour apliquer un chmod 777 sur le fichier que je veux ouvrir, lire et fermer ensuite avec mon code? (voir les fopen(), fgets() et tout ça dans le code)

n°1687441
weed
Posté le 17-02-2008 à 12:37:20  profilanswer
 

prends exemple sur les premiers exemple de :
Example#1  et EXample#2 sur le lien que t'a donné naeh
 
 

chmod ("/somedir/somefile", 755);
chmod ("/un_dossier/un_fichier", 0600);


 
 
dans ton cas :  

chmod ( "monsite" , 777 ); //si "monsite" est le nom de ton fichier

n°1687448
pantoled
Posté le 17-02-2008 à 13:25:43  profilanswer
 

ok merci =)
mais est il possible de mettre une url pour spécifier le nom du fichier plutot que de mettre le chemin qui y mène sur mon ordi?  
ps: et je le place où? avant ou après le fopen()?
 
édit:
mon code est devenu ça:

Code :
  1. <?php
  2.     // Ouverture du fichier en lecture [option "r"]
  3.     // et récupération d'un pointeur (ou descripteur de fichier)
  4.     // Ici, j'ai utilisé une petite astuce afin d'afficher
  5.     // le contenu du fichier constituant ce script
  6.     // j'ai donc utilisé __FILE__ au lieu de spécifier
  7.     // un fichier par "/chemin/monfichier"
  8.     // Le @ n'est absolument pas obligatoire mais il
  9.     // evite l'affichage d'un message d'erreur (non controlé)
  10.     // dans le cas où le fichier n'existe pas.
  11.     $fd = @fopen("http://test.pantoled.fr/enigme.php","r+" );
  12. chmod ( "http://test.pantoled.fr/enigme.php" , 777 ); //si "monsite" est le nom de ton fichier
  13.    
  14.    
  15.     // si fopen retourne faux c'est que le fichier
  16.     // ne peut être ouvert en lecture
  17.     if (!$fd) die("Impossible d'ouvrir le fichier" );
  18.    
  19.     $i=1; // compteur de ligne
  20.    
  21.     // Lorsque nous atteindrons la fin du fichier
  22.     // foef($fd) retournera faux
  23.     // et la boucle while s'arrêtera
  24.     while (!feof($fd)) {
  25.    
  26.         // Il est temps de lire une ligne du fichier
  27.         // et en tout cas au maximum 1024 caractères
  28.         $ligne = fgets($fd, 1024);
  29.         fseek($fd, 0); // On remet le curseur au début du fichier
  30. fputs($fd, "texte" ); // On écrit le nouveau nombre de pages vues
  31.         // Si la fin du fichier n'est pas atteinte
  32.         // On peut maintenant afficher la ligne
  33.         if (!feof($fd)) echo "Ligne $i : $ligne<br>";
  34.         $i++;
  35.     }
  36.    
  37.     // On a fini, on ferme !!
  38.     fclose($fd);
  39. ?>


 
et quand j'ouvre la page sur mon site, ça me met:
Warning: chmod(): No such file or directory in /Volumes/data/toledo_t/hack/hack.php on line 13
Impossible d'ouvrir le fichier

Message cité 1 fois
Message édité par pantoled le 17-02-2008 à 13:34:44
n°1687462
weed
Posté le 17-02-2008 à 14:30:56  profilanswer
 

pantoled a écrit :

ok merci =)
mais est il possible de mettre une url pour spécifier le nom du fichier plutot que de mettre le chemin qui y mène sur mon ordi?  


STP, pose toi la question si tu peux changer les permissions de n'importe quel site internet par http en passant en parametre l'url du fichier  ?
 
Par exemple pense tu que chmod("http://www.fnac.com/default.asp", "0777" ); va rendre le fichier default en lecture/ecriture/execution pour tous le monde  (on s'en fou si c'est un fichier asp  sur le site de la fnac, ce n'est pas le problème) ?  
 
Oui ou non d'après toi ?  
 
Dans l'attente de ta réponse. ...........

n°1688626
tony1232
Posté le 19-02-2008 à 16:12:09  profilanswer
 

Bonjour !!!  
 
J'ai un souci quasiment équivalent à savoir que je souhaite modifier les attributs de fichiers, mais la différence est que je souhaite changer les attributs  de TOUS LES FICHIERS D'UN REPERTOIRE.  
Comment puis-je faire ???
 
Merci d'avance

Message cité 1 fois
Message édité par tony1232 le 19-02-2008 à 16:12:21
n°1688727
weed
Posté le 19-02-2008 à 17:09:29  profilanswer
 

pantoled => j'attends toujours la reponse à ma question  
 
tony1232 => il faut que tu recupére la liste de tous tes fichiers et que tu boucle dessus pour applicquer sur chaque fichier ton chmod  
 
petite aide : http://fr2.php.net/manual/fr/ref.dir.php

mood
Publicité
Posté le 19-02-2008 à 17:09:29  profilanswer
 

n°1689074
FlorentG
Posté le 20-02-2008 à 09:34:14  profilanswer
 

weed a écrit :

dans ton cas :  

chmod ( "monsite" , 777 ); //si "monsite" est le nom de ton fichier



Attention, y'a une erreur dans le code. Le mode doit être un nombre octal, là t'as filé un décimal :

Code :
  1. chmod('pouet', 0777);

n°1689407
weed
Posté le 20-02-2008 à 15:41:37  profilanswer
 

et pourtant on peux voire mon exemple dans la page chmod sur php.net
http://fr2.php.net/manual/fr/function.chmod.php
 

Citation :

Il est à noter que le mode mode  est considéré comme un nombre en notation octale. Afin de vous en assurer, vous pouvez préfixer cette valeur par un zéro (mode ):


(sous entendu que ce n'est pas obligatoire)
 

Example#1 Comment utiliser chmod()
chmod ("/somedir/somefile", 755);


 
mais je suis quand meme d'accord avec toi sur la forme. Mieux vaut mettre 1 zéro pour etre dans les règles de l'art

n°1690375
naeh
Posté le 21-02-2008 à 21:43:37  profilanswer
 

tony1232 a écrit :

Bonjour !!!

 

J'ai un souci quasiment équivalent à savoir que je souhaite modifier les attributs de fichiers, mais la différence est que je souhaite changer les attributs  de TOUS LES FICHIERS D'UN REPERTOIRE.
Comment puis-je faire ???

 

Merci d'avance

 


tu peu essayer avec ça :

Code :
  1. shell_exec("chmod -R 777 TON_REP" )
 

ceci marchera si www-data a la main sur le répertoire en question :)


Message édité par naeh le 21-02-2008 à 21:43:54
n°1690396
weed
Posté le 21-02-2008 à 23:24:24  profilanswer
 

et si le shell_exec est actif. C'est peut etre le cas si on a son propre serveur et si on est en dédié mais en mutualisé, MALHEURESEMENT on ne peux pas executé de command shell.

n°1691214
naeh
Posté le 23-02-2008 à 13:21:10  profilanswer
 

ah je n'y avais pas pensé :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  la fonction CHMOD

 

Sujets relatifs
quelle page appele ma fonction[VBS] Pb avec la fonction DateCreated
[PHP] Fonction date()fonction de fonction ???
Passer une classe à une fonction dans une méthode.Script - Renommer ue photo en fonction de de la date
lancer une fonction php en cliquant sur un boutonlancer une fonction php à partir d'un bouton ("button")
Fonction non accessible par IE et Safari (Objet attendu)Écrire une fonction indicatrice
Plus de sujets relatifs à : la fonction CHMOD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR