PHP passer une variable via un fichier

Fermé
xunil2003 - 31 mars 2010 à 19:31
 xunil2003 - 1 avril 2010 à 02:15
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,
A voir également:

4 réponses

dariumis Messages postés 571 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 63
Modifié par dariumis le 31/03/2010 à 19:39
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
dariumis Messages postés 571 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 63
31 mars 2010 à 19:40
ok j'avais pas bien vue désolé, oublie mon poste.
0
dariumis Messages postés 571 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 63
Modifié par dariumis le 31/03/2010 à 19:46
Voila ce que tu peux recuperer:

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