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
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:

<?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">&nbsp;</td>
	<td width="29">&nbsp;</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">&nbsp;</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">&nbsp;</td>
	<td width="29">&nbsp;</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 &eacute;v&eacute;nement ></a><br />
		ajout un pack codec gratuit dans la rubrique logiciels <br />

		&nbsp;<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">&nbsp;</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">&nbsp;</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face="Comic Sans MS">- les fichiers office jusqu'&agrave; 2003   compris (Word, Excel, Access, PowerPoint,...)</font></p>
	  <p class="Style7"><font face="Comic Sans MS">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - les dossiers ZIP, RAR</font></p>
	  <p class="Style7"><font face="Comic Sans MS">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - les fichiers 1-2-3</font></p>
	  <p class="Style7"><font face="Comic Sans MS">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Acrobat (PDF)</font></p>
	  <p class="Style7"><font face="Comic Sans MS">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Autres: backup, Bestcrypt, IE,   lotus note, lotus word pro,money, et d'autres, si votre type de fichier n'est   pas dans la &quot;liste&quot; 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&eacute;. </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&eacute;crire, mettre l'extention ce qui est apr&egrave;s le point si vous le connaiss&eacute;. (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>&nbsp;</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 &eacute;tudiant,   donc je suis en cours certaines semaines, d&egrave;s que je re&ccedil;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&eacute;lais sont variable,   c'est a titre priv&eacute; que j'essai de rendre service, le contenu des fichiers ne   sera en aucun cas divulgu&eacute;.</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&egrave;s co&ucirc;teux. Merci de votre compr&eacute;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 &eacute;t&eacute; retrouver. </font></p>
  <p align="left" class="Style15">PS: si aucune r&eacute;ponse, ne pas &eacute;siter a me r&eacute;&eacute;crire, (au bout d'une semaine environ), je ne fais pas de relance dans mes r&eacute;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'&eacute;cole donc r&eacute;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">&nbsp;</td>
	<td width="29">&nbsp;</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">&nbsp;</td>
	<td width="215">&nbsp;</td>
	<td width="50">&nbsp;</td>
	<td width="661">&nbsp;</td>
	<td width="8">&nbsp;</td>
	<td width="29">&nbsp;</td>
	</tr>
</table>
</body>
</html>

A voir également:

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
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.
0
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
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>
0