Formulaire html + code PHP
Bonjour,
Je suis occupé de mettre en place un fomulaire html qui fonctionne très bien dans lequel, les invités doivent y laisser des données et une pièce jointe.
Quand je click sur envoie les données sont bien transférér vers le code php pour l'envoie du mail.
Mais le fichier joint n'est pas transféré .
Pouvez-vous m'aider ?
la variable $scan est le fichier à transférer.
Je vous joint le code html et php
HTML:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
<html>
<!-- Date de création: 06/02/2008 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="Usager non enregistre">
<meta name="generator" content="monsoft"
</head>
<body>
<form method="post" action="envoimail.php" name="formulaire">
Nom : <input name="nom" size="30" maxlength="50" type="text">
<br /><br />
Prénom : <input name="prenom" size="30" maxlength="50" type="text"><br /><br />
E-mail : <input name="mail" size="30" maxlength="50" type="text"><br /><br />
Commentaires :
<textarea name="commentaires" cols="30" rows="6" wrap="soft"></textarea><br /><br />
Fichier : <input name="scan" size="40" maxlength="60" type="file"><br /><br />
<input name="bouton" value="Envoyer" type="submit">
</form>
</body>
</html> |
et le code php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
<?php
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$mail = $_POST['mail'];
$commentaires= $_POST['commentaires'];
$scan=$_post['scan'];
//=====Déclaration des messages au format texte et au format HTML
$message_txt ="Nom : ";
$message_html = "<html><head></head><body><b>Données pour la demande d'accès</b>,<br><br> <b>Nom :</b> $nom <br> <b>Prenom :</b> $prenom <br> <b>Email: </b> $mail </body></html>";
//==========
//=====Lecture et mise en forme de la pièce jointe
$fichier = fopen($scan, "r");
$attachement = fread($fichier, filesize($scan));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========
//=====Définition du sujet
$sujet = "Hey mon ami !";
//=========
//=====Création du header de l'e-mail
$header = "From: \"WeaponsB\"<.....@skynet.be>\n";
$header.= "Reply-to: \"WeaponsB\" <......@skynet.be>\n";
$header.= "MIME-Version: 1.0\n";
$header.= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
//==========
//=====Création du message
$message = "\n--".$boundary."\n";
$message.= "Content-Type: multipart/alternative;\n boundary=\"$boundary_alt\"\n";
$message.= "\n--".$boundary_alt."\n";
//=====Ajout du message au format texte
$message.="Content-Type: text/plain; charset=\"ISO-8859-1\"\n";
$message.="Content-Transfer-Encoding: 8bit\n";
$message.= $message_txt."\n";
//==========
$message.= "\n--".$boundary_alt."\n";
//=====Ajout du message au format HTML
$message.="Content-Type: text/html; charset=\"ISO-8859-1\"\n";
$message.="Content-Transfer-Encoding: 8bit\n";
$message.= $message_html."\n";
//==========
//=====On ferme la boundary alternative
$message.= "\n--".$boundary_alt."--\n";
//==========
$message.= "\n--".$boundary."\n";
//=====Ajout de la pièce jointe
$message.= "Content-Type: application/pdf;\n name=\"$scan\"\n";
$message.= "Content-Transfer-Encoding: base64\n";
$message.= "Content-Disposition: attachment;\n filename=\"$scan\"\n";
$message.= "\n".$attachement."\n\n";
$message.= "\n--".$boundary."--\n";
//==========
//=====Envoi de l'e-mail
mail("......@hotmail.com",$sujet,$message,$header);
//==========
?> |
Je pense qu'on n'est pas loin
Bonjour et d'abord merci à tous
J'ai mis ce code partie HTML <form method="post" action="envoimail.php" name="formulaire" enctype= "multipart/form-data" >.
Ensuite j'ai essayé avec ce code partie PHP $scan = $_FILES['scan'];
Je recois un fichier 1 pièce(s) jointe(s) Array (0,0 Ko) et pourtant ce n'est pas le fichier que j'ai sélectionné.
Avez-vous une solution ?
Merci d'avance
Malheureusement ce n'est pas encore bon
Bonjour,
Encore une fois merci à tous.
J'ai l'impression que le fichier n'est pas trouver par le code PHP.
Une idée ou plutôt une question , dois-je copier le fichier sur mon serveur via FTP ? Parce quand je met le fichier PDF sur mon serveur cela fonctionne.
Avez-vous une solution rapide pour copier le fichier qui est joint sur mon formulaire pour le transférer sur mon serveur.
:lol:
Merci d'avance