Probleme d'opload d'image a partir d'un formulaire

Résolu
cyrilherve Messages postés 324 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 26 août 2011 - 26 juin 2009 à 15:51
cyrilherve Messages postés 324 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 26 août 2011 - 30 juin 2009 à 16:19
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

cyrilherve Messages postés 324 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 26 août 2011
30 juin 2009 à 16:19
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.
3
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
28 juin 2009 à 08:29
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
0
cyrilherve Messages postés 324 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 26 août 2011
29 juin 2009 à 11:56
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
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
29 juin 2009 à 17:08
Cela répond donc à ma première question. Tu dois demander à l'administrateur de te faire un accès sur ce répertoire.

Cordialement
0

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

Posez votre question
cyrilherve Messages postés 324 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 26 août 2011
29 juin 2009 à 18:55
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.
0
cyrilherve Messages postés 324 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 26 août 2011
30 juin 2009 à 12:23
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.
0
cyrilherve Messages postés 324 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 26 août 2011
30 juin 2009 à 16:19
0
Rejoignez-nous