PHP Formulaire avec Pièce jointe
Fermé
Nico_
Messages postés
1219
Date d'inscription
vendredi 29 décembre 2006
Statut
Membre
Dernière intervention
15 mars 2016
-
31 août 2007 à 14:25
Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 - 31 août 2007 à 19:21
Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 - 31 août 2007 à 19:21
A voir également:
- PHP Formulaire avec Pièce jointe
- 1 pièce jointe - Guide
- Formulaire de réclamation facebook - Guide
- Pièce d'identité - Accueil - Services publics
- Easy php - Télécharger - Divers Web & Internet
- Civilité sur un formulaire - Forum VB / VBA
2 réponses
bbar
Messages postés
436
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
31 octobre 2008
140
31 août 2007 à 16:56
31 août 2007 à 16:56
Salut,
dans un premier temps, le formulaire en lui même :
il va te falloir les champs suivants :
après cela, dans la balise de formulaire, il faut lui dire qu'on fait de l'échange de fichier avec l'option enctype="multipart/form-data". Donc ligne 213, il faut que tu aies ça maintenant :
deuxièmement, le script php :
d'abord récupérer le fichier :
après ça, il faut transformer le fichier pour le passer en pièce jointe. Je te laisse voir là : https://www.vulgarisation-informatique.com/mail.php c'est bien mieux expliqué que ce que ne saurais faire.
dans un premier temps, le formulaire en lui même :
il va te falloir les champs suivants :
<input type="file" name="nomduchamp"> // champ pour aller chercher le fichier <input type="hidden" name="MAX_FILE_SIZE" value="10000000"> // champ caché pour indiquer la taille max du fichier (en octet) // d'autres champs si t'as besoin
après cela, dans la balise de formulaire, il faut lui dire qu'on fait de l'échange de fichier avec l'option enctype="multipart/form-data". Donc ligne 213, il faut que tu aies ça maintenant :
<form name="mail_form" method="post" action="<?=$_SERVER['../PHP_SELF']?>" onSubmit="return verifSelection()" enctype="multipart/form-data">
deuxièmement, le script php :
d'abord récupérer le fichier :
if (is_uploaded_file($_FILES['nomduchamp']['tmp_name'])) { // dans le cas où le fichier a été chargé correctemment dans le répertoire temporaire $nomfichier = $_FILES['nomduchamp']['tmp_name']; // perso, j'aime pas travailler avec des variables superglobales } else { // en cas d'erreur de chargement, on affiche l'erreur echo "erreur de copie : ".$_FILES['nomduchamp']['error']; }
après ça, il faut transformer le fichier pour le passer en pièce jointe. Je te laisse voir là : https://www.vulgarisation-informatique.com/mail.php c'est bien mieux expliqué que ce que ne saurais faire.
Nico_
Messages postés
1219
Date d'inscription
vendredi 29 décembre 2006
Statut
Membre
Dernière intervention
15 mars 2016
189
31 août 2007 à 19:21
31 août 2007 à 19:21
Bonsoir,
J'ai essayer les aides de bbar, je le remerci.
Je ne parvient toujours pas a recevoir la pièce jointe.
Si vous pouvez faire un exemple sur le formulaire si dessous Merci d'avance, Bonne soirée
J'ai essayer les aides de bbar, je le remerci.
Je ne parvient toujours pas a recevoir la pièce jointe.
Si vous pouvez faire un exemple sur le formulaire si dessous Merci d'avance, Bonne soirée
<?php $email_dest = "MON ADRESSE"; if ($_POST['envoi']) { // E-mail headers: $headers ="MIME-Version: 1.0 \n"; $headers .="From: ON VEUX ME PARLER<MON ADRESSE>\n"; $headers .="Content-Type: text/html; charset=iso-8859-1 \n"; $subject = "C'EST POUR MOI"; $partie_entete = "<html><head> <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1> </head> <body bgcolor=#FFFFFF>"; for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) { $partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>"; } if ($_POST['nbre_zone_email'] != 0) { $partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>"; } if ($_POST['nbre_zones_texte'] != 0) { $partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>"; $partie_zone_texte = stripslashes($partie_zone_texte); } $fin = "</body></html>"; $sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin; // Send the e-mail if (@!mail($email_dest,$subject,$sortie,$headers)) { echo("Envoi du formulaire impossible"); } else { // Closing if !mail... // Renvoi à la page de remerciement header("Location:Merci.html"); exit(); } // Fin du else } // Closing if edit ?><html><head><script language="JavaScript">function verifSelection() {if (mail_form.champ1.value == "") { alert("Tu es qui? Merci") return false } if (mail_form.zone_email.value == "") { alert("Je ne pourrais pas te répondre!!") return false } invalidChars = " /:,;'" for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters? badChar = invalidChars.charAt(i) if (mail_form.zone_email.value.indexOf(badChar,0) > -1) { alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.") mail_form.zone_email.focus() return false } } atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol if (atPos == -1) { alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } periodPos = mail_form.zone_email.value.indexOf(".",atPos) if (periodPos == -1) { // and at least one "." after the "@" alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.') mail_form.zone_email.focus() return false }} // Fin de la fonction </script></head><body><form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()"> <div align="center"></div> <p align="center"> <table width="566" border="0" align="center"> <p align="center"> </p><tr> <td><font face="Verdana" size="2">Mon Prénom</font></td> <td><input name="champ1" type="text"></td> </tr><tr> <td width><font face="Verdana" size="2">Adresse mail</font></td> <td width><input name="zone_email" type="text"></td> </tr><tr> <td valign="top"><font face="Verdana" size="2">info:</font></td> <td><textarea name="zone_texte" cols="50" rows="10"></textarea></td> </tr><tr> <td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="1"> <input name="nbre_zones_texte" type="hidden" value="1"> <input name="nbre_zone_email" type="hidden" value="1"> <input name="titre_champ1" type="hidden" value="Mon Prénom"><input name="titre_email" type="hidden" value="Adresse mail"><input name="titre_zone" type="hidden" value="info:"></td> <td><div align="center"> <input type="reset" name="Reset" value="Effacer"> <input type="submit" name="envoi" value="Envoyer"> </div></td> </tr> </table> <div align="center"></div> </form></body></html>