PHP passer une variable via un fichier

xunil2003 -  
 xunil2003 -
bonjour,

j'ai besoin de faire passer une variable d' un formulaire au fichier d'envoi, d'une page a l'autre, pour un fichier, comment y formulé dans formulaire, es ce correcte ?

<form action="email-test-6.php" method="post">
<div align="center">
  <table width="auto" border="1">
    <tr>
      <th scope="col">Expediteur</th>
      <th scope="col">
        <input type="hidden" name="id" value="1" />
        <input type="text" name="from" value="" size="40" maxlength="45" />        </th>
    </tr>
    <tr>
      <th scope="row">Pièce jointe</th>
      <td><input type="hidden" name="id" value="5" /><INPUT TYPE=FILE NAME="fichier"><BR>
</td>
    </tr>
    <tr>
      <th scope="row">&nbsp;</th>
      <td><input type="submit"  value="Envoyer" name="Envoyer" /></td>
    </tr>
  </table>


Dans le fichier d'envoi comment formuler la reception de la variable ?

$fichier = $_FILES['fichier']['Envoyer'];


Merci.

Bonjour,

4 réponses

  1. dariumis Messages postés 583 Statut Membre 63
     
    Salut:

    $fichier = $_POST['fichier'] ;  
    


    Pour récuperer le champ que tu as nommé "fichier".
    Mais comme tu as deux champs nommé id le deuxieme va écraser le premier.
    0
    1. dariumis Messages postés 583 Statut Membre 63
       
      ok j'avais pas bien vue désolé, oublie mon poste.
      0
  2. dariumis Messages postés 583 Statut Membre 63
     
    Voila ce que tu peux recuperer:

    $_FILES['fichier']['name'];
    $_FILES['fichier']['tmp_name']; 
    $_FILES['fichier']['type']; 
    $_FILES['fichier']['size'];
    $_FILES['fichier']['error'];
    
    0
  3. xunil2003
     
    Ok, j' ai mis

    $fichier = $_POST['fichier'] ; 
    


    il me reponse :
    Destinataire :, 5 xxxxx@free.fr Expediteur 5 xxxx@free.fr Objet message, 5 test objet Corps du message, 5 test corps du message 
    Warning: file_get_contents(puce-1.png) [function.file-get-contents]: failed to open stream: No such file or directory in L:\Program files 2\wamp\www\maison\N7\test\email-test-6.php on line 119 
    Le mail a été envoyé  
    


    la ligne 119 est :
    $message .= chunk_split(base64_encode(file_get_contents($fichier)))."\n";


    Pourtant j'ai bien reçus le mail avec la pièce jointe puce-1.png de 1 Ko mais impossible de la voir, comme si le fichier été illisible, et lors de mes teste quand je met ceci sa fonctionne

    $fichier = "puce-1.png";


    Merci
    0
  4. xunil2003
     
    bonsoir,

    Avec ceci c'est pareil.

    if(isset($_POST['Envoyer'])) 
         
      { 
      $to = htmlspecialchars($_POST['to']); 
      $from = htmlspecialchars($_POST['from']); 
      $sujet = htmlspecialchars($_POST['sujet']); 
      $msg = htmlspecialchars($_POST['msg']); 
      
      //nom des variables $_FILES  
         $tmp_name=$_FILES['fichier']['tmp_name'];  
         $name=$_FILES['fichier']['name'];  
         $size=$_FILES['fichier']['size'];  
         $type=$_FILES['fichier']['type'];  
         $erreur=$_FILES['fichier']['error'];  
         
       //affichage des différentes variables pour vérification  
         
       echo "Nom du fichier :".$name;  
       echo "<br>Taille du fichier :".$size;  
       echo "<br>Type de fichier :".$type;  
       echo "<br>Nom temporaire :".$tmp_name;  
       echo "<br>Erreur :".$erreur;  
         
       //variable contenant le répertoire de destination  
       $uploadpath="L:\\program files 2\\wamp\\www\\uploads\\";  
       echo "<br>Répertoire de destination  :".$uploadpath; 
        
    
    //déplacement du fichier du dossier temporaire vers le dossier de destination  
         
       move_uploaded_file($tmp_name,$uploadpath.$fichier); 
        
    } 
    


    Voila le message de confirmation :

    Nom du fichier :logo-404.png
    Taille du fichier :5654
    Type de fichier :image/png
    Nom temporaire :L:\Program files 2\wamp\tmp\php2BE.tmp
    Erreur :0
    Répertoire de destination :L:\program files 2\wamp\www\uploads\
    Le mail a été envoyé

    quand j'envoie un mail je reçois la pièce jointe avec un fichier ATT00271.jpg qui fait 1 octets... qui donne l'impression d'etre corrompu.

    j'essai en vingt toujours d'envoyer un mail depuis mon formulaire, pour cela Il faut bien uploader d'abord le fichier sur le serveur en PHP.

    move_uploaded_file($tmp_name,$uploadpath.$fichier);

    Que ce passe t'il ?

    Merci.
    0