Probleme d'opload d'image a partir d'un formulaire [Résolu]

Signaler
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011
-
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011
-
bonjour a tous ,
j'ai cree un formulaire, a partir du quel je recupere des informations que je garde dans une base de donnee et je charge egalement une image a partir du formulaire. j'ai cree un dossier upload_fichier ou les images chargees doivent en principe etre stocke. seulement mon script marche bien en locale: j'enregiste les infos dans ma bd, l'image egalement des le dossier upload_fichier. mais qud je met mon site en ligne,  les infos vont bien dans la base de donnees mais les images ne sont pas gardees dans le dossier upload_fichier qui reste tjrs vide apres chaque  enregistrement.
voici le scripts complet de la page d'enregistrement du formulaire:
<?php
session_start();
require_once 'mes_fonctions.php';

@$agence_livraison=$_POST['agenceliv'];
@$statut_livraison=$_POST['statutliv'];
@$receptionniste=$_POST['receptonnisteliv'];
@$operateur=$_POST['opliv'];
@$observation=$_POST['observation'];
@$date_liv=date("Y/m/d");
@$heure_liv=date("H:i:s");

//on vérifies que le champ image est bien rempli:
if(!empty($_FILES["images"]["name"]))
{
    //nom du fichier choisi:
    $nomFichier    = $_FILES["images"]["name"] ;
    //nom temporaire sur le serveur:
    $nomTemporaire = $_FILES["images"]["tmp_name"] ;
    //type du fichier choisi:
    $typeFichier   = $_FILES["images"]["type"] ;
    //poids en octets du fichier choisit:
    $poidsFichier  = $_FILES["images"]["size"] ;
    //code de l'erreur si jamais il y en a une:
    $codeErreur    = $_FILES["images"]["error"] ;
    //chemin qui mène au dossier qui va contenir les fichiers uplaod:
    @$chemin = "./upload_fichier/" ;
}
    
   if( file_exists("upload_fichier/".$_FILES['images']['name']) )
     {
      $_SESSION['message']=2; 
      echo "<script type='text/javascript'>document.location.replace('livraison.php');</script>";
     } 
   else    
     {
      connection_bd(); 
      $sql="UPDATE bordereaux SET   agence_livraison='$agence_livraison',observations='$observation',operateur='$operateur',receptionniste='$receptionniste',date_livraison='$date_liv', heure_livraison='$heure_liv', statut_arrive='$statut_livraison', preuve_livraison='$nomFichier' where num_be='$_SESSION[bordero]'";
      $maj=mysql_query($sql) or die (mysql_error());
        @copy($nomTemporaire, $chemin.$nomFichier);
      $_SESSION['message']=1;
      echo "<script type='text/javascript'>document.location.replace('livraison.php');</script>";
     }
?>


et voici celle de mon formulaire:

<?php
session_start();
require_once 'mes_fonctions.php';
?>

<script language="javascript">
 function controle5()
 {
    var a=document.updatelivraison.agenceliv.value;
   var b=document.updatelivraison.statutliv.value;
   var c=document.updatelivraison.receptonnisteliv.value;
   var d=document.updatelivraison.opliv.value;
   
     if (a=="")
        {
          alert(" Selectionnez une agence "); 
          document.updatelivraison.agenceliv.focus();        
        }
     else     
           if (b=="")
             {
               alert(" selectionnez un statut "); 
               document.updatelivraison.statutliv.focus();        
             }
    else         
           if (c=="")
             {
               alert(" precisez le receptionniste "); 
               document.updatelivraison.receptonnisteliv.focus();        
             }
    else              
           if (d=="")
             {
               alert(" precisez l'operateur "); 
               document.updatelivraison.opliv.focus();        
             } 
     else 
          document.updatelivraison.submit();    
 }
</script>

<script type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&amp;&amp;i[expedition.php ][escale.php ][escale.php ]

  LIVRAISON 

<?php

//echo "  $_SESSION[err] ";
 if($_SESSION['err']==0)
  { 
?>  
<form method="post" enctype="multipart/form-data"  action="enreg_livr.php" id="formesc2" name="updatelivraison">
  ----

    <fieldset>
<legend> Nouvelle Livraison </legend>
<table width="701" border="0" cellspacing="0" cellpadding="5">
  ----

   , <label>Agence livraison: </label></td>
          <select name="agenceliv">
<?php
      $mesagences="SELECT * FROM agences"; //*****************selection des agences dans la base de données
      $resultagence=mysql_query($mesagences) or die (mysql_error());
      while($ligne=mysql_fetch_array ($resultagence)){ //listage des agences
  ?>
            <option><?php echo @$ligne['nom_agence']; ?></option>
            <?php } ?>
    </select>,
    Statut:,
    <select name="statutliv">
      <option value="livr&amp;eacute;">livr&amp;eacute;</option>
        </select>,
    &amp;nbsp;,
    &amp;nbsp;,
 
  ----

        <label>Receptionniste:</label>,
        ,
        <label>Op&amp;eacute;rateur:</label>,
        
            <label></label>,
     
      ----

        <label>Preuve de livraison :</label>,
        ,
       
      ----

        <label> Observations: </label>,
        <label>
          <textarea name="textarea" cols="60" wrap="physical" id="textarea"></textarea>
        </label>,
     
   

    </fieldset></td>
  </tr>
</table>
  

    
    
  

</form>
<?php
}
 else
  {  
    echo '  cette expedition a deja été livré 

 ' ; 
?>
<form method="post" action="enreg_livr.php" id="formesc2">
  ----

    <fieldset>
<legend> Nouvelle Livraison </legend>
<table width="701" border="0" cellspacing="0" cellpadding="5">
  ----

   , <label>Agence livraison: </label></td>
          <select name="agenceliv" disabled="disabled">
        <option value="ydeabbia" disabled="disabled"> yaounde abbia </option>
      </select>   ,
    Statut:,
    <select name="statutliv" disabled="disabled">
      <option value="&amp;agrave; destination">&amp;agrave; destination </option>
      <option value="livre">livr&amp;eacute;</option>
      <option value="non livr&amp;eacute;">non livr&amp;eacute;</option>
    </select>,
    &amp;nbsp;,
    &amp;nbsp;,
 
  ----

    <label>Receptionniste:</label>,
    ,
    <label >Op&amp;eacute;rateur:</label>,
          <label></label>,
   
 
  ----

    <label> Observations: </label>,
    <label>
      <textarea name="observation" cols="60" wrap="physical" id="observation" disabled="disabled"></textarea>
    </label>,
 

    </fieldset></td>
  </tr>
</table>
  

    
  

</form>

<?php
}
?>



d'ou peut bien venir le probleme svp, aider moi a le resoudre ....

crdialmnt

7 réponses

Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011

j'ai finalement trouve la solution a mon probleme, qui etait bien un probleme de droit d'ecriture du dossier dans lequel je voulais stocker mes images. n'ayant pas pu le modifier directement a partir de mon panneau de configuration de l'hebergeur, je suis connecte au serveur de mon hebergeur avec le logiciel fireftp. et la ça ete plus facile pour moi de passer les droits du dossier a 777 .
je peux maintenant enregistrer et lire dans ce dossier.
merci pour les reactions,,,, a bientot pour d'autres discussion.
Messages postés
340
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
22 octobre 2009

Bonjour,

As-tu un accès d'écriture sur le répertoire cible ? Aussi, pourquoi n'utilises-tu pas la fonction " move_uploaded_file() " à la place de " copy() " ? N'est-elle pas plus appropriée ?

Cordialement
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011

j'ai modifier une partie de mon script en enlevant @
donc copy ($nomTemporaire, $chemin.$nomFichier);

plutot que @copy($nomTemporaire, $chemin.$nomFichier);


j'ai maintenant ce message d'erreur:
Warning: copy(./upload_fichier/Tanker.ico) [function.copy]: failed to open stream: Permission denied in /home/solex/domains/solexmessagerieexpress.com/public_html/courier/enreg_livr.php on line 40
Messages postés
340
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
22 octobre 2009

Cela répond donc à ma première question. Tu dois demander à l'administrateur de te faire un accès sur ce répertoire.

Cordialement
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011

je crois qu'il faut voir ça avec l'hebergeur,, mais quand meme, en me connectant a mon panneau d'administration et en accedant a l'outil de gestion des fichiers j'ai un bouton set permission avec 755 comme valeur ,,,, est ce une valeur qui me donne le droit de copier dedans ,,, est qu'en la modifiant ça peut aller ??,
crdmnt.
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011

coe je l'ai dis au depart, je n'ai pas ce probleme en local,, ce n'est que quand je met mon site en ligne que je le rencontre. bon j'ai verifier sur le panneau de configuration de mon herbergeur,,,,,tout les fichiers ont pour permission 644 et les tous les repertoires/dossiers 745. j'ai essayé de modifier a partir de panneau de configuration en mettant 777, mais a chaque fois ça se reinitialise a 745.
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011