Bonjour,
Comment faire pour utiliser le deuxieme parametre de la fonction CHMOD(), avec une chaine (envoyee par formulaire) ?
Exemple :
chmod("fichier", 0777);
chmod("fichier", $_POST['new_chmod']);
Merci !
intval(755, 8) = 755
intval(0755, 8) = 509
intval("755", 8) = 509
intval("0755", 8) = 509
<?php
function setchmod($file, $int_chmod){
return chmod($file, octdec($int_chmod));
}
function getchmod($file){
return (int)substr(sprintf('%o', fileperms($file)), -4);
}
setchmod("index.php", 775);
echo getchmod("index.php"); // Renvoi 775
$chaine = $_POST['new_chmod']; // "777"
$nombre = (int)$chaine; // 777
setchmod("fichier", $nombre);
echo getchmod("fichier"); // Renvoi 777 (en int)
?>
Combien cela coûte-t-il au total ? Quelles aides apportent l'état et les acteurs du marché pour alléger cette charge non choisie ? Tous les détails sur Commentçamarche.net.
voir
http://php.net/manual/fr/function.chmod.php
Ben alors il n'y a pas de question, puisque la réponse se trouve dans le premier poste non ?
Ou j'ai loupé quelque chose ... ?
Edit : J'ai compris le problème ... ^^
Le deuxième paramètre est un int.
Tu dois donc caster ta variable en int comme ça :
chmod("fichier", (int)$_POST['new_chmod']);ou
chmod("fichier", intval($_POST['new_chmod']));J'ai pas essayé. Dis si ça ne va pas.
Par contre, la doc indique qu'une notation en décimale risque d'être correcte. Essaye de voir avec la fonction intval, et de changer la base en base 8.
A voir.