PHP Formulaire avec Pièce jointe
Nico_
Messages postés
1220
Date d'inscription
Statut
Membre
Dernière intervention
-
Nico_ Messages postés 1220 Date d'inscription Statut Membre Dernière intervention -
Nico_ Messages postés 1220 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite intégrer l'envoi de pièce jointe dans mon formulaire, mais je ne sais pas comment !! (il me manque juste tout ce qui conserne le bouton parcourir, et l'envoi)
INFO:
Format de la page du formulaire PHP
Taille de la pièce jonte : jusqu'à 750 Mo
Type de fichiers : tous
le dossier temporaire : upload
Merci pour ceux qui pourrons m'aider.
VOICI LE CODE COMPLET DE LA PAGE:
Je souhaite intégrer l'envoi de pièce jointe dans mon formulaire, mais je ne sais pas comment !! (il me manque juste tout ce qui conserne le bouton parcourir, et l'envoi)
INFO:
Format de la page du formulaire PHP
Taille de la pièce jonte : jusqu'à 750 Mo
Type de fichiers : tous
le dossier temporaire : upload
Merci pour ceux qui pourrons m'aider.
VOICI LE CODE COMPLET DE LA PAGE:
<?php
// N'afficher que les erreurs, pas les avertissements...
ini_set("error_reporting", "E_ALL & ~E_NOTICE");
// Adresse de réception du formulaire
$email_dest = "MON@dresse.mail";
if ($_POST['envoi']) {
// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: Recherche <Mon@dresse.mail>\n";
$headers .="Content-Type: text/html; charset=iso-8859-1 \n";
$subject = "Divers";
$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:http:Merci.html");
exit();
} // Fin du else
} // Closing if edit
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- DW6 -->
<head>
<!-- Copyright 2007 Toute reproduction est interdite. -->
<title>Contact pour Mot de passe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="../independant/mm_training.css" type="text/css" />
<style type="text/css">
<!--
.Style1 {
font-size: 36px;
font-style: italic;
}
.Style4 {
color: #CC00CC;
font-size: 14px;
font-family: "Comic Sans MS", "Courier New";
}
.Style6 {font-size: 18px}
.Style7 {font-size: 13px}
.Style14 {color: #0000CC; font-family: "Comic Sans MS", "Courier New"; font-size: 14px; }
.Style15 {font-size: 13px; font-family: "Comic Sans MS", "Courier New"; }
.Style16 {
font-size: 13px;
color: #3333CC;
font-family: "Comic Sans MS", "Courier New";
}
.Style17 {color: #0000CC}
.Style18 {
font-family: "Comic Sans MS", "Courier New";
font-size: 14px;
color: #FF0000;
}
.Style19 {font-size: 24px}
.Style20 {color: #FF3300}
-->
</style>
<script language="JavaScript">function verifSelection() {if (document.mail_form.champ1.value == "") {
alert("Tu es qui? Merci !!!")
return false
} if (document.mail_form.zone_email.value == "") {
alert("Je ne pourais pas vous recontactez !!!")
return false
}
invalidChars = " /:,;'"
for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
if (document.mail_form.zone_email.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.mail_form.zone_email.focus()
return false
}
}
atPos = document.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.')
document.mail_form.zone_email.focus()
return false
}
if (document.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.')
document.mail_form.zone_email.focus()
return false
}
periodPos = document.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.')
document.mail_form.zone_email.focus()
return false
}
if (periodPos+3 > document.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.')
document.mail_form.zone_email.focus()
return false
}if (document.mail_form.zone_texte.value == "") {
alert("Merci de metre le type de fichier par exemple (.doc; ZIP;...)")
return false
} } // Fin de la fonction
</script>
</head>
<body bgcolor="#64748B">
<table border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#26354A">
<td width="15" nowrap="nowrap"><img src="../independant/mm_spacer.gif" alt="" width="15" height="1" border="0" /></td>
<td height="70" colspan="3" align="center" nowrap="nowrap" class="logo Style1 Style19">Infoxp, Contact </td>
<td width="8"> </td>
<td width="29"> </td>
</tr>
<tr bgcolor="#FF6600">
<td colspan="6"><img src="../independant/mm_spacer.gif" alt="" width="1" height="4" border="0" /></td>
</tr>
<tr bgcolor="#D3DCE6">
<td colspan="6"><img src="../independant/mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
</tr>
<tr bgcolor="#FFCC00">
<td width="15" nowrap="nowrap"> </td>
<td colspan="3" height="24">
<table border="0" cellpadding="0" cellspacing="0" id="navigation">
<tr>
<td class="navText" align="center" nowrap="nowrap"><a href="../index.html">ACCUEIL</a></td>
<td class="navText" align="center" nowrap="nowrap"><a href="../Sommaire.html">SOMMAIRE</a></td>
<td class="navText" align="center" nowrap="nowrap"><a href="../Logiciels.html">LOGICIELS</a></td>
<td class="navText" align="center" nowrap="nowrap"><a href="../espace_priver/Sommaire.html">ESPACE PRIVE </a></td>
<td class="navText" align="center" nowrap="nowrap"><a href="../cours/Sommaire des cours.php">LES COURS D'ELECTRICITE</a></td>
<td class="navText" align="center" nowrap="nowrap"><a href="form.php">CONTACTEZ-NOUS</a></td>
</tr>
</table>
</div></td>
<td width="8"> </td>
<td width="29"> </td>
</tr>
<tr bgcolor="#D3DCE6">
<td colspan="6"><img src="../independant/mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
</tr>
<tr bgcolor="#FF6600">
<td colspan="6"><img src="../independant/mm_spacer.gif" alt="" width="1" height="4" border="0" /></td>
</tr>
<tr bgcolor="#D3DCE6">
<td colspan="2" valign="top" bgcolor="#26354A"><img src="../Img/Win_XP.gif" width="228" height="274" /><br />
<table border="0" cellspacing="0" cellpadding="0" width="230">
<tr>
<td width="230" class="sidebarText" id="padding"><a href="javascript:;" class="Style20">Nouveau événement ></a><br />
ajout un pack codec gratuit dans la rubrique logiciels <br />
<br /> </td>
</tr>
</table>
<p align="center" class="Style4"><a href="javascript:window.external.AddFavorite('http://infoxp.leobaillard.org')" class="Style20">Ajouter ce site a vos Favoris</a> </p>
<p align="center" class="Style4"> </p>
<p align="center" class="Style4"></p></td>
<td width="50" valign="top"><img src="../independant/mm_spacer.gif" alt="" width="50" height="1" border="0" /></td>
<td width="661" valign="top"><p align="center" class="Style6"> </p>
<p align="center" class="Style6"><font face="Comic Sans MS" color="#ff0000">AVANT TOUT, MERCI DE LIRE CE QUI SUIT.</font></p>
<p><font face="Comic Sans MS" color="#ff00ff" size="4">Voici les fichier, dossier que le logiciel peux traiter:</font></p>
<p class="Style7"> <font face="Comic Sans MS">- les fichiers office jusqu'à 2003 compris (Word, Excel, Access, PowerPoint,...)</font></p>
<p class="Style7"><font face="Comic Sans MS"> - les dossiers ZIP, RAR</font></p>
<p class="Style7"><font face="Comic Sans MS"> - les fichiers 1-2-3</font></p>
<p class="Style7"><font face="Comic Sans MS"> - Acrobat (PDF)</font></p>
<p class="Style7"><font face="Comic Sans MS"> - Autres: backup, Bestcrypt, IE, lotus note, lotus word pro,money, et d'autres, si votre type de fichier n'est pas dans la "liste" si dessus me le demander par le formulaire si dessous.</font></p>
<p class="Style18">Je ne peux plus retrouver les mots de passe sur les fichier money pour le moment, processeur grillé. </p>
<p class="Style7"><font face="Comic Sans MS" color="#008080">Votre fichier est au dessus, remplir le formulaire.</font><font face="Comic Sans MS" color="#008080"></font></p>
<p class="Style16">Je ne trouve pas mon fichier, remplire le formulaire et décrire, mettre l'extention ce qui est après le point si vous le connaissé. (EX: .db; ...) </p>
<form name="mail_form" method="post" action="<?=$_SERVER['../PHP_SELF']?>" onSubmit="return verifSelection()">
<div align="center"></div>
<table width="619" border="3" align="center">
<p align="center"></p><tr>
<td><span class="Style14">Nom et ou Prénom:</span></td>
<td><input name="champ1" type="text"></td>
</tr><tr>
<td width><span class="Style14">E-Mail:</span></td>
<td width><p>
<input name="zone_email" type="text">
<strong><span class="Style18"> MERCI DE BIEN VERRIFIER QUE VOTRE ADRESSE EST JUSTE, CAR IL YA BEAUCOUP DE FAUSE ADRESSE. MERCI DE VOTRE ATTENTION.</span></strong></p> </td>
</tr><tr>
<td valign="top"><span class="Style14">Information concernant le fichier, le dossier:</span></td>
<td><textarea name="zone_texte" cols="50" rows="12">Type de fichier:
Information le concernant:</textarea></td>
</tr><tr>
<td height="21" 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="Nom et ou Prénom:"><input name="titre_email" type="hidden" value="E-Mail:"><input name="titre_zone" type="hidden" value="Information concernant le fichier, le dossier:"></td>
<td> </td>
</tr>
</table>
<p align="left" class="Style15"><font color="#3366ff">Les fichiers ne sont pas traiter en ligne, mais directement sur le Pc, merci de ne pas envoyer des fichiers contenant des virus, vers,...</font></p>
<p align="left" class="Style15"><font color="#3366ff">Je suis encore étudiant, donc je suis en cours certaines semaines, dès que je reçois votre mail, je vous en renvoi un et vous m'en renvoyer un avec le fichier bloquer.</font></p>
<p align="left" class="Style15"><font color="#3366ff">Les délais sont variable, c'est a titre privé que j'essai de rendre service, le contenu des fichiers ne sera en aucun cas divulgué.</font></p>
<p align="left" class="Style15"><font color="#3366ff">Il se peux que je ne puisse pas retrouver le mot de passe, me pas m'en vouloir, les logiciels sont très coûteux. Merci de votre compréhension.</font></p>
<p align="left" class="Style15"><font color="#3366ff">Dans tout les cas je vous renvois un mail avec ou sans le mot de passe suivant ce qui a été retrouver. </font></p>
<p align="left" class="Style15">PS: si aucune réponse, ne pas ésiter a me réécrire, (au bout d'une semaine environ), je ne fais pas de relance dans mes réponses, faire aussi attention que le mail ne soit pas mis dans votre dossier spam/virus/a supprimer/autres.</p>
<p align="left" class="Style15"><span class="Style17">Actuellement plus d'école donc réponse dans les deux jours normalement.</span></p>
<p align="center" class="Style15">
<input type="reset" name="Reset" value="Effacer" />
<input type="submit" name="envoi" value="Envoyer" />
</p>
<div align="center">
<div align="center" class="Style15"><a href="../index.html">Retour Accueil/Annuler </a></div>
</div>
</form>
</td>
<td width="8"> </td>
<td width="29"> </td>
</tr>
<tr bgcolor="#D3DCE6">
<td colspan="6"><img src="../independant/mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
</tr>
<tr>
<td width="15"> </td>
<td width="215"> </td>
<td width="50"> </td>
<td width="661"> </td>
<td width="8"> </td>
<td width="29"> </td>
</tr>
</table>
</body>
</html>
Configuration: Windows XP Internet Explorer 7.0
2 réponses
-
Salut,
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. -
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
<?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>