upload après MKDIR problème

Mammouth du PHP | 804 Messages

07 juil. 2008, 19:12

Bonjour

J'ai développé un script qui me permet de créer des répertoires, jusque-là aucun problème je parviens même à y gérer les droits CHMOD, seulement là où ça se complique c'est qu'à partir d'un autre code je ne parviens pas à UPLOAD de photos, afin d'être certain que ce ne soit pas un bug j'ai créé un répertoire avec mon logiciels FTP puis tester le code d'ajout de photos, et bien sûr il y a eu aucun souci.

Quelqu'un aurait-il assez d'expérience dans ce domaine pour me dire où ça ne va pas !

Merci d'avance

ViPHP
ViPHP | 4674 Messages

07 juil. 2008, 23:06

Hey :),

Il nous manque des informations. Peut-on connaître les tests que tu as effectué, les erreurs obtenues, etc. ? J'aimerais aussi connaître les droits que tu as essayé pour ton dossier. As-tu également vérifié que le dossier que tu essayais d'atteindre existait ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 804 Messages

08 juil. 2008, 09:14

oui aucun problème sur les droits et l'existance du dossier

j'ai même mis les droits aux maximum pour mes essais, pour en savoir plus j'ai fais un tour du coté du serveur log, et semble t il c'est "opération not permit" un truc comme ca qui apparait ! :?

Ensuite j'ai regardé du côté de l'administration du serveur avec le gestionnaire de fichiers plesk et
j'ai remarqué que le nom du groupe du répertoire était différent des autres, il porte le nom APACH,
j'ai comme l'impression qu'il me refuse le droit malgré mon j'ai 0777 ou 0755 ?
j'ai aussi ici de retirer le safe mode pour pas qu'il ne vérifie si le script est bien celui de l'administrateur du compte, mais rien à faire, ça doit vraiment tenir à pas grand-chose mais où ?


Ci-dessous je te place le code principal qui me crée le répertoire, peut-être que tu verras quelque chose de pas normal ?
if(isset($_POST['n_new_rep'])){
		mkdir ("photo/photos/$n_new_rep", 755);
		mkdir ("photo/photosmini/$n_new_rep", 755);
		chmod("photo/photos/$n_new_rep", 755);
		chmod("photo/photosmini/$n_new_rep", 755);
}

Mammouth du PHP | 804 Messages

11 juil. 2008, 08:41

il n'y a vraiment personne pour me donner un coup de pousse ? :cry:

ViPHP
ViPHP | 5877 Messages

11 juil. 2008, 08:50

Et le script qui modifie ? Parce que c'est un peu le plus important :-/

Mammouth du PHP | 804 Messages

11 juil. 2008, 15:10

Que veux tu dire par "Et le script qui modifie" ? :?

je suppose que tu veux mon scripts d'envoi , alors le voici :

if(isset($_POST['n_rep'])){ // je récupère le chemin du repertoire de destination
	$rep = $_POST['n_rep'];
}

$photo_rep_photo = "./photo/photos/$rep/";                             
$photo_rep_photomini = "./photo/photosmini/$rep/";
$photo_largeur_photo = 540;
$photo_largeur_vignette = 150;
$photo_largeur_vignette_admin = 80;
$photo_carateres_in_vignette = 50;


switch($action) {

case "upload":

if(is_uploaded_file($photo)) { // SI NOUVELLE PHOTO
$type = strstr($photo_name, "."); /* détermine l'extension du fichier */

if( ( $type == ".jpg" | $type == ".JPG" | $type == ".gif" | $type == ".GIF" | $type == ".*" ) && ( $photo_size < $photo_maxphotosize) ) {  /* si le fichier est en jpg alors ajoute le fichier dans le repertoire images*/
$id = time();
$nom_photo = "$n_name-"."$id".".jpg";

$dir_photo = "$photo_rep_photo/$nom_photo";
$dir_photo_mini = "$photo_rep_photomini/$nom_photo";

move_uploaded_file($photo, "$dir_photo"); // on deplace la nouvelle

// cree la miniature
$image = @imagecreatefromjpeg($dir_photo);
$width  = imagesx($image) ;
$height = imagesy($image) ;
$photo_width  = $optsize; // largeur a definir
$photo_height = ($photo_width * $height) / $width ; // hauteur proportionnelle
$thumb = ImageCreateTrueColor($photo_width,$photo_height);
imagecopyresized($thumb,$image,0,0,0,0,$photo_width,$photo_height,$width,$height);
ImageJPEG($thumb, "$dir_photo_mini");
imagedestroy($image);

chmod($dir_photo, 0755);
chmod($dir_photo_mini, 0755);


$tokill = "$photo_rep_photo/".$anc_photo;
$tokillmini = "$photo_rep_photomini/".$anc_photo;
$killed  = @unlink("$tokill");
$killedmini  = @unlink("$tokillmini");
}


}
 

ViPHP
ViPHP | 5877 Messages

11 juil. 2008, 19:36

Et où est ce qu'il bloque ?

ViPHP
ViPHP | 2280 Messages

11 juil. 2008, 23:22

if(isset($_POST['n_new_rep'])){
		mkdir ("photo/photos/$n_new_rep", 755);
		mkdir ("photo/photosmini/$n_new_rep", 755);
		chmod("photo/photos/$n_new_rep", 755);
		chmod("photo/photosmini/$n_new_rep", 755);
}
Comme ceci cela donne quoi ?
<?php
if(isset($_POST['n_new_rep'])){
        mkdir ('photo/photos/'.$n_new_rep, 0755);
        mkdir ('photo/photosmini/'.$n_new_rep, 0755);
        chmod ('photo/photos/'.$n_new_rep, 0755);
        chmod ('photo/photosmini/'.$n_new_rep, 0755);
}

?>
Et pour ton autre script moi j'aurais fait ceci :?:
<?php
$tokill = $photo_rep_photo."/".$anc_photo;
$tokillmini = $photo_rep_photomini."/".$anc_photo;


ImageJPEG($thumb, $dir_photo_mini);


?>

Mammouth du PHP | 804 Messages

12 juil. 2008, 00:20

j'ai essayé, et ça n'a rien changé, le répertoire est créé sans problème, mais impossible de d'upload un fichier avec mon deuxième code :(
Et où est ce qu'il bloque ?
désolé j'avais zappé ton message, ce qui m'ennuie dans mon code, c'est qu'il a toujours fonctionné du moment où je créais les répertoires par mon logiciel ftp normal "CUTFTP", par contre quand je crée un répertoire avec mon premier code ce qu'il fait sans problème CHMODE compris, l'envoi de fichiers via mon deuxième code ne se fait pas.
j'ai été voir coté log du serveur, et il apparaît clairement "opérations not permi" accès danied
quelque chose comme ça.

c'est quand même très frustrant, puisque quand je créais les répertoires via mon premier code et que je les vérifie avec mon logiciel CUTFTP les droits sont correctement appliqués tels qu'il était prévu via mon code 1.

pour aller plus loin, via mon gestionnaire de fichiers sous PLESK j'ai été vérifié ce qui se tramait, la seule chose qui m'a paru assez étrange, c'est que les répertoires que j'avais créés sous CUTFTP ne portent pas le même nom de groupe que ceux créés par mon script.
mon script créaient des répertoires sous le GROUP "APACH" ??

ça sent vraiment le problème de droit je me trompe ???

ViPHP
ViPHP | 5877 Messages

12 juil. 2008, 12:32

Applique la solution de dunbar déjà…

Mammouth du PHP | 804 Messages

12 juil. 2008, 14:24

c'est fait rien à changé

ViPHP
ViPHP | 2280 Messages

12 juil. 2008, 16:29

c'est fait rien à changé
En partant des solutions donnée regarde ton script il y à encore des erreurs :wink:
Dernière édition par dunbar le 13 juil. 2008, 13:40, édité 1 fois.

Mammouth du PHP | 804 Messages

13 juil. 2008, 03:11

alors voilà, j'ai du nouveau:

Comme je l'avais expliqué plus haut quelque chose ne me paraissait pas normal au niveau des groupes.

après avoir encore potassé mon livre PHP5 avancé , je me suis intéressé à la fonction chown() , et la le truc fou, elle ne marche pas :evil: .

du coup je me demande si je devrais pas simuler un utilisateur sur mon compte ftp ou quelque chose comme ça , je sais c'est stupide mais après pas mal de d'heures ont fini par perdre la tête :lol: !

et c'est là que j'ai découvert la fonction "Autoriser les scripts des utilisateurs web" :shock: (je parle de plesk) que j'ai activée :roll: , ensuite je vais voir mon mon script et refait un nouveau essai, et la le miracle.

maintenant la question que je me pose:
est-ce dangereux d'activer une telle fonction ?
si oui quels sont les risques ?