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

  FORUM HardWare.fr
  Programmation
  PHP

  CHMOD avec le mode passé en POST ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

CHMOD avec le mode passé en POST ...

n°691110
Captain Re​d
A l'abordage, Grenouille !
Posté le 02-04-2004 à 17:34:20  profilanswer
 

J'essaie de me faire un petit util php pour faire des chmod ponctuels, et j'ai remarqué que :
 


$mode = $HTTP_POST_VARS["mode"];
chmod('fichier', $mode);


=> ne fonctionne pas
 


$mode = '0666';
chmod('fichier', $mode);


=> ne fonctionne pas
 


$mode = 0666;
chmod('fichier', $mode);


=> fonctionne
 
Autrement dit, la variable récupérée du formulaire est une chaîne et ça ne lui plaît pas. J'ai donc essayé ça, mais ça ne marche toujours pas :
 


$mode = $HTTP_POST_VARS["mode"];
chmod('fichier', (int)$mode);


 
Comment faire :??:


---------------
Créez des alertes automatiques sur les annonces du CDA qui vous intéressent: http://www.cdalertes.fr - Twitter: @CDAlertes | Revue de ma Glycine Airman Base 22
mood
Publicité
Posté le 02-04-2004 à 17:34:20  profilanswer
 

n°691121
ratibus
Posté le 02-04-2004 à 17:47:34  profilanswer
 

Je pense que ceci doit marcher :
 

Code :
  1. eval("chmod('fichier',".$mode." );" );

n°691122
the real m​oins moins
Posté le 02-04-2004 à 17:48:07  profilanswer
 

[:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°691127
ratibus
Posté le 02-04-2004 à 17:53:20  profilanswer
 

Ou alors pour avoir le $mode qui va bien tu fais ça :
 

Code :
  1. eval("\$mode=$mode;" );


 
En fait le truc c'est que le second paramètres de la fonction chmod doit être de type entier mais octal.
Or ce que tu reçoit dans le $_POST est une chaîne, qui convertie en entier décimal et non octal.
 
Je sais pas si je suis clair :D


Message édité par ratibus le 02-04-2004 à 17:53:32
n°691128
the real m​oins moins
Posté le 02-04-2004 à 17:54:09  profilanswer
 

d'apres la doc, chmod prend un entier. quoi qu'il en soit, c'est pas avec un eval pourri qu'on fait des conversions, y'a des fonctions expres pour ça.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°691137
ratibus
Posté le 02-04-2004 à 18:01:41  profilanswer
 

the real moins moins a écrit :

d'apres la doc, chmod prend un entier. quoi qu'il en soit, c'est pas avec un eval pourri qu'on fait des conversions, y'a des fonctions expres pour ça.
 


Si tu lis la doc :

Il est à noter que le mode mode est considéré comme un nombre en notation octale.


 
Tu dis que mes eval sont "pourri", j'attends ta proposition :D

n°691140
ratibus
Posté le 02-04-2004 à 18:03:08  profilanswer
 

Le problème vient du fait que PHP quand il transtype une chaine en entier il le fait en base 10 et pas en base 8 [:spamafote]

n°691141
Captain Re​d
A l'abordage, Grenouille !
Posté le 02-04-2004 à 18:03:16  profilanswer
 

ratibus a écrit :

Ou alors pour avoir le $mode qui va bien tu fais ça :
 

Code :
  1. eval("\$mode=$mode;" );




Cool ça marche :sol:  
 

ratibus a aussi écrit un peu après :


En fait le truc c'est que le second paramètres de la fonction chmod doit être de type entier mais octal.
Or ce que tu reçoit dans le $_POST est une chaîne, qui convertie en entier décimal et non octal.
 
Je sais pas si je suis clair :D


Si si.


---------------
Créez des alertes automatiques sur les annonces du CDA qui vous intéressent: http://www.cdalertes.fr - Twitter: @CDAlertes | Revue de ma Glycine Airman Base 22
n°691146
ratibus
Posté le 02-04-2004 à 18:08:28  profilanswer
 

Sinon ces 2 solutions marchent aussi (sans utiliser de eval pour faire plaisir à the real):
 

Code :
  1. $mode = octdec($mode);


 
ou
 

Code :
  1. $mode = intval($mode,8);


Ma méthode avec le eval ne fonctionnant pas si il n'y a pas de 0 au début de la chaine donc je te conseille la fonction octdec() :D


Message édité par ratibus le 02-04-2004 à 18:11:15
n°691149
Captain Re​d
A l'abordage, Grenouille !
Posté le 02-04-2004 à 18:13:11  profilanswer
 

:jap:


---------------
Créez des alertes automatiques sur les annonces du CDA qui vous intéressent: http://www.cdalertes.fr - Twitter: @CDAlertes | Revue de ma Glycine Airman Base 22
mood
Publicité
Posté le 02-04-2004 à 18:13:11  profilanswer
 

n°691154
Captain Re​d
A l'abordage, Grenouille !
Posté le 02-04-2004 à 18:17:54  profilanswer
 

En fait c'était dans le manuel php de chmod, fallait bien lire jusqu'en bas :D


---------------
Créez des alertes automatiques sur les annonces du CDA qui vous intéressent: http://www.cdalertes.fr - Twitter: @CDAlertes | Revue de ma Glycine Airman Base 22
n°691169
the real m​oins moins
Posté le 02-04-2004 à 18:25:16  profilanswer
 

ratibus a écrit :

Sinon ces 2 solutions marchent aussi (sans utiliser de eval pour faire plaisir à the real):
 

Code :
  1. $mode = octdec($mode);


 
ou
 

Code :
  1. $mode = intval($mode,8);


Ma méthode avec le eval ne fonctionnant pas si il n'y a pas de 0 au début de la chaine donc je te conseille la fonction octdec() :D

ben voilà, c'est vachement plus propre ça :o
(j'étais en train de chercher :whistle:)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?

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

  CHMOD avec le mode passé en POST ...

 

Sujets relatifs
POST DE NB, php/mysql trouvez vous l'erreur dans le compteur? (resolu)Variable de menu déroulant -> passé URL
Post de NB : importer/exporter des donnés avec MYSQL/JAVA[ JS ] Ca passe sous IE ça ?
sécurité simple asp pour mot de passeFermeture de post
cassage de mot de passe - dictionnaireAvec kels navigateurs passe mon site ?
[c++] prob pour créer des fichiers automatiquement (voir dernier post)Temps passé sur une page
Plus de sujets relatifs à : CHMOD avec le mode passé en POST ...


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