PHP passer une variable via un fichier

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. 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.
    1. ok j'avais pas bien vue désolé, oublie mon poste.
  2. Voila ce que tu peux recuperer:

    $_FILES['fichier']['name'];
    $_FILES['fichier']['tmp_name']; 
    $_FILES['fichier']['type']; 
    $_FILES['fichier']['size'];
    $_FILES['fichier']['error'];
    
    1. 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
      1. 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.

        Discussions similaires

        question pix mot caché

        7 réponses