Problème access images

Fermé
cmkader53 Messages postés 13 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 29 mars 2016 - Modifié par cmkader53 le 20/12/2015 à 16:39
cmkader53 Messages postés 13 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 29 mars 2016 - 21 déc. 2015 à 21:57
Bonjour à tous,

J'ai uploadé à travers un formulaire des photos que je retrouve bien sur la bdd de destination, malheureusement quand j'essai de les afficher par l'intermediaire d'un script php elles ne s'affichent pas et même quand j'essai d'acceder directement aux photo j'obtiens ceci comme reponse:

<<
Forbidden
You do not have permission to access this document.

Interdit
Vous n'avez pas la permission d'accéder à ce document.
>>

testez par vous même ceci:

http://winsem.net/bi-beta/Images/Annonces/dtnWo735Uo18d4U.jpg

Alors que les images uploadés par ftp s'affichent bien
Testez ceci par vous même:

http://winsem.net/bi-beta/Images/Annonces/AnimFlech2.gif

Merci Amplement

6 réponses

jordane45 Messages postés 38392 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 janvier 2025 4 731
20 déc. 2015 à 16:31
Bonjour,

Quel est le code qui te permet d'afficher ces images ?
Quel code as tu utilisé pour gérer leur enregistrement dans la BDD ?
Est-ce un site web entièrement développé par toi ou as tu utilisé un CMS ?

0
cmkader53 Messages postés 13 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 29 mars 2016
Modifié par jordane45 le 20/12/2015 à 17:13
Merci Jordane pour l'intêret,

1/ Le Code d'enregistrement pour 5 photos:

<?php

 // Traitement de la Première photo 
 
 if(isset ($_FILES['IllustrationPhoto']['name'][0]))
  {
  $PoidsIllustrationPhoto1 = $_FILES['IllustrationPhoto']['size'][0];
  if( $PoidsIllustrationPhoto1 > 0 )
   {
   if ( $PoidsIllustrationPhoto1 <=  $PoidsMaxiIllustrationPhoto)
    {
    $NomIllustrationPhoto1 = $_FILES['IllustrationPhoto']['name'][0];
  /* test echo "Nom:",$NomIllustrationPhoto1,"</br>";*/
    $GenreIllustrationPhoto1 = $_FILES['IllustrationPhoto']['type'][0];
  /*  echo "Genre:",$GenreIllustrationPhoto1,"</br>";*/
    $CheminIllustrationPhoto1 = $_FILES['IllustrationPhoto']['tmp_name'][0];
  /*  echo "Chemin:",$CheminIllustrationPhoto1,"</br>";*/
    $ExtensionPhoto1=strrchr($NomIllustrationPhoto1,'.');
    $ExtensionPhoto1=substr($ExtensionPhoto1,1) ;
    Include 'NouveauNomIllustration.php';
    $NouveauNomIllustrationPhoto1 = $NouveauNom.".".$ExtensionPhoto1;
    $DossierStokageIllustration = 'Images/Annonces/';
    
    //Definition du nouveau chemin d'acces de la photo1
    $StockageIllustration = $DossierStokageIllustration . $NouveauNomIllustrationPhoto1;
    
    //Renomer le chemin d'accés temporaire de l'illustration et le déplacer vers le dossier Images/Annonces/
    rename($CheminIllustrationPhoto1,$StockageIllustration);
    $SousInformation1 = "";
    }
   else
    {
    $SousInformation1 = "1";
    }
   }
  else
   {
   $NouveauNomIllustrationPhoto1 = "";
   $SousInformation1 = "";
   }
 } 
 else
  {
  $NouveauNomIllustrationPhoto1 = "";
  $SousInformation1 = "";
  }
  
 // Traitement de la Deuxième photo
 
 if(isset ($_FILES['IllustrationPhoto']['name'][1]))
  { 
  $PoidsIllustrationPhoto2 = $_FILES['IllustrationPhoto']['size'][1];
  if( $PoidsIllustrationPhoto2 > 0 )
   {   
   if ($PoidsIllustrationPhoto2 <=  $PoidsMaxiIllustrationPhoto)
    {
    $NomIllustrationPhoto2 = $_FILES['IllustrationPhoto']['name'][1];
    $GenreIllustrationPhoto2 = $_FILES['IllustrationPhoto']['type'][1];
    $CheminIllustrationPhoto2 = $_FILES['IllustrationPhoto']['tmp_name'][1];
    $ExtensionPhoto2=strrchr($NomIllustrationPhoto2,'.');
    $ExtensionPhoto2=substr($ExtensionPhoto2,1) ;
    Include 'NouveauNomIllustration.php';
    $NouveauNomIllustrationPhoto2 = $NouveauNom.".".$ExtensionPhoto2;
    $DossierStokageIllustration = 'Images/Annonces/';
    
    //Definition du nouveau chemin d'acces de la photo1
    $StockageIllustration = $DossierStokageIllustration . $NouveauNomIllustrationPhoto2;
    
    //Renomer le chemin d'accés temporaire de l'illustration et le déplacer vers le dossier Images/Annonces/
    rename($CheminIllustrationPhoto2,$StockageIllustration);
    $SousInformation2 = "";
    }
   else
    {
    $SousInformation2 = "2";
    }
   }
  else
   {
   $NouveauNomIllustrationPhoto2 = "";
   $SousInformation2 = "";
   }
  } 
 else
  {
  $NouveauNomIllustrationPhoto2 = "";
  $SousInformation2 = "";
  } 
  
 // Traitement de la Troisième photo
 
 if(isset ($_FILES['IllustrationPhoto']['name'][2]))
  {
  $PoidsIllustrationPhoto3 = $_FILES['IllustrationPhoto']['size'][2];
  if( $PoidsIllustrationPhoto3 > 0 )
   {
   if ($PoidsIllustrationPhoto3 <=  $PoidsMaxiIllustrationPhoto)
    {
    $NomIllustrationPhoto3 = $_FILES['IllustrationPhoto']['name'][2];
    $GenreIllustrationPhoto3 = $_FILES['IllustrationPhoto']['type'][2];
    $CheminIllustrationPhoto3 = $_FILES['IllustrationPhoto']['tmp_name'][2];
    $ExtensionPhoto3=strrchr($NomIllustrationPhoto3,'.');
    $ExtensionPhoto3=substr($ExtensionPhoto3,1) ;
    Include 'NouveauNomIllustration.php';
    $NouveauNomIllustrationPhoto3 = $NouveauNom.".".$ExtensionPhoto3;
    $DossierStokageIllustration = 'Images/Annonces/';
    
    //Definition du nouveau chemin d'acces de la photo1
    $StockageIllustration = $DossierStokageIllustration . $NouveauNomIllustrationPhoto3;
    
    //Renomer le chemin d'accés temporaire de l'illustration et le déplacer vers le dossier Images/Annonces/
    rename($CheminIllustrationPhoto3,$StockageIllustration);
    $SousInformation3 = "";
    }
   else
    {
    $SousInformation3 = "3";
    }
   }
  else
   {
   $NouveauNomIllustrationPhoto3 = "";
   $SousInformation3 = "";
   }  
  }
 else
  {
  $NouveauNomIllustrationPhoto3 = "";
  $SousInformation3 = "";
  }
  
 // Traitement de la Quatrième photo
 
 if(isset ($_FILES['IllustrationPhoto']['name'][3]))
  {
  $PoidsIllustrationPhoto4 = $_FILES['IllustrationPhoto']['size'][3];
  if( $PoidsIllustrationPhoto4 > 0 )
   {
   if ($PoidsIllustrationPhoto4 <  $PoidsMaxiIllustrationPhoto)
    {
    $NomIllustrationPhoto4 = $_FILES['IllustrationPhoto']['name'][3];
    $GenreIllustrationPhoto4 = $_FILES['IllustrationPhoto']['type'][3];
    $CheminIllustrationPhoto4 = $_FILES['IllustrationPhoto']['tmp_name'][3];
    $ExtensionPhoto4=strrchr($NomIllustrationPhoto4,'.');
    $ExtensionPhoto4=substr($ExtensionPhoto4,1) ;
    Include 'NouveauNomIllustration.php';
    $NouveauNomIllustrationPhoto4 = $NouveauNom.".".$ExtensionPhoto4;
    $DossierStokageIllustration = 'Images/Annonces/';
    
    //Definition du nouveau chemin d'acces de la photo1
    $StockageIllustration = $DossierStokageIllustration . $NouveauNomIllustrationPhoto4;
    
    //Renomer le chemin d'accés temporaire de l'illustration et le déplacer vers le dossier Images/Annonces/
    rename($CheminIllustrationPhoto4,$StockageIllustration);
    $SousInformation4 = "";
    }
   else
    {
    $SousInformation4 = "4";
    }
   }
  else
   {
   $NouveauNomIllustrationPhoto4 = "";
   $SousInformation4 = "";
   } 
  } 
 else
  {
  $NouveauNomIllustrationPhoto4 = "";
  $SousInformation4 = "";
  }
  
 // Traitement de la Cinquième photo
 
 if( isset ($_FILES['IllustrationPhoto']['name'][4]))
  {
  $PoidsIllustrationPhoto5 = $_FILES['IllustrationPhoto']['size'][4];
  if( $PoidsIllustrationPhoto5 > 0 )
   {
   if ($PoidsIllustrationPhoto5 <=  $PoidsMaxiIllustrationPhoto)
    {
    $NomIllustrationPhoto5 = $_FILES['IllustrationPhoto']['name'][4];
    $GenreIllustrationPhoto5 = $_FILES['IllustrationPhoto']['type'][4];
    $CheminIllustrationPhoto5 = $_FILES['IllustrationPhoto']['tmp_name'][4];
    $ExtensionPhoto5=strrchr($NomIllustrationPhoto5,'.');
    $ExtensionPhoto5=substr($ExtensionPhoto5,1) ;
    Include 'NouveauNomIllustration.php';
    $NouveauNomIllustrationPhoto5 = $NouveauNom.".".$ExtensionPhoto5;
    $DossierStokageIllustration = 'Images/Annonces/';
    
    //Definition du nouveau chemin d'acces de la photo1
    $StockageIllustration = $DossierStokageIllustration . $NouveauNomIllustrationPhoto5;
    
    //Renomer le chemin d'accés temporaire de l'illustration et le déplacer vers le dossier Images/Annonces/
    rename($CheminIllustrationPhoto5,$StockageIllustration);
    $SousInformation5 = "";
    }
   else
    {
    $SousInformation5 = "5";
    }
   }
  else
   {
   $NouveauNomIllustrationPhoto5 = "";
   $SousInformation5 = "";
   }
  } 
 else
  {
  $NouveauNomIllustrationPhoto5 = "";
  $SousInformation5 = "";
  }
  
 // Affichage information 
 
  if ($SousInformation1 != "" Or $SousInformation2 != "" Or $SousInformation3 != "" Or $SousInformation4 != "" Or $SousInformation5 != "") 
   {
   $SousInformation = "Toutefois La(es) photo(s): ".$SousInformation1." ".$SousInformation2." ".$SousInformation3." ".$SousInformation4." ".$SousInformation5." "."Est (Sont) refusée(s) pour poids > à ".$PoidsMaxiIllustrationPhoto." ko" ;
   }
  else
   {
   $SousInformation = "";
   }
   
   
?>



2/ Le code pour l'affichage

<hr 100%>

<table width=775 id="divprincipaltableaudaffichage">   
 <tr>
  <td style="text-align:left" width=190>
   <img width=180 height=150 src="<?php if ($IllustrationPhoto10 != '' ){echo $IllustrationPhoto1;} else { echo 'Images/ANNPAPHOTO.gif';}?>"/>
  </td>
  <td style="text-align:left" >
   <?php
   if ($_SESSION['CodePostal'] == "")
    {
    if($VisibiliteNrTel == "Oui")
     {
     echo
     "<span class='titreannoncesurTA'>",$Titre,"</br></span>",$Type,"-",$Categorie,"-",$Gouvernorat,"</br></br>",$Texte,"</br></br>",$NumeroTel;
     }
    else
     {
     echo
     "<span class='titreannoncesurTA'>",$Titre,"</br></span>",$Type,"-",$Categorie,"-",$Gouvernorat,"</br></br>",$Texte,"</br></br><span class='textvisibilitetelsurTA'>A ce stade le numero du télephone est caché par l'annonceur</span>";
     }
    } 
   else
    {
    if($VisibiliteNrTel == "Oui")
     {
     echo
     "<span class='titreannoncesurTA'>",$Titre,'</br></span>',$Type,"-",$Categorie,"-",$CodePostale,'</br></br>',$Texte,'</br></br>',$NumeroTel;
     }
    else
     {
     echo
     "<span class='titreannoncesurTA'>",$Titre,'</br></span>',$Type,"-",$Categorie,"-",$CodePostale,'</br></br>',$Texte,"</br></br><span class='textvisibilitetelsurTA'>A ce stade le numero du télephone est caché par l'annonceur</span>";
     }
    }
   ?>
  </td>
  <td style="text-align:left" width=170>
   <?php
   $DateAnnonce = substr($Date, 0, 10);
   $TimeAnnonce = substr($Date, 10);
   if($DateAnnonce == date("Y-m-d"))
    {
    if ($Prix != "")
     {
     echo
     "<span class='valeurprixsurTA'>",$Prix,' DT','</br></span>Aujourd\'hui à :',$TimeAnnonce,'</br></br>',$QualiteAnnonceur,'</br></br>';
     }
    else
     {
     echo
     "<span class='valeurprixOsurTA'>",'Prix à proposer','</br></span>Aujourd\'hui à :',$TimeAnnonce,'</br></br>',$QualiteAnnonceur,'</br></br>';
     }
    } 
   else
    {
    if ($Prix != "")
     {
     echo
     "<span class='valeurprixsurTA'>",$Prix,' DT','</br></span>',$Date,'</br></br>',$QualiteAnnonceur,'</br></br>';
     }
    else
     
     {
     echo
     "<span class='valeurprixOsurTA'>",'Prix à proposer','</br></span>',$Date,'</br></br>',$QualiteAnnonceur,'</br></br>';
     }
    }    
   ?>   
   <a href="DetailAnnonce.php?CodeAnnonce=<?php echo $CodeAnnonce;?>&IdAnnonce=<?php echo $IdAnnonce;?>">Detail</a>     <img width=80 height=10 src="Images/AnimFlech2.gif" style="vertical-align: middle"/>
   
  </td>
 </tr>
 <tr>
  <td colspan=2 style="text-align:left"> 
  <span class="nbsurTA">Nb:</span> <span class="textsignalementsurTA">Si vous pensez que l'annonce porte dans son contenu texte ou photo,
  de message immoral, raciste ou violant les lois en vigeur nous vous prions de ne pas hésiter pour la signaler.</span>
  </td>
  <td>   
  <div id="boutonsignalementsurTA">
  <a href="SignalementAnnonce.php?CodeAnnonce=<?php echo $CodeAnnonce;?>&IdAnnonce=<?php echo $IdAnnonce;?>">Signaler l'annonce</a>
  </div>
  </td>
 </tr>
</table>




3/ Developpement par moi moi même (je suis autodidacte en la matière, mais je suis ingenieur electro mecanicien de formation).

Encore une fois merci pour l'interet.

A. Farhani

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
jordane45 Messages postés 38392 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 janvier 2025 4 731
Modifié par jordane45 le 20/12/2015 à 17:27
Bon .. déjà .. pourquoi écrire 4 fois le même code ??
Ne penses tu pas qu'une BOUCLE ne serait pas plus judicieux ??

Un truc du genre :
if(isset($_FILES['IllustrationPhoto'])) {
  
  $files = $_FILES['IllustrationPhoto'] ;
  
    foreach($files as $F ){  
      $name = $F['name'];   
      $size = $F['size'];
      $tmp_name = $F['tmp_name'];
      $type = $F['type'];  

      if($size>0 && $size <=$PoidsMaxiIllustrationPhoto){
         $ExtensionPhoto1=strrchr($name,'.');
         $ExtensionPhoto1=substr($ExtensionPhoto1,1) ;
         Include 'NouveauNomIllustration.php';
         $NouveauNomIllustrationPhoto1 = $NouveauNom.".".$ExtensionPhoto1;
         $DossierStokageIllustration = 'Images/Annonces/';
    
         //Definition du nouveau chemin d'acces de la photo1
        $StockageIllustration = $DossierStokageIllustration . $NouveauNomIllustrationPhoto1;
    
         //Renomer le chemin d'accés temporaire de l'illustration et le déplacer vers le dossier Images/Annonces/
         if(!rename($CheminIllustrationPhoto1,$StockageIllustration)){
            echo "erreur de déplacement de l'image";
          }
         $SousInformation1 = "";  
          
          
     }else{
          //taille incorecte
           echo "erreur de taille de l'image";
    
      }
   
   
   }
  
}


Bon... ensuite.... as tu vérifié :
(directement via le FTP de ton serveur) si :
1 - Les images étaient bien présentent sur le serveur dans le répertoire en question (à savoir dans Images/Annonces/

2 - Quels sont les droits de ce répertoire ? as tu essayé (ne serait-ce que le temps des tests) de le mettre en 777 (lecture écriture exécution pour tous les groupes)?




Cordialement, 
Jordane                                                                 
0
cmkader53 Messages postés 13 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 29 mars 2016
20 déc. 2015 à 17:45
Bonsoir Jordan,

1/ Pour la boucle je ferais le necessaire.

2/ Les images sont bel et bien dans le repertoire et sont même éditables.

3/ En ce qui concerne les droits du repertoire je ne sais pas comment faire pour le 777 dont vous parlez.

Cordialement.

A. Farhani
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cmkader53 Messages postés 13 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 29 mars 2016
20 déc. 2015 à 23:05
Bonsoir Jordan,

Je viens de faire un test en remplaçant, via ftp, les droits d'acces au dossier ImagesAnnonces à 777.

Les images qui se trouvent dans le dossiers sont devenues accessibles, par contre celles uploader après la modif ne sont pas accessibles.

J'ai essayé de refaire la modif malheureusement je reçois un msg comme quoi j'ai pas le droit de changer les droits d'accées ....

Je continu à galerer ....

Cordialement

A. Farhani
0
cmkader53 Messages postés 13 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 29 mars 2016
21 déc. 2015 à 21:57
Bonsoir Jordan,

Je viens de constater que les images uploadées via un ftp ont un droit d'acces de 644 et elles sont accessibles, directement ou via un script php:

ex:

http://www.winsem.net/ImagesAnnonces/Zs2HNDLnst4hjSD.png


Alors que celles uploadées par mon formulaire ont un droit d'acces de 600 et ne sont accessibles ni directement ni via un script php

ex:

http://www.winsem.net/ImagesAnnonces/yLpapyEORpKQx9X.JPG


Ces dernières deviennent accessibles quand je modifie manuellement leur droit d'acces de 600 à 644.

J'ai assayé de modifier, automatiquement lors de l'upload de l'image, ce droit d'acces en introduisant une commande chmod dans le script comme suit:

chmod($StockageIllustration , 0644);


mais sans resultat

Donc mon problème est d'imposer un droit d'acces de 644 au fichier image lors de son upload via mon formulaire. COMMENT FAIRE ???

nb: la variable $StockageIllustration contient le chemin d'acces au fichier

Cordialement

A. Farhani
0