problème de formulaire qui envoit des fichiers
Dernière réponse : dans Programmation
Bonjour, j'ai un formulaire qui envoit les données inscrites sur la page à mon courrier, jusqu'a la, tout marche bien, mais là, j'essais de mettre un champ fichier (file field)
je reçois le email avec les données inscrites, mais pas le fichier que j'y ai mit, pourquoi, qu'est-ce que j'ai fais qui ne serait pas bien ?
<html>
<body>
<form method=POST action=form2mail.php>
<input name="envoitdefichier" type="file">
.........autres champs.........
</form>
</body>
</html>
je reçois le email avec les données inscrites, mais pas le fichier que j'y ai mit, pourquoi, qu'est-ce que j'ai fais qui ne serait pas bien ?
Autres pages sur : probleme formulaire envoit fichiers
Lassé par la pub ? Créez un compte
voila mon script, mais ca ne fonctionne pas, je recois la confirmation que ca été envoyé, mais je ne recois rien
première page : Le formulaire
<html>
<body>
<form ENCTYPE="multipart/form-data" action="./mail4.php" method=POST>
<center>
De: <input type=text name = "from" size="30"><br>
Destinataire: <input type=text name = "to" size="30"><br>
Sujet: <input type=text name = "sujet" size="30"><br><br>
Texte :<br><textarea name="message" rows="15" cols="40"></textarea><br>
<INPUT TYPE=FILE NAME="monfichier"> <input type=submit value="envoi">
</center>
</form>
</body>
</html>
La deuxième page appelée ici mail4.php :
<html>
<body> <center>
<?
$name_file = $_FILES['monfichier']['name'];
$source=$_FILES['monfichier']['tmp_name'];
move_uploaded_file($source, "./".$name_file);
$extension=get_extension($name_file);
$type="text/plain";
if($type=="doc")
{
$type="text/vnd.ms-word";
}
else if($type=="xls")
{
$type="text/vnd.ms-excel";
}
$type2="image/png";
if($extension=="gif")
{
$type2="image/gif";
}
else if($extension=="bmp")
{
$type2="image/bmp";
}
function get_extension($filename)
{
$parts = explode('.',$filename);
$last = count($parts) - 1;
$ext = $parts[$last];
return $ext;
}
//----------------------------------
// Construction de l'entête
//----------------------------------
if($_POST['to']!="")
{
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";
$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
$msg .= "--$boundary\r\n";
$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= $_POST['message'];
$msg .= "\r\n";
if($name_file!="")
{
$file = $name_file;
$fp = fopen($file, "rb");
$attachment = fread($fp, filesize($file));
fclose($fp);
$attachment = chunk_split(base64_encode($attachment));
$msg .= "--$boundary\r\n";
$msg .= "Content-Type: $type2; name=\"$file\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
$msg .= "\r\n";
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$boundary--\r\n";
}
$destinataire = $_POST['to'];
$expediteur = $_POST['from'];
$reponse = $expediteur;
echo "Mail envoyé à $destinataire";
mail($destinataire, $_POST['sujet'], $msg,
"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
}
if($name_file!="")
{
unlink($name_file);
}
print("<br>\n");
print("<br><A href=./mail3.php target=\"principal\"><font size=2>Envoyer un autre mail</font></A>");
?>
</center>
</body>
</html>
si j'ai compris tu veux recevoir un contact mail c'est sa ??? bon tu peux faire comme sa :
page 1 :
<html>
<HEAD>
<TITLE>Easyform 1.0</TITLE>
</HEAD>
<BODY>
<?PHP include("form.php"); ?>
</BODY>
</html>
page : 2 nomme la : form.php lol si tu veux haha
/*
*************************************************************************************
* EasyForm 1.0.2 *
*************************************************************************************
* Auteur : AMOUZOU Amen Wenceslas alias amen0phis, www.amouzou.org *
* Copyright : Cette application est gratuit; *
* envoyez moi juste un mail à amouzou_amen@yahoo.fr pour me faire plaisir *
*************************************************************************************
* Nom du fichier formMoteur.php *
* Date de création : 18 Février 2005 *
* Date de modification : 19 JUIN 2005 *
************************************************************************************/
//=========================DEBUT CONFIGURATION======================================
$nb_chp_imput = 4; // Le nombre de champ INPUT (champ de texte)
$nb_chp_textarea = 1; //Le nombre de zone de texte
$tb_etiquette = array("Nom","Ville","E-Mail","Objet","Message"); //Liste des étiquettes des champs dans cet ordre! Echappez d'éventuels griffes <<">> avec <<\>> dans les libellés
$email_dest = "ADRESSE MAIL"; //adresse email où les données collectées iront
$email_objet = "Formulaire de contact 1.0";
$site_url = "NOM SITE"; //adresse du site
$couleur1 = "#E7E7E7"; //Couleur d'alternance 1 des lignes dans le tableau
$couleur2 = "#DDDDDD"; //Couleur d'alternance 2 des lignes dans le tableau
$tab_bordure = 0; // La bordure du tableau
//===========================FIN CONFIGURATION================================//
if($nb_chp_imput==0){
echo "<center>Pour utiliser EasyForm, spécifiez au moins un champ input dans le fichier formMoteur.php; changer la valeur 0 de la variable \$nb_chp_imput</center>";
exit;
}
// Nous allons créer le formulaire nécessaire
$form_out_put = "\n<BR/><BR/><form name='form1' action='".$_SERVER['PHP_SELF']."' method = 'POST'>\n";
$form_out_put .= "<table align='center' width='50%'>\n";
$cpt = 1; //Ce compteur va ous permettre l'alternance des couleurs dans le tableau
for ($i=0; $i<$nb_chp_imput+$nb_chp_textarea; $i++) {
$couleur = ($cpt%2)? $couleur1 :$couleur2;
$form_out_put .= "<tr bgcolor='$couleur'><td width='30%' valign='top' align='right'>";
if (!isset($tb_etiquette[$i])) $tb_etiquette[$i] = "ETIQUETTE NON DEFINIE";
$form_out_put .= " <b>$tb_etiquette[$i] :</b> </td><td>";
//Si nous sommes sur les input
if ($i<$nb_chp_imput) {
$form_out_put .= "<input name='field[]' type='text' size='32' ";
if(isset($field)) $form_out_put .= "value='$field[$i]' />";
$form_out_put .= "</td></tr>\n";
}else{
if ($i<$nb_chp_textarea+$nb_chp_imput) {
$form_out_put .= "<TEXTAREA name='field[]' rows='7' cols='28'>";
if(isset($field)) $form_out_put .= $field[$i];
$form_out_put .= "</TEXTAREA></td></tr>\n";
}
}
$cpt++;
}
$form_out_put .= "<tr><td align='right'><input type=submit value=Envoyer /></td><td><input type=reset value='Tout effacer' /></td></tr>";
$form_out_put .= "<tr><td colspan=2 align=center>Contact Mail <A href='mailto:TON ADRESSE MAIL'>NOM DU SITE</A>\n<br><br></td></tr>";
$form_out_put .= "</table>\n";
$form_out_put .= "<input type=hidden name=envoi value=1/>";
$form_out_put .= "</form>";
// nOus allons recueillir et traiter le formulaire
//Nous supposons dans cette première mouture que tous les champs seront obligatoires
$message = NULL;
$headers = NULL;
if (!isset($_POST["envoi"])) {
//eventuel message
}else {
$champ = $_POST["field"];
if (in_array("", $champ)){
$text_put_alert = "<center><span class='alert'>Tous les champs sont obligatoires \n<br></span></center>";
}else{
//Traitement si tout est bon
//Les valeurs sont contenues dans le tableau $champ
//Pour atteindre une valeur, $champ[x] , xétant l'index de l'élément dans la définition des étiquettes
$message .= "Ce mail provient du formulaire d'envoi du site <b>$site_url</b>";
$message .= "<hr>";
while(list($index,$valeur) = each($champ)){
$message .= "\n<br>- $tb_etiquette[$index] : <b>$valeur</b> ";
}
$message .= "<HR>Contact Mail est écrit par <a href=mailto:Valdrin_15@msn.com>Valdrin</a>\n
";
$message .= "In Form, We Trust!";
$headers .= "From: EasyForm \n";
$headers .= "X-Mailer: PHP\n";
$headers .= "X-Priority: 0\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$envoi_mail = @mail($email_dest, $email_objet, $message, $headers);
if($envoi_mail ==true) {
$text_put_confirm = "<center><span class='confirm'>Votre envoi a abouti avec succès \n<br></span></center>";
}else{
$text_put_alert = "<center><span class='alert'>Désolé! Le mail n'a pas pu être envoyé \n<br/>Le moteur SMTP est down \n<br></span></center>";
}
}
}
/*APPEL DU FORMULAIRE*/
if(isset($text_put_alert)) echo $text_put_alert;
if(isset($text_put_confirm)) echo $text_put_confirm;
echo $form_out_put;
?>
page 1 :
<html>
<HEAD>
<TITLE>Easyform 1.0</TITLE>
</HEAD>
<BODY>
<?PHP include("form.php"); ?>
</BODY>
</html>
page : 2 nomme la : form.php lol si tu veux haha
/*
*************************************************************************************
* EasyForm 1.0.2 *
*************************************************************************************
* Auteur : AMOUZOU Amen Wenceslas alias amen0phis, www.amouzou.org *
* Copyright : Cette application est gratuit; *
* envoyez moi juste un mail à amouzou_amen@yahoo.fr pour me faire plaisir *
*************************************************************************************
* Nom du fichier formMoteur.php *
* Date de création : 18 Février 2005 *
* Date de modification : 19 JUIN 2005 *
************************************************************************************/
//=========================DEBUT CONFIGURATION======================================
$nb_chp_imput = 4; // Le nombre de champ INPUT (champ de texte)
$nb_chp_textarea = 1; //Le nombre de zone de texte
$tb_etiquette = array("Nom","Ville","E-Mail","Objet","Message"); //Liste des étiquettes des champs dans cet ordre! Echappez d'éventuels griffes <<">> avec <<\>> dans les libellés
$email_dest = "ADRESSE MAIL"; //adresse email où les données collectées iront
$email_objet = "Formulaire de contact 1.0";
$site_url = "NOM SITE"; //adresse du site
$couleur1 = "#E7E7E7"; //Couleur d'alternance 1 des lignes dans le tableau
$couleur2 = "#DDDDDD"; //Couleur d'alternance 2 des lignes dans le tableau
$tab_bordure = 0; // La bordure du tableau
//===========================FIN CONFIGURATION================================//
if($nb_chp_imput==0){
echo "<center>Pour utiliser EasyForm, spécifiez au moins un champ input dans le fichier formMoteur.php; changer la valeur 0 de la variable \$nb_chp_imput</center>";
exit;
}
// Nous allons créer le formulaire nécessaire
$form_out_put = "\n<BR/><BR/><form name='form1' action='".$_SERVER['PHP_SELF']."' method = 'POST'>\n";
$form_out_put .= "<table align='center' width='50%'>\n";
$cpt = 1; //Ce compteur va ous permettre l'alternance des couleurs dans le tableau
for ($i=0; $i<$nb_chp_imput+$nb_chp_textarea; $i++) {
$couleur = ($cpt%2)? $couleur1 :$couleur2;
$form_out_put .= "<tr bgcolor='$couleur'><td width='30%' valign='top' align='right'>";
if (!isset($tb_etiquette[$i])) $tb_etiquette[$i] = "ETIQUETTE NON DEFINIE";
$form_out_put .= " <b>$tb_etiquette[$i] :</b> </td><td>";
//Si nous sommes sur les input
if ($i<$nb_chp_imput) {
$form_out_put .= "<input name='field[]' type='text' size='32' ";
if(isset($field)) $form_out_put .= "value='$field[$i]' />";
$form_out_put .= "</td></tr>\n";
}else{
if ($i<$nb_chp_textarea+$nb_chp_imput) {
$form_out_put .= "<TEXTAREA name='field[]' rows='7' cols='28'>";
if(isset($field)) $form_out_put .= $field[$i];
$form_out_put .= "</TEXTAREA></td></tr>\n";
}
}
$cpt++;
}
$form_out_put .= "<tr><td align='right'><input type=submit value=Envoyer /></td><td><input type=reset value='Tout effacer' /></td></tr>";
$form_out_put .= "<tr><td colspan=2 align=center>Contact Mail <A href='mailto:TON ADRESSE MAIL'>NOM DU SITE</A>\n<br><br></td></tr>";
$form_out_put .= "</table>\n";
$form_out_put .= "<input type=hidden name=envoi value=1/>";
$form_out_put .= "</form>";
// nOus allons recueillir et traiter le formulaire
//Nous supposons dans cette première mouture que tous les champs seront obligatoires
$message = NULL;
$headers = NULL;
if (!isset($_POST["envoi"])) {
//eventuel message
}else {
$champ = $_POST["field"];
if (in_array("", $champ)){
$text_put_alert = "<center><span class='alert'>Tous les champs sont obligatoires \n<br></span></center>";
}else{
//Traitement si tout est bon
//Les valeurs sont contenues dans le tableau $champ
//Pour atteindre une valeur, $champ[x] , xétant l'index de l'élément dans la définition des étiquettes
$message .= "Ce mail provient du formulaire d'envoi du site <b>$site_url</b>";
$message .= "<hr>";
while(list($index,$valeur) = each($champ)){
$message .= "\n<br>- $tb_etiquette[$index] : <b>$valeur</b> ";
}
$message .= "<HR>Contact Mail est écrit par <a href=mailto:Valdrin_15@msn.com>Valdrin</a>\n
";
$message .= "In Form, We Trust!";
$headers .= "From: EasyForm \n";
$headers .= "X-Mailer: PHP\n";
$headers .= "X-Priority: 0\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$envoi_mail = @mail($email_dest, $email_objet, $message, $headers);
if($envoi_mail ==true) {
$text_put_confirm = "<center><span class='confirm'>Votre envoi a abouti avec succès \n<br></span></center>";
}else{
$text_put_alert = "<center><span class='alert'>Désolé! Le mail n'a pas pu être envoyé \n<br/>Le moteur SMTP est down \n<br></span></center>";
}
}
}
/*APPEL DU FORMULAIRE*/
if(isset($text_put_alert)) echo $text_put_alert;
if(isset($text_put_confirm)) echo $text_put_confirm;
echo $form_out_put;
?>
en résumé ce que je veux c'est pouvoir aller sur ma page, cliquer sur parcourir, aller chercher un fichier et que ca me l'envoit a mon email
ex:, je vais sur mon site, je dit je veux envoyer ce petit shareware de ma job et me l'envoyer a mon email (2go d'espace) sans avoir a passer par outlook ou d'autre programme, simplement par le navigateur
je suis capable de recevoir l'email, avec le contenu text, mais pas le fichier...
j'utilise FILE SEND
mais le fichier ne se rend pas...
ex:, je vais sur mon site, je dit je veux envoyer ce petit shareware de ma job et me l'envoyer a mon email (2go d'espace) sans avoir a passer par outlook ou d'autre programme, simplement par le navigateur
je suis capable de recevoir l'email, avec le contenu text, mais pas le fichier...
j'utilise FILE SEND
mais le fichier ne se rend pas...
le fichier doit passer par le serveur de toute façon.
le problème c'est que les gros fichiers passeront pas.
je ne connais pas la commande pour joindre un fichier à un mail mais je peux te proposer une alternative :
tu peux sotcker le fichier sur ton serveur dans un répertoire temporaire, et tu envoies le lien par e-mail, ensuite tu auto-détruit ton fichier au bout de x jours.
le problème c'est que les gros fichiers passeront pas.
je ne connais pas la commande pour joindre un fichier à un mail mais je peux te proposer une alternative :
tu peux sotcker le fichier sur ton serveur dans un répertoire temporaire, et tu envoies le lien par e-mail, ensuite tu auto-détruit ton fichier au bout de x jours.
je ne veux pas mettre ca sur un serveur, car je veux que mes visiteurs puissent m'envoyer des fichiers, certains sont vieux et ne connaissent pas ces sites là de stockage, donc je veux quelque chose qui est simple, sauf que c'est ca... ca ne fonctionne pas comme je veux
je recois tout, sauf le $"/(*"/$ fichier
au pire avez vous des scripts déja tout fait pour envoyer ca (file send, ou file attachment)
merci
Docteur du pc
je recois tout, sauf le $"/(*"/$ fichier
au pire avez vous des scripts déja tout fait pour envoyer ca (file send, ou file attachment)
merci
Docteur du pc
Citation :
je ne connais pas la commande pour joindre un fichier à un mail
lol moi j'en utilise un , je les trouver ici c'est un scripts mail avec pièce jointe donc tu mail tu met le fichier et tu l''envoy par mail
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumJoindre un fichier dans un formulaire
- solutionsGenerateur formulaire avec envoie de fichier
- ForumFormulaire avec envoi de fichier
- ForumEnregistrer formulaire php dans fichier
- ForumFormulaire fichier texte
- ForumFormulaire php avec fichier joint
- ForumFormulaire fichier
- ForumFormulaire joindre fichier
- solutionsFormulaire avec fichier joint
- ForumFormulaire avec fichier
- Voir plus