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

  FORUM HardWare.fr
  Programmation
  PHP

  [resolu]creation de dossiers/fichiers a la volee - problemes de droits

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu]creation de dossiers/fichiers a la volee - problemes de droits

n°1427142
nintendose
Dentist to the Stars
Posté le 18-08-2006 à 12:57:52  profilanswer
 

Bonjour,
 
Je cree un script qui permet la creation a la volee de dossiers (tous crees dans un dossier parent nomme images/, qui est en chmod 777)
 
Je souhaite que mes dossiers crees dans images/ aient un max de droits, afin de pouvoir par la suite y stocker des images (via un formlaire d'upload.
 
Tout cela marche bien en local (EasyPHP) mais sur mon serveur, c'est autre chose
 
Voici ce que j'ai d'abord fait :
$path = 'blabla'
mkdir('images/'.$path, 0777);
 
Le dossier blabla se cree bien, mais en chmod 755. Si j'essaye apres d'y stocker des fichiers, impossible :/
 
j'ai donc tente la chose suivante :
 
$path = 'blabla'
mkdir('images/'.$path, 0777);
chmod('images/'.$path, 0777);
 
Le dossier blabla la aussi est bien cree, et lorsque je regarde ces droits via mon logiciel FTP filezilla, O miracle, il est bien en 777.
Je pensais donc avoir trouve une solution.
Or, quand j'essaye d'y stocker un fichier via mon formulaire d'upload, idem, il n'arrive pas a y uploader le fichier.
 
Je pourrais eventuellement stocker mes images directement dans images/, ce qui marche parfaitement, mais mon idee etait vraiment de faire des sous-dossier
 
Du coup je susi coince, et je dois avouer que je ne sais pas trop quoi faire pour remedier a cela.
 
 
Des idees ?


Message édité par nintendose le 20-08-2006 à 06:42:32

---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
mood
Publicité
Posté le 18-08-2006 à 12:57:52  profilanswer
 

n°1427360
flo850
moi je
Posté le 18-08-2006 à 16:36:52  profilanswer
 

change le proprietaire du dossier en "apache", avec chown

Message cité 1 fois
Message édité par flo850 le 18-08-2006 à 16:37:19
n°1427483
nintendose
Dentist to the Stars
Posté le 18-08-2006 à 20:00:54  profilanswer
 

flo850 a écrit :

change le proprietaire du dossier en "apache", avec chown


 
 
Si je fais comme tu m'as dit, cela donne :
 
$path = 'blabla/'
mkdir('images/'.$path, 0777);
chmod('images/'.$path, 0777);  
chown('images/'.$path, "apache" );
 
 
En suite pour tester j essaye de copier un fichier dans le repertoire nouvellement cree, mais cela ne marche pas :/
La commande chown ne me retourne aucune erreur, c'est donc qu elel a bien ete effectuee, or cela ne change rien a mon pb :/


---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
n°1427667
Dj YeLL
$question = $to_be || !$to_be;
Posté le 19-08-2006 à 12:50:30  profilanswer
 

Quand tu dis que "ça marche pas", tu as quelle erreur lors de l'envoi du fichier ?


---------------
Gamertag: CoteBlack YeLL
n°1427714
nintendose
Dentist to the Stars
Posté le 19-08-2006 à 15:20:15  profilanswer
 

Dj YeLL a écrit :

Quand tu dis que "ça marche pas", tu as quelle erreur lors de l'envoi du fichier ?


 
 
bah le pb c'est qu'apparemment les notifications d'erreur sont desactivees sur mn serveur (serveur dedie pris chez cdedie.com).
Du coup aucune erreur ne s'affiche, meme quand je mets en tete de script error_reporting(E_ALL);
donc pas facile de savoir d ou vient l erreur, a part que totu ce que je sais, c'est que malgre que mon path cree soit bien en chmod 777, pas moyen d'y placer quoi que ce soit (ca marche bien en local).
 
En fait pr mon test une fois le dossier cree (blabla), j'essaye d'y copier un fichier test.txt, situe a la racine de mon site
 
VOila mon script de test complet :
 

Code :
  1. <?
  2. error_reporting(E_ALL);
  3. $path = $_GET['path'];
  4. if(!mkdir("test/".$path, 0777))
  5. echo "j ai pas pu cree ton dossier ".$path."<br/>";
  6. else
  7. {
  8. echo "dossier '".$path."' cree avec succes<br/>";
  9. if(!chmod("test/".$path."/", 0777))
  10.  echo "<br/>j ai pas pu chmoder le dossier cree :(<br/>";
  11. else
  12. {
  13.  if(!chown("test/".$path."/", "apache" ))
  14.     echo "pas chown :(<br/>";
  15.  else
  16.     echo "chown OK<br/>";
  17.  if (!copy("test.txt","test/".$path."/test.txt" ))
  18.      echo "eh merde impossible de copier le fichier dans le dossier nouvellement cree";
  19.  else
  20.      echo "youpi !!!!!";
  21. }
  22. }
  23. ?>


 
En gros il fait tout bien jusqu'a la copie du fichier dans le dossier nouvellement cree.
Bien sur, le fichier test.txt existe bien a la racine de mon serveur.
 
Plutot que de faire une copie de fichier suite a la creation de mon path, j'ai essaye d'autres choses, comme la creation de fichier texte (en a+), la creation d'un sous-dossier, mais le constat est toujours le meme : rien n'est cree. Comme si malgre que mon dossier cree soit en 777, il ne veut pas mettre quoi que ce soit dedans.
 
J'ai bien evidemment tente de contacter cdedie, mais ils mettent 10 ans avant de te repondre, malheureusement :(
 
Donc je seche, et je m'oriente + vers un probleme de configuration apache ou bien du serveur FTP.


Message édité par nintendose le 19-08-2006 à 15:22:41

---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
n°1427727
Dj YeLL
$question = $to_be || !$to_be;
Posté le 19-08-2006 à 15:51:23  profilanswer
 

essaye voir de creer un fichier :
 
$file = fopen('test/test.txt', 'wb');
fwrite($file, 'Pourquoi ça marche pas ?');


---------------
Gamertag: CoteBlack YeLL
n°1427792
nintendose
Dentist to the Stars
Posté le 19-08-2006 à 19:09:05  profilanswer
 

Dj YeLL a écrit :

essaye voir de creer un fichier :
 
$file = fopen('test/test.txt', 'wb');
fwrite($file, 'Pourquoi ça marche pas ?');


 
 
idem, ca ne cree pas le fichier :/
 
AAARGH


---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
n°1427793
Dj YeLL
$question = $to_be || !$to_be;
Posté le 19-08-2006 à 19:25:26  profilanswer
 

Tu peux coller ça en tête du fichier :
 

Code :
  1. echo ini_get('error_reporting') . ' - ' . ini_get('display_errors') . ' - ' . ini_get('error_log');


 
Et me dire ce que ça donne ?


Message édité par Dj YeLL le 19-08-2006 à 19:26:46

---------------
Gamertag: CoteBlack YeLL
n°1427865
nintendose
Dentist to the Stars
Posté le 20-08-2006 à 06:03:14  profilanswer
 

ola,
 
je suis arrive a obtenir le log d'erreur :
 
EN fait il semble que SAFE MODE soit active, ce qui m'empeche tout bonnement de creer quoi que ce soit dans mon dossier nouvellement cree, voici l'erreur :
 

Citation :


Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 10020 is not allowed to access /var/www/vhosts/xxxxx.com/httpdocs/test/blabla owned by uid 48 in /var/www/vhosts/xxxx.com/httpdocs/testpath.php on line 24  


 
J'imagine donc que je dois desactiver ce SAFE MODE (qui va d'ailleurs disparaitre dans la version 6 de PHP.
J'ai bien un acces SSH (via Putty) sur mon serveur, or mes competences me semblent bien minces pour pouvoir faire la manip, et si je me rsique a demander a cdedie de le faire, je peux attendre jusqu'a noel. Et j'ai un peu peur de faire une fausse manip :/
 
Auriez vous un tutoriel dispo, ou autre a me conseiller ?
 
Merci


---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
n°1427867
nintendose
Dentist to the Stars
Posté le 20-08-2006 à 06:42:03  profilanswer
 

\o/ alleluia.
 
Je me suis auto-forme a putty, et j'ai pu modifier php.ini, tout marche impeccablement maintenant :) j'ai neanmoins pris le soin de faire un backup de php.ini, au cas ou :)
 
Comme quoi suffisait juste de mettre les mains dans le cambouis :)


Message édité par nintendose le 20-08-2006 à 06:43:27

---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
mood
Publicité
Posté le 20-08-2006 à 06:42:03  profilanswer
 

n°1427905
Dj YeLL
$question = $to_be || !$to_be;
Posté le 20-08-2006 à 11:23:32  profilanswer
 

Parfait :jap:


---------------
Gamertag: CoteBlack YeLL

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

  [resolu]creation de dossiers/fichiers a la volee - problemes de droits

 

Sujets relatifs
[Résolu / SQL] Update avec select ?[RESOLU] Jointure + like
[RCH]Liste de commande à travers des fichiers TXT[Résolu] Utiliser in_array avec mysql_fetch_array
[Resolu][C#.NET] Appel methode static impossible ?[Résolu] Erreur de syntaxe, qui peut m'aider ?
[Résolu] Bug embêtant avec les variables de sessionCréation d'un workbook en trop
[NSIS][Résolu] comparaison de stringdébutant - vérifier le résultat de mon code [RESOLU]
Plus de sujets relatifs à : [resolu]creation de dossiers/fichiers a la volee - problemes de droits


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