Formulaire HTML

Daizzer Messages postés 182 Date d'inscription   Statut Membre Dernière intervention   -  
Daizzer Messages postés 182 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, sur un petit site j'ai créé un formulaire avec des champs à remplir etc. Le bouton submit doit renvoyer à la page formmail.php qui doit envoyer le contenu du formulaire à mon adresse hotmail.
En fait ça marche, je reçois bien le formulaire sauf une chose : Dans le formulaire il y a un " INPUT type=file " afin d'envoyer une photo, mais je ne la reçois pas !
Voici l'en-tête du formulaire :
<FORM method=post action="formmail.php" enctype="multipart/form-data">
Comment ça se fait que je reçois tout sauf la photo ? Quelque chose à modifier dans le fichier formmail.php peut être, mais quoi ?
Merci de votre aide.



3 réponses

Garth
 
Bonjour,
: Dans le formulaire il y a un " INPUT type=file "
<input type='file' ... />
sert à envoyer des fichiers sur le serveur.

Toutes les informations transmises par le formulaire(et le fichier) sont traitées par formail.php(indiqué par action="...)
Attention cependant il y a un erreur pour l'attribut method de la balise form:

Tous les attributs de balise doivent comporter des guillemets, or ill n'y est pas
<FORM method=post action="formmail.php" enctype="multipart/form-data"> 
Donc:
<FORM method="post" action="formmail.php" enctype="multipart/form-data"> 


Un lien qui peut vous aider pour envoyer un fichier en pièce jointe:

http://www.commentcamarche.net/forum/affich-2149411-php-piece-jointe-avec-mail
0
Daizzer Messages postés 182 Date d'inscription   Statut Membre Dernière intervention   14
 
Je n'ai pas tout compris...
S'il y avait une erreur pour l'attribut method je ne recevrais pas de mail, or c'est le cas. J'ai tout de même mis des guillemets à "post" mais ça ne change rien je ne reçois pas la photo.
INPUT type=file servirait à envoyer des fichiers sur le serveur... Pourquoi je ne retrouve pas le fichier alors ? Comment faire pour que le fichier soit vraiment envoyé par mail ou du moins que je puisse le retrouver sur mon serveur ?
0
Garth
 
Avec le formulaire le fichier est stocké dans la variable PHP $_FILE.
Pour l'enregistrer sur le serveur il faut utilser la fonction move_uploaded_file() qui veut dire littéralement enregistre le fichier qui est téléchargé vers le serveur.

Pour l'envoyer par mail le lien que je vous ai indiqué devrait marcher.
0
Daizzer Messages postés 182 Date d'inscription   Statut Membre Dernière intervention   14
 
Le truc c'est que je ne sais pas du tout comment utiliser :

<?  

  $boundary = "_".md5 (uniqid (rand()));  

  $attached_file = file_get_contents($file_name); //file name ie: ./image.jpg  
  $attached_file = chunk_split(base64_encode($attached_file));  

  $attached = "\n\n". "--" .$boundary . "\nContent-Type: application; name=\"$file_name\"\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment; filename=\"$file_name\"\r\n\n".$attached_file . "--" . $boundary . "--";  

  $headers ="From: ".$my_email." \r\n";  
  $headers .= "MIME-Version: 1.0\r\nContent-Type: multipart/mixed; boundary=\"$boundary\"\r\n";  

  $body = "--". $boundary ."\nContent-Type: text/plain; charset=ISO-8859-1\r\n\n".$message . $attached;  

  @mail($email,$subject,$body,$headers);  

?>


alors que ma page formmail.php est comme ça :

<?php 
$TO = "monadressemail"; 

$h  = "From: " . $TO; 

$message = ""; 

while (list($key, $val) = each($HTTP_POST_VARS)) { 
  $message .= "$key : $val\n"; 
} 

mail($TO, $subject, $message, $h); 

?>


ni comment utilizer move_uploaded_file()...
0
Daizzer Messages postés 182 Date d'inscription   Statut Membre Dernière intervention   14
 
Up
0
Daizzer Messages postés 182 Date d'inscription   Statut Membre Dernière intervention   14
 
Up...
0