J’utilise en PHP un script qui insert des fichiers en ligne via la méthode copy(), et qui, si le repertoire n’existe pas, le crée à la volée. Toutefois, j’obtiens systématiquement l’erreur dûe au SAFE MODE, et je ne vois pas comment contourner ce problème.
J’ai lu qu’on pouvait éviter ça en se connectant en « root » et en utilisant la méthode chown() mais cette manipulation demandant mon intervention je ne peux pas y trouver une solution. Comment puis-je faire passer la méthode copy() malgré le SAFE MODE ?
J’ai remarqué que les repertoires crées via PHP avait ces règles de droits d’accès : 340
Si je fais un chmod(777), le repertoire passe en 410
Erreur obtenue :
| QUOTE |
| Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 596 is not allowed to access /usr/local/sites/site621/web/files/membres/608 owned by uid 48 in /usr/local/sites/site621/web/chimaera/gestion_membres.php on line 105
Warning: copy(../files/membres/608/drapeau_fr.gif): failed to open stream: Permission non accordée in /usr/local/sites/site621/web/chimaera/gestion_membres.php on line 105 |
Script :
| CODE |
$folder = "../files/membres/".$data_check["id"]; if (!is_dir($folder)) { mkdir($folder, 755); } $folder .= "/"; $filename = $_FILES["file"]["name"]; $upload = copy($_FILES["file"]["tmp_name"], $folder.$filename); |