[résolu]pb de droit sur fichier upload via script [merci!]

pb de droit sur fichier upload via script [merci!] [résolu] - PHP - Programmation

Marsh Posté le 18-01-2005 à 17:09:41    

Nouveau petit problème.
 
J'upload un fichier via un forumlaire.  
Hors, je viens de m'apercevoir que celui-ci prend un chmod 600 au lieu de 644.
 
Comment je dois modifier mon script pour faire en sorte d'obtenir le bon chmod ??
 

Code :
  1. //définition du repertoire d'upload
  2. $uploaddir='../imguser/';
  3. $repuser='../imguser/';
  4. $repbdd='/imguser/';
  5. //verification du type de fichier, utilise une classe externe
  6. $get_mime = new mime_magic();
  7. $mime = $get_mime->analyze_file($_FILES['fichier']['tmp_name']);
  8. switch($mime){
  9. case "image/jpeg":
  10.  $extension = ".jpg";
  11.  break;
  12. case "image/gif":
  13.  $extension = ".gif";
  14.  break;
  15. default:
  16.  $extension = "";
  17. }
  18. //définis le nom du fichier une fois uploader sur le serveur
  19. $fichier=$session.$name.$extension;
  20. //défintion des variables pour le renvoi d'informations une fois le script éxécuté
  21. $taille = $_FILES['fichier']['size'];
  22. $tmp= $_FILES['fichier']['tmp_name'];
  23. $type= $_FILES['fichier']['type'];
  24. $erreur= $_FILES['fichier']['error'];
  25. //Affichage du résultat du script
  26. echo '<pre>';
  27. if (move_uploaded_file($tmp, $uploaddir . $fichier)) {
  28.     echo "Le fichier est valide, et a été téléchargé avec succès.";
  29. } else {
  30.     echo "Attaque par upload potentielle.";
  31. }
  32. echo '</pre>';
  33. echo  "Taille => $taille <br />";
  34. echo  "Type de fichier => $type <br />";
  35. echo  "Code erreur => $erreur. <br />";
  36. echo  "Nouveau nom => $fichier<br />";
  37. if ($err = $_FILES['fichier']['error']) {
  38.       echo "il y a eu une erreur <br>" ;
  39.   if ($err == UPLOAD_ERR_INI_SIZE)
  40.     echo "Le fichier est plus gros que le max autorisé par PHP";
  41.   elseif ($err == UPLOAD_ERR_FORM_SIZE)
  42.     echo "Le fichier est plus gros qu'indiqué dans le formulaire";
  43.   elseif ($err == UPLOAD_ERR_PARTIAL)
  44.     echo "Le fichier n'a été que partiellement téléchargé";
  45.   elseif ($err == UPLOAD_ERR_NO_FILE)
  46.     echo "Aucun fichier n'a été téléchargé.";
  47. } else echo "fichier correctement téléchargé <br><br>" ;


 
Merci de votre aide.


Message édité par melangeur le 19-01-2005 à 11:42:06
Reply

Marsh Posté le 18-01-2005 à 17:09:41   

Reply

Marsh Posté le 18-01-2005 à 17:54:38    

Un truc comme ca par exemple :

Code :
  1. chmod("$textfilename",777);

Reply

Marsh Posté le 18-01-2005 à 18:02:09    

sonikbuzz a écrit :

Un truc comme ca par exemple :

Code :
  1. chmod("$textfilename",777);



 
bhé j'va tester ca de suite alors ! merci.

Reply

Marsh Posté le 18-01-2005 à 18:15:57    

bon,bein ca colle pas.... ca me plante le script.

Reply

Marsh Posté le 18-01-2005 à 18:22:08    

melangeur a écrit :

bon,bein ca colle pas.... ca me plante le script.


Ca plante ? erreur ?
 
$textfilename c'est le chemin d'accés + le nom du fichier.

Reply

Marsh Posté le 18-01-2005 à 18:34:07    

ouaip, on est bien d'accord...mais il refuse de me changer le chmod...  
 
pour info je suis en chmod 600 après upload des fichiers.  
je vais retenter, j'ma peut être gourré.

Reply

Marsh Posté le 18-01-2005 à 18:50:42    

voila la ligne que j'insère dans mon script  
chmod ("../imguser/$fichier", 644)
et ça plantouille méchament :(

Reply

Marsh Posté le 18-01-2005 à 20:41:05    

Ton script tu le fais tourner sur une machine en local ou chez un hébergeur ?
Ya une message d'erreur ?


Message édité par sonikbuzz le 18-01-2005 à 20:42:26
Reply

Marsh Posté le 18-01-2005 à 20:42:39    

Essaie de voir si chmod() est autorisé (phpinfo()) et apres regarde qui est le proprietaire de ton ficher.. on c jamais


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 18-01-2005 à 20:45:48    

bein la, en l'occurence, le proprio, c'est moi même...
Pour chmod, j'vais verifié.

Reply

Marsh Posté le 18-01-2005 à 20:45:48   

Reply

Marsh Posté le 18-01-2005 à 20:47:30    

bon, bein chmod est desactivé sous php.... po glop.

Reply

Marsh Posté le 18-01-2005 à 20:57:43    

probleme resolu j'ai bien peur ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 18-01-2005 à 22:58:16    

ouaip, moi aussi... po cool.

Reply

Marsh Posté le 18-01-2005 à 23:08:12    

melangeur a écrit :

bein la, en l'occurence, le proprio, c'est moi même...
Pour chmod, j'vais verifié.


bha alors faut modifier ca dans le php.ini :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 18-01-2005 à 23:09:07    

controle voir s'ils t'on exclu les fonctions ftp, parceque tu pourrais p-e contourner avec ftp_chmod()


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 18-01-2005 à 23:12:13    

je viens de vérifier,
 
dans les infos php:  
ftp >> ftp support :enable  
 
ça pourrait le faire donc ....

Reply

Marsh Posté le 18-01-2005 à 23:47:23    

voila le script :  
 

Code :
  1. $file1 = "/www.monsite.com/imguser/$thumb";
  2. $ftp_server = "ftp.monsite.com";
  3. $ftp_user = "user";
  4. $ftp_pwd ="pass";
  5. $conex = ftp_connect ($ftp_server)
  6. $login_result = ftp_login($conex, $ftp_user, $ftp_pwd);
  7. if (ftp_chmod($conex, 0644, $file1) !== false) {
  8. echo "Les permissions du fichier $file1 ont été modifiées avec succès en 644\n";
  9. } else {
  10. echo "Impossible de modifier les permissions du fichier $file\n";
  11. }
  12. ftp_close($conn_id);


 
Mais ça plante.....  
et mon hébergeur a desactivé les msg d'erreurs, donc, je ne sais pas ou cela plante.

Reply

Marsh Posté le 19-01-2005 à 00:02:47    

bon, c'est résolu ! :)  
Merci bcp pour le ftp_chmod ! Nickel :)

Reply

Marsh Posté le 19-01-2005 à 00:05:16    

c'etait quoi l'erreur ?


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 19-01-2005 à 00:10:32    

il me manquait un ";" et j'avais mal indiqué le repertoire du fichier dans ma variable.

Reply

Marsh Posté le 19-01-2005 à 08:48:12    

De rien :), c'est assez marrant de voir les admin de certains hebergements qui sont tellement incompétents qu'ils se laissent contourner avec une telle facilité :lol:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 19-01-2005 à 11:33:47    

sonikbuzz a écrit :

Un truc comme ca par exemple :

Code :
  1. chmod("$textfilename",777);



 :non:  

Code :
  1. chmod($textfilename, 0777);

Erreur classique, mais tout est marqué dans la doc : http://fr.php.net/manual/fr/function.chmod.php
 
Le "mode" du fichier est un nombre en notation octale donc il faut pas oublier le 0 devant  :)


Message édité par ratibus le 19-01-2005 à 11:35:03
Reply

Marsh Posté le 19-01-2005 à 11:39:11    

Exact.. ! Et c'est bon à savoir.
Sur Nexen ils préviennent également.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed