[Permission denied] Vista et dossier en CHMOD 777

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Permission denied] Vista et dossier en CHMOD 777

par agité » 25 oct. 2007, 13:00

Bon la fonction ne passe pas en fait les gif mais seulement les jpg

je pouvais toujours essayer en vain de lui envoyer des autres extensions :roll:

bon la prochaine fois je ferais au moins attention aux fonctions que j'utilise
:afraid:

par agité » 25 oct. 2007, 12:34

Et une petite vérification de l'enctype du formulaire pour permettre l'upload de fichier ?

A voir également un print_r($_FILES) parce que $_FILES['Photo'] est un tableau d'images uploadées avec le même nom (puisque tu as collé des crochets dans le nom de l'input). Il te faut probablement utiliser $_FILES['Photo'][0]['tmp_name'] pour accéder au premier fichier...

D'ailleurs à ce sujet file_exists($_FILES['Photo']) n'a aucun sens.
Pour l'ENCTYPE c'est :
ENCTYPE="MULTIPART/FORM-DATA"
pour l'upload c'est :
// fonction qui reduit une image a partir d un fichier et l enregistre dans un ti_fichier 
// Nom du fichier, tx de compression, Taille hauteur max, Taille largeur Max, rep source, rep de destination, prefixe a mettre
function reduit_fichier($fichier_image,$scale,$max_v,$max_h,$source,$destination,$prefixe) 
{ 
    // MAX_V = HAUTEUR -- MAX_H = LARGEUR
    // le nom de l'image "scal e" commencera par ti_ et le nom du fichier original 
    $ti_fichier_image=$prefixe.$fichier_image; 
    global $nomfichier;

	//echo "$source"."$fichier_image";	
    $im=ImageCreateFromJPEG("$source"."$fichier_image"); 
    $v=ImageSY($im); // $v prend la hauteur
    $h=ImageSX($im); // $h prend la largeur
    //Floor Arrondi  l'entier inf rieur
    
    //ON GERE LA HAUTEUR
    if ($v > $max_v) // Si la hauteur Img, est plus grand que le max, on reduit
    {
        $taux_hauteur=$v/$max_v;    // On recupere le taux necessaire pour retrecir
        $ti_v=(int)floor($max_v); // ti_v = taille final de la hauteur
        $ti_h=(int)floor($h/$taux_hauteur); // ti_h = taille final de la largeur
    }
    else $ti_v=$v; // Sinon on fixe la hauteur

    // Si il n'a pas deja subbit une modification de la taille
    if ($ti_h!="") $h_comp = $ti_h; else $h_comp = $h;
    if ($ti_v!="") $v_comp = $ti_v; else $v_comp = $v;

    //ON GERE LA LARGEUR
    if ($h_comp > $max_h)
    {
        $taux_largeur=$h_comp/$max_h; 
        $ti_h=(int)floor($max_h);
        $ti_v=(int)floor($v_comp/$taux_largeur); 
    }
    else $ti_h=$h_comp;
    $ti_im = ImageCreateTrueColor($ti_h,$ti_v); 
    imagecopyresampled ($ti_im,$im,0,0,0,0,$ti_h,$ti_v,$h,$v); 
    imagejpeg($ti_im,"$destination"."$ti_fichier_image",$scale); 
    $nomfichier = $destination.$ti_fichier_image;
		
		return true;
}
Ps : Ryle j'ai tenter avec le $_FILES['Photo']['name'] et $_FILES['Photo']['tmp_name'] avant de tester avec $_FILES['Photo'], effectivement le photo seul n'as aucun sens.

le print_r($_FILES) retourne bien les noms des ficihers ...

par Ryle » 25 oct. 2007, 12:28

Et une petite vérification de l'enctype du formulaire pour permettre l'upload de fichier ?

A voir également un print_r($_FILES) parce que $_FILES['Photo'] est un tableau d'images uploadées avec le même nom (puisque tu as collé des crochets dans le nom de l'input). Il te faut probablement utiliser $_FILES['Photo'][0]['tmp_name'] pour accéder au premier fichier...

D'ailleurs à ce sujet file_exists($_FILES['Photo']) n'a aucun sens.

par Calimero » 25 oct. 2007, 12:22

On pourrait mieux te répondre si tu nous donnais le code de functions.php :o

par iclo » 25 oct. 2007, 12:20

Un petit print_r($_POST) pour voir ce qui est effectivement retourné ?

par agité » 25 oct. 2007, 12:17

En fait c'est une page appeler dans une iframe

quand je passe les données en POST depuis la page en iframe vers le formulaire qui effecture la requete sur l'image il me retourne une erreur et lorsque je charge juste la page sans l'iframe j'ai l'impression que les données ne passe pas en POST.

par agité » 25 oct. 2007, 12:09

Ok j'ai reparer l'erreur du unlink en ayant des mauvais nom envoyé par le formulaire.

Maintenant que c'est fait il me retourne l'erreur suivante :
warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in
bref il recupere pas les noms des photo car avec un test en :
if (!file_exists($_FILES['Photo'])){echo "image inexistante";}
j'ai aussi tester avec le ['name'] et ['tm_name']

Il me retourne que le fichier est inexistant et donc ne passe pas par le formulaire

au niveau du formualire envoyé ca donne :
<input type="file" name="Photo[]" maxlength="255" size="55" tabindex="11">
Pour chaque photo c'est le même nom de fichier.

une idée ?

par Calimero » 25 oct. 2007, 12:03

Comme l'indique le premier warning, tu as des éléments vides dans ton tableau $sqldata. (l'entrée du tableau existe mais se transforme en chaîne vide). Ce qui fait que php essaye d'appliquer l' unlink() au répertoire, ce qui ne peut pas fonctionner.

[Permission denied] Vista et dossier en CHMOD 777

par agité » 25 oct. 2007, 11:49

Voila lorsque je tente une upload sur un dossier en CHMOD 777 (sous vista par le clic droit sur dossier -> tout le monde -> tout les droits) ensutie j'execute ce script :
<?php
		//mise à jour des données	
		$update = sprintf("UPDATE programme SET Nom='%s', Cp='%s', Adresse='%s', Ville='%s', Id_region='%s', Date_comm='%s', Date_livraison='%s', Date_signature='%s', Presentation='%s', Id_fiscalite='%s' WHERE Id=%s", $nom,$cp,$adresse,$ville,$region,$dt_comm,$dt_livraison,$dt_signature,$presentation,$fiscalite,$idProg);
		if(mysql_query($update)){
			echo '<span class="traitement">mise à jour des données simples réussie</span><br>';
		}else{
			echo '<span class="traitement">erreur lors de la mise à jour des données simples</span><br>';
			exit;
		}
		
		// traitement des photos		
		for($i=0;$i<count($_FILES['Photo']);$i++){
			if($Photo[$i]){
				//suppression si photo existante
				if(file_exists('../../_medias/img/upload/programme/'.$sqldata['photo_'.$i])){
					chmod('../../_medias/img/upload/programme/'.$sqldata['photo_'.$i], 0777);
					unlink('../../_medias/img/upload/programme/'.$sqldata['photo_'.$i]);
				}
				
				if(file_exists('../../_medias/img/upload/programme/miniature/m_'.$sqldata['photo_'.$i])){
					chmod('../../_medias/img/upload/programme/miniature/m_'.$sqldata['photo_'.$i], 0777);
					unlink('../../_medias/img/upload/programme/miniature/m_'.$sqldata['photo_'.$i]);
				}
				
				//traitement de la photo
				$NewFichier_name = sprintf("photo%s_%s.jpg", $idProg, $i);
				$Destination = "../../_medias/img/upload/programme/".$NewFichier_name;								
				if(move_uploaded_file($PhotoTmp[$i], $Destination)) {
					echo "<span class='traitement'>copie de l'image ".($i+1)." réussie</span><br>";	
					chmod(($Destination), 0777);
					$TauxCompression = 75;
					$HauteurMax = 49;
					$LargeurMax = 83;
					$Source = "../../_medias/img/upload/programme/";
					$Destination = "../../_medias/img/upload/programme/miniature/";
					$Prefixe = "m_";					
					reduit_fichier($NewFichier_name,$TauxCompression,$HauteurMax,$LargeurMax,$Source,$Destination,$Prefixe);
					
					$TauxCompression = 75;
					$HauteurMax = 223;
					$LargeurMax = 369;
					$Destination = "../../_medias/img/upload/programme/";
					$Prefixe = "";
					reduit_fichier($NewFichier_name,$TauxCompression,$HauteurMax,$LargeurMax,$Source,$Destination,$Prefixe);
					
					//insertion des données photo
					$query = "UPDATE programme SET photo_".$i."='".$NewFichier_name."' WHERE id=".$idProg;    
			
					if(!mysql_query($query)){
						echo "<span class='traitement'>erreur de l'enregistrement de l'image ".($i+1)." en base de données</span><br>";
						exit;
					}
				}else{
					echo "<span class='traitement'>erreur dans la copie de l'image ".($i+1)."</span><br>";
					exit;
				}					
			}
		}
		
		echo "<br><span class='traitement'>Création du programme réalisée avec succès</span><br>";
			
		?>
Et une fois que le script est executé il me retourne :
Traitement en cours, veuillez patienter...

mise à jour des données simples réussie

Warning: unlink(../../_medias/img/upload/programme/) [function.unlink]: Permission denied in ***a_prog_modif_do.php on line 65
copie de l'image 1 réussie

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in ***functions.php on line 63

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '../../_medias/img/upload/programme/photo2_0.jpg' is not a valid JPEG file in ***functions.php on line 63

Warning: imagesy(): supplied argument is not a valid Image resource in ***functions.php on line 64

Warning: imagesx(): supplied argument is not a valid Image resource in ***functions.php on line 65

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in ***functions.php on line 89

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in ***functions.php on line 90

Warning: imagejpeg(): supplied argument is not a valid Image resource in ***functions.php on line 91

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in ***functions.php on line 63

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '../../_medias/img/upload/programme/photo2_0.jpg' is not a valid JPEG file in ***functions.php on line 63

Warning: imagesy(): supplied argument is not a valid Image resource in ***functions.php on line 64

Warning: imagesx(): supplied argument is not a valid Image resource in ***functions.php on line 65

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in ***functions.php on line 89

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in ***functions.php on line 90

Warning: imagejpeg(): supplied argument is not a valid Image resource in ***functions.php on line 91

Création du programme réalisée avec succès