Fichiers joint dans formulaire

Résolu/Fermé
val - 4 mars 2011 à 18:46
eternity63 Messages postés 34 Date d'inscription dimanche 6 mars 2011 Statut Membre Dernière intervention 19 janvier 2018 - 21 mars 2011 à 13:56
Bonsoir,

je reviens vers vous car un soucis avec un formulaire la "fonction joindre un fichier".
J'ai trouvé un script mais je n'arrive pas à l'insérer dans MON formulaire

le script est à cette adresse :
https://forum.alsacreations.com/topic-1-54086-1-Formulaire-avec-piece-jointe.html

Le soucis est que j'essaie de l'intégrer à mon formulaire mais ca fait deja 5 ou 6 heures que je fais différents essais sans résultat :
<?php 
define('MAIL_DESTINATAIRE','mon_nom@live.fr'); // remplacer par votre email
define('MAIL_SUJET','Demande de renseignement(s)');

$email_cc = "";

# envoi en copie cachée (option: vide)

$email_bcc = "";

# emplacement de la feuille de styles

$cssform = "webdev_form.css";

$rep = "upload/"; 

$taillemax = 204800;


if(!empty($_POST)){
extract($_POST);
	$valid = true;
 if (empty($_POST['nom'])){
		$valid=false;
		$erreurnom="Vous n'avez pas rempli votre Nom";
	}
 if (empty($_POST['prenom'])){
		$valid=false;
		$erreurprenom="Vous n'avez pas rempli votre Prénom";
	}
 if (empty($_POST['email'])){
		$valid=false;
		$erreuremail="Vous n'avez pas rempli votre Email";
	}
	if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){
		$valid=false;
		$erreuremail="Votre Email n'est pas valide";
	}
	if(empty($email)){
		$valid=false;
		$erreuremail="Vous n'avez pas rempli votre Email";
	}
		$piecejointe = "";

	if(!$erreur && strlen($_FILES['Fichier']['name'])) {

		$fichier = $_FILES['Fichier'];

		# upload du fichier sur le serveur

		$temp = $fichier['tmp_name'];

		$name = $fichier['name'];

		$size = $fichier['size'];

		$destination = $rep.$name;

		if($size > $taillemax)

			$erreur = "Taille du fichier $name > ".(int)($taillemax/1024)." Ko";

		elseif(!@is_uploaded_file($temp))

			$erreur = "Téléchargement du fichier $name impossible";

		elseif(!@move_uploaded_file($temp, $destination))

			$erreur = "Problème de transfert du fichier $name";

		if($erreur) $focus = 7;

		else {

			# lecture du type de fichier

			if(!function_exists('mime_content_type')) {

				function mime_content_type($fichier) {

					# ajouter autant de combinaisons que souhaitées

					$mime = array(

					'.gif' => 'image/gif',

					'.jpg' => 'image/jpeg',

					'.psd' => 'image/x-xwd',

					'.png' => 'image/png',

					'.txt' => 'text/plain',

					'.doc' => 'application/msword',

					'.xls' => 'application/vnd.ms-excel',

					);

					# par défaut

					if(!$type = $mime[strrchr($fichier,'.')]) $type = "application/octet-stream";

					return $type;

				}

			}

			$mimetype = mime_content_type($destination);

			# lecture et conversion du fichier

			if($openf = @fopen($destination, "rb")) {

				$fichier = fread($openf, filesize($destination));

				@fclose($openf);

				# encodage norme RFC 2045

				$piecejointe = chunk_split(base64_encode($fichier));

			} else {

				$erreur = "Problème de lecture du fichier $name";

				$focus = 7;

			}

		}

	

	}
	

if($valid){	

if($valid){	
$mail_entete .= "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
             ."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="utf-8"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
$mail_entete .= "\r\nContent-Transfer-Encoding: base64\r\n";
$mail_entete .= "\r\nContent-Disposition: attachment; filename=\"$name\"\r\n";
$mail_entete .=	"$piecejointe\n--" . $boundary."--\n";

// préparation du corps du mail
$mail_corps = "Nom : $nom\n";
$mail_corps .= "Prénom : $prenom\n";
$mail_corps .= "Email : $email\n";
$mail_corps .= "Télephone : $telephone\n";
$mail_corps .= "Message : $message\n";

 


// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$headers,$mail_corps,$mail_entete)) {

  //Le mail est bien expédié - nettoyage des entrées
  $erreur = "Votre message nous a bien été transmis";
  		unset($nom);
		unset($prenom);
		unset($telephone);
		unset($email);
		unset($message);
		}
		else{
			$erreur = "Une erreur est survenue, votre message n'est pas parti";
		}
	}	
}

?>


mais la réception de l'email est une catastrophe result :
Content-Transfer-Encoding: base64
 
Content-Disposition: attachment; filename=""
 
----
 
 
Nom : 
Prénom : 
Email : 
Télephone : 
Message :                                 


Et là j'ai essayé tellement de combinaisons que je suis à cours d'arguments.
Alors certains me dirons ... Pourquoi ne pas reprendre le script tel quel ? Parce que cette fonction de "fichier joint" je voudrai ensuite l'intégrer sur un gros formulaire de demande de devis...

Je fais les demandes et les réponses au cas où :-)

Merci d'avance pour votre aide

9 réponses

Toi et les formulaires ....
fait voir le code de ton formulaire.
0
lol bonjour eone
J'ai vraiment que des soucis avec ces formulaire :@
 <form action="<? echo $_SERVER['PHP_SELF']?>" method="post">
          <table width="449" border="0" align="center" class="texte_contact">
            <tr>
              <td width="97">&nbsp;</td>
              <td>&nbsp;</td>
            </tr>
            <tr>
              <td><label for="nom">
                <div align="right">Nom :* </div>
                </label></td>
              <td>&nbsp;
                <input name="nom" type="text" class="texte_cellule" id="nom" value="<?php if(isset($nom)) echo $nom;?>"/>
                <span class="error-message">
                <?php if(isset($erreurnom)) echo $erreurnom; ?>
                </span> </td>
            </tr>
            <tr>
              <td><label for="prenom">
                <div align="right">Prénom :* </div>
                </label></td>
              <td width="342">&nbsp;
                <input name="prenom" type="text" class="texte_cellule" id="prenom" value="<?php if(isset($prenom)) echo $prenom;?>"/>
                <span class="error-message">
                <?php if(isset($erreurprenom)) echo $erreurprenom; ?>
                </span> </td>
            </tr>
            <tr>
              <td><label for="email">
                <div align="right">Email :* </div>
                </label></td>
              <td>&nbsp;
                <input name="email" type="text" class="texte_cellule" id="email" value="<?php if(isset($email)) echo $email;?>"/>
                <span class="error-message">
                <?php if(isset($erreuremail)) echo $erreuremail; ?>
                </span> </td>
            </tr>
            <tr>
              <td><label for="domicile">
                <div align="right">Téléphone : </div>
                </label></td>
              <td>&nbsp;
                <input name="telephone" type="text" class="texte_cellule" id="telephone" value="<?php if(isset($telephone)) echo $telephone;?>"/>
              </td>
            </tr>
            <tr>
              <td><label for="message">
                <div align="right">Votre message : </div>
                </label></td>
              <td>&nbsp;
                <textarea name="message" type="text" class="texte_cellule" id="message" />
                <?php if(isset($message)) echo $message;?>
                </textarea>
              </td>
            </tr>
            <tr>
              <td><?		if (file_exists($rep)) { ?>
               
                  <label for="fichier">Pièce jointe</label>
                  <input type="hidden" name="MAX_FILE_SIZE" value="<? echo $taillemax?>">
                  <input type="file" id="fichier" <? if($focus == 7) echo "class=\"focus\"";?> name="Fichier" size="35">
                </td>
                <td>
                  <label>&nbsp;</label>
                  NB : taille du fichier inférieure à
                  <?= (int)($taillemax/1024)?>
                  Ko 
                <?		} ?></td>
              <td><p><br>
                  <br>
                  <label>
                  <input type="image" name="imageField" id="imageField" src="imgs/bt_envoyer.jpg">
                  </label>
                </p>
                <p>&nbsp;</p></td>
            </tr>
          </table>
        </form>


si ça fonctionne sur ce petit formulaire, l'option "joindre un fichier" je dois l'intégrer dans un gros devis c'est pour cette raison que je dois arriver à l'intégrer a mon code d'origine.
D'ailleurs c'est le formulaire "devis" que l'on a travaillé ensemble(enfin... que tu as travaillé lol) pour les "choix multiples"
dur dur pour ma petite tête blonde

Merci eone pour ton aide
0
bon je vais juste corriger les erreurs du formulaire et le reste, ainsi que le mail c'est à toi de voir.

deja au niveau du form tu place cet attribut enctype="multipart/form-data"

-des guillements faut pas oublier de les fermer
-verifier les variables $erreur, $boundary (non defini) ,$focus
-definir $mail_entete ou ne pas mettre d'incrementation au debut
$mail_entete = "MIME-Version: 1.0\r\n";
-ne pas oublier que la balise php c'est <?php et non <?
-creer un bouton submit c'est beaucoup mieux pour des tests
- action="" au niveau du form

bon si tu respectes les consignes ci-dessus le formulaire devrait être valide
0
alors pour les modifications générales ok mais la principale, c'est justement là que je ne sais pas comment faire.
-vérifier les variables $erreur, $boundary (non defini) ,$focus 


Je sais que l'erreur viens de là mais J'ai testé plusieurs possibilité mais ca ne donne rien.
Je n'arrives pas à les placer correctement.
Tu es allez voir le formulaire d'alsacreation ? J'ai mis un lien
0
ton $focus, si tu sais pas quoi en faire tu le retires d'abord pour ce test et déjà pareil pour les $erreurs. On les ajoute normalement quand le script fonctionne déjà (et bien sûr faut remplir le formulaire)
pour la frontière $bondary à toi de la définir.
tu mets une chaine quelconque à caractères simples
réfères toi à ceci : mail, pièces jointes
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ok merci eone je regardes
0
Bien je ne peux pas faire autrement que d'incorporer MON formulaire dans celui de Alsacreation
Je suis dégoutée rien ne fonctionne
J'ai bien compris pour le post mais ca se limite à joindre un fichier word...
Il me faut plusieurs options de formats.
voilà mon code php :
<?php 
error_reporting (E_ERROR | E_WARNING | E_PARSE);

$destinataire = "";
$pageName = "Formulaire de contact";
$entete = "[CentpourSansMots]";

$email_cc = "";

# envoi en copie cachée (option: vide)

$email_bcc = "";

# emplacement de la feuille de styles

$cssform = "css/global.css";

$rep = "upload/"; // ne pas oublier le slash /

# taille max de la pièce jointe (multiple de 1024)

$taillemax = 204800;

if (!empty($_POST)) {

 if (empty($_POST['nom'])){
		$valid=false;
		$erreurnom="Vous n'avez pas rempli votre Nom";
	}
 if (empty($_POST['prenom'])){
		$valid=false;
		$erreurprenom="Vous n'avez pas rempli votre Prénom";
	}
 if (empty($_POST['email'])){
		$valid=false;
		$erreuremail="Vous n'avez pas rempli votre Email";
	}
	if (empty($_POST['telephone'])){
		$valid=true;
		
	}
	if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){
		$valid=false;
		$erreuremail="Votre Email n'est pas valide";
	}
	if(empty($email)){
		$valid=false;
		$erreuremail="Vous n'avez pas rempli votre Email";
	}
	
$erreur = false;

$message = false;

$focus = 0;

		$piecejointe = "";

	if(!$erreur && strlen($_FILES['Fichier']['name'])) {

		$fichier = $_FILES['Fichier'];

		# upload du fichier sur le serveur

		$temp = $fichier['tmp_name'];

		$name = $fichier['name'];

		$size = $fichier['size'];

		$destination = $rep.$name;

		if($size > $taillemax)

			$erreur = "Taille du fichier $name > ".(int)($taillemax/1024)." Ko";

		elseif(!@is_uploaded_file($temp))

			$erreur = "Téléchargement du fichier $name impossible";

		elseif(!@move_uploaded_file($temp, $destination))

			$erreur = "Problème de transfert du fichier $name";

		if($erreur) $focus = 7;

		else {

			# lecture du type de fichier

			if(!function_exists('mime_content_type')) {

				function mime_content_type($fichier) {

					# ajouter autant de combinaisons que souhaitées

					$mime = array(

					'.gif' => 'image/gif',

					'.jpg' => 'image/jpeg',

					'.psd' => 'image/x-xwd',

					'.png' => 'image/png',

					'.txt' => 'text/plain',

					'.doc' => 'application/msword',

					'.xls' => 'application/vnd.ms-excel',

					);

					# par défaut

					if(!$type = $mime[strrchr($fichier,'.')]) $type = "application/octet-stream";

					return $type;

				}

			}

			$mimetype = mime_content_type($destination);

			# lecture et conversion du fichier

			if($openf = @fopen($destination, "rb")) {

				$fichier = fread($openf, filesize($destination));

				@fclose($openf);

				# encodage norme RFC 2045

				$piecejointe = chunk_split(base64_encode($fichier));

			} else {

				$erreur = "Problème de lecture du fichier $name";

				$focus = 7;

			}

		}

	

	}
# pas d'erreur donc on continue

	if(!$erreur) {



		# traitement du tableau $_POST qui contient les paires name => value

		$message_final = "";

		foreach($_POST as $key => $value) {

			# la boucle passe les champs vides ou non désirés

			# pour passer d'autres champs les séparer par |

			if (!strlen($value) || eregi("(MAX_FILE_SIZE|Objet)", $key)) continue;

			$message_final .= "$key : ".strip_tags($value)."\n";

		}

		# formatage du message de confirmation affiché (option)

		# conversion des sauts de ligne et des caractères spéciaux

		$message = ereg_replace("(\n|\r|\r\n)", "<br>", htmlentities($message_final));

		# si $objets est un tableau : Objet = select donc index = $_POST['Objet']

		if(is_array($objets))

			$objet = "$entete ".$objets[$_POST['Objet']];

		# sinon Objet = input donc en français dans le texte !

		else

			$objet = "$entete ".$_POST['Objet'];

		# si l'email n'est pas renseigné on le remplace par celui

		# du destinataire, en ajoutant une alerte au message

		$final_mail = $_POST['Email'];

		if(empty($_POST['Email'])) {

			$final_mail = $destinataire;

			$message_final .= "\nNe pas répondre par mail : email absent.\n";

		}

		# en-têtes

		$headers = "From: ".$final_mail;

		if(strlen($email_cc))

			$headers .= "\nCC: ".$email_cc;

		if(strlen($email_bcc))

			$headers .= "\nBCC: ".$email_bcc;

		# hôte expéditeur

		$message_final .= "Hôte : ".gethostbyaddr($_SERVER['REMOTE_ADDR']);

		# si pièce jointe on ajoute l'en-tête spécifique avec séparateurs

		if(strlen($piecejointe)) {

$boundary = "/-------".md5(uniqid(rand()))."-------/"; // séparateur
$headers .= "\nMIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"$boundary\"\n";
$message_final =
"This is a multi-part message in MIME format.\n--$boundary\n".
"Content-Type: text/plain; charset=UTF-8\n".
"Content-Transfer-Encoding: 7bit\n\n".
"$message_final\n\n--$boundary\n".
"Content-Type: $mimetype; name=\"$name\"\n".
"Content-Transfer-Encoding: base64\n".
"Content-Disposition: attachment; filename=\"$name\"\n\n".
"$piecejointe\n--".
$boundary."--\n";

		}

		# envoi du mail

		if (@mail($destinataire, stripslashes($objet), stripslashes($message_final), $headers)) {

			@unlink($destination); 

			$erreur = "Votre message nous a bien été transmis";
		unset($nom);
		unset($prenom);
		unset($telephone);
		unset($email);
		unset($message);
			

		 } else {
			$erreur = "Une erreur est survenue, votre message n'est pas parti";
		}
	}	
}


?>


là j'abandonne ca fait trop d'heures de perdues j'en ai ras le bol


Merci beaucoup en tout les cas pour ton aide eone
Bonne soirée et bon week end
0
Utilisateur anonyme
5 mars 2011 à 21:34
je vais te refaire le code demain ou lundi parce que là je n'ai vraiment pas le temps.

De même!
0
mlixpo Messages postés 2 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 20 mars 2011
20 mars 2011 à 21:29
Bonjour,

Je voudrais faire un formulaire mais impossible de l'adapter avec le code ci-dessous
(10 h de recherche) alors si vous avez une solution MERCI :(


<form action="#" method="post" id="sendemail">
<ol><li>
<label for="name">Name (required)</label>
<input id="name" name="name" class="text" />
</li><li>
<label for="email">Email Address (required)</label>
<input id="email" name="email" class="text" />
</li><li>
<label for="website">Website</label>
<input id="website" name="website" class="text" />
</li><li>
<label for="message">Your Message</label>
<textarea id="message" name="message" rows="8" cols="50"></textarea>
</li><li>
<input type="image" name="imageField" id="imageField" src="images/submit.gif" class="send" />
<div class="clr"></div>
</li></ol>
</form>
0
mlixpo Messages postés 2 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 20 mars 2011
20 mars 2011 à 21:55
J'ai oublie :)

1.<?php
2.
3.$destinataire= "#";
4.$objet = "Formulaire de contact";
5.$headers = "From: monsite.fr\n\r";
6.$headers .= "MIME-Version: 1.0\n\r";
7.$headers .= "Content-Type: text/html; charset=iso-8859-1\n\r";
8.
9.$nom = $_POST['nom'];
10.$prenom = $_POST['prenom'];
13.$e_mail = $_POST['e_mail'];
17.$message = $_POST['message'];
18.
19.$msg = "nom = $nom
20.prenom = $prenom
23.email = $e_mail
27.message = $message";
28.
29.echo nl2br($msg);
30.
31.mail($destinataire, $objet, $headers, $msg);
32.echo "formulaire envoyé.";
33.
34.?>
0
eternity63 Messages postés 34 Date d'inscription dimanche 6 mars 2011 Statut Membre Dernière intervention 19 janvier 2018 1
21 mars 2011 à 09:40
Le formulaire est conçu pour joindre une pièce jointe
Le votre est un formulaire simple.
Déjà je vous conseil de le mettre en UTF-8 pour éviter les problèmes de caractères.
Autrement voici un exemple :
<?php if(isset($erreur)){ echo "<p>$erreur</p>"; }?>

<form action="<? echo $_SERVER['PHP_SELF']?>" method="post">
  <table width="355" border="0">
    <tr>
      <td width="117"><label for="nom">
        <div align="right">Nom :* </div>
        </label></td>
      <td width="228">&nbsp;
        <input name="nom" type="text" class="texte" id="nom" value="<?php if(isset($nom)) echo $nom;?>"/>
        <br />
        <span class="error-message">
        <?php if(isset($erreurnom)) echo $erreurnom; ?>
        </span> </td>
    </tr>
    <tr>
      <td><label for="prenom">
        <div align="right">Prénom :* </div>
        </label></td>
      <td>&nbsp;
        <input name="prenom" type="text" class="texte" id="prenom" value="<?php if(isset($prenom)) echo $prenom;?>"/>
        <br />
        <span class="error-message">
        <?php if(isset($erreurprenom)) echo $erreurprenom; ?>
        </span> </td>
    </tr>
    <tr>
      <td><label for="website">
        <div align="right">Website :* </div>
        </label></td>
      <td>&nbsp;
        <input name="website" type="text" class="texte" id="website" value="<?php if(isset($website)) echo $website;?>"/>
        <br />
        <span class="error-message">
        <?php if(isset($erreurwebsite)) echo $erreurwebsite; ?>
        </span> </td>
    </tr>
    <tr>
      <td><label for="email">
        <div align="right">Email :* </div>
        </label></td>
      <td>&nbsp;
        <input name="email" type="text" class="texte" id="email" value="<?php if(isset($email)) echo $email;?>"/>
        <br />
        <span class="error-message">
        <?php if(isset($erreuremail)) echo $erreuremail; ?>
        </span> </td>
    </tr>
    <tr>
      <td><label for="message">
        <div align="right">Votre message :* </div>
        </label></td>
      <td>&nbsp;
        <textarea name="message" type="text" class="texte" id="message" />
        <?php if(isset($message)) echo $message;?>
        </textarea>
        <br />
        <span class="error-message">
        <?php if(isset($erreurmessage)) echo $erreurmessage; ?>
        </span></td>
    </tr>
    <tr>
      <td><div align="right"></div></td>
      <td><span class="Textemini">&nbsp;Les champs marqués; d'un * sont obligatoires</span>
        <p>&nbsp;
          <input type="submit" value="Envoyer" id"envoyer"/>
        </p></td>
    </tr>
  </table>
</form>


Code php :
<?php 
define('MAIL_DESTINATAIRE','votre_adresse@email.fr'); // remplacer par votre email
define('MAIL_SUJET','Demande de renseignement(s)');

if(!empty($_POST)){
extract($_POST);
	$valid = true;
 if (empty($_POST['nom'])){
		$valid=false;
		$erreurnom="Vous n'avez pas saisie votre Nom";
	}
 if (empty($_POST['prenom'])){
		$valid=false;
		$erreurprenom="Vous n'avez pas saisie votre Prénom";
	}
 if (empty($_POST['website'])){
		$valid=false;
		$erreurwebsite="Vous n'avez pas saisie l'URL de votre site";
	}		

 if (empty($_POST['email'])){
		$valid=false;
		$erreuremail="Vous n'avez pas saisie votre Email";
	}
	if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){
		$valid=false;
		$erreuremail="Votre Email n'est pas valide";
	}
	if(empty($email)){
		$valid=false;
		$erreuremail="Vous n'avez pas saisie votre Email";
	}

 if (empty($_POST['message'])){
		$valid=false;
		$erreurmessage="Vous n'avez pas saisie votre Message";
	}

if($valid){
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
             ."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="utf-8"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

// préparation du corps du mail
$mail_corps = "Nom : $nom\n";
$mail_corps .= "Prénom : $prenom\n";
$mail_corps .= "URL Site : $website\n";
$mail_corps .= "Email : $email\n";
$mail_corps .= "Message : $message\n";


// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {

  //Le mail est bien expédié
  $erreur = "Votre message nous a bien été transmis";
  		unset($nom);
		unset($prenom);
		unset($website);
		unset($email);
		unset($message);
		}
		else{
			$erreur = "Une erreur est survenue, votre message n'est pas parti";
		}
	}	
}

?>

en espérant avoir répondu à votre question...
0
Utilisateur anonyme
21 mars 2011 à 11:51
:) je te laisse résoudre ce problème
0
tu es vraiment adorable eone
mais tu n'es pas obligé tu en as déjà beaucoup fait pour ce formulaire.
c'est que je ne suis pas assez experte pour dépouiller ce script et l'incorporer au miens.

Dis moi autrement, tu travailles de temps en temps en freelance pour le développement?
Je veux dire payé bien sur... :p
0
voici ton code comme promis :)
<?php    

$boundary=md5(uniqid(rand()));   
define('MAIL_DESTINATAIRE','you@domaine.fr'); // remplacer par votre email   
define('MAIL_SUJET','Demande de renseignement(s)');   
$rep = "upload/";    

$taillemax = 204800;   


if(!empty($_POST)){   
extract($_POST);   
 $valid = true;   
 if (empty($_POST['nom'])){   
  $valid=false;   
  $erreurnom="Vous n'avez pas rempli votre Nom";   
 }   
 if (empty($_POST['prenom'])){   
  $valid=false;   
  $erreurprenom="Vous n'avez pas rempli votre Prénom";   
 }   
 if (empty($_POST['email'])){   
  $valid=false;   
  $erreuremail="Vous n'avez pas rempli votre Email";   
 }   
 if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){   
  $valid=false;   
  $erreuremail="Votre Email n'est pas valide";   
 }   
 if(empty($email)){   
  $valid=false;   
  $erreuremail="Vous n'avez pas rempli votre Email";   
 }   
  $piecejointe = "";   

 if(strlen($_FILES['Fichier']['name'])) {   

  $fichier = $_FILES['Fichier'];   

  # upload du fichier sur le serveur   

  $temp = $fichier['tmp_name'];   

  $name = $fichier['name'];   

  $size = $fichier['size'];   

  $destination = $rep.$name;   

  if($size > $taillemax){   

   $erreur = "Taille du fichier $name > ".(int)($taillemax/1024)." Ko";}   

  elseif(!@is_uploaded_file($temp)){   

   $erreur = "Téléchargement du fichier $name impossible";}   

  elseif(!@move_uploaded_file($temp, $destination)){   

   $erreur = "Problème de transfert du fichier $name";}   

  else {   

   # lecture du type de fichier   

   if(!function_exists('mime_content_type')) {   

    function mime_content_type($fichier) {   

     # ajouter autant de combinaisons que souhaitées   

     $mime = array(   

     '.gif' => 'image/gif',   

     '.jpg' => 'image/jpeg',   

     '.psd' => 'image/x-xwd',   

     '.png' => 'image/png',   

     '.txt' => 'text/plain',   

     '.doc' => 'application/msword',   

     '.xls' => 'application/vnd.ms-excel',   

     );   

     # par défaut   

     if(!$type = $mime[strrchr($fichier,'.')]) $type = "application/octet-stream";   
     return $type;   

    }   

   }   
      
   $mimetype = mime_content_type($destination);   
   //$fichier=file_get_contents($destination);   
   $fp   = fopen($destination, "rb");    
   $fichier = fread($fp,filesize($destination));   
   fclose($fp);   
   $piecejointe =chunk_split(base64_encode($fichier));   

  }   

    

 }   
    



if($valid){   
//entete   
$mail_entete = "From:".$_POST['email']."\r\n";   
$mail_entete .= "MIME-Version: 1.0\r\n";   
$mail_entete .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n\n";   


// préparation du corps du mail   
$mail_corps ="--". $boundary ."\n";   
$mail_corps .="Content-Type: text/plain; charset=ISO-8859-1\r\n\n";   
$mail_corps .= "Nom : $nom\n";   
$mail_corps .= "Prénom : $prenom\n";   
$mail_corps .= "Email : $email\n";   
$mail_corps .= "Télephone : $telephone\n";   
$mail_corps .= "Message : $message\n";   
//on joint le fichier    
$mail_corps =$mail_corps."--". $boundary ."\n";   
$mail_corps .="Content-Type: $mimetype; name=\"$name\"\r\n";   
$mail_corps .= "Content-Transfer-Encoding: base64\r\n";   
$mail_corps.= "Content-Disposition: attachment; filename=\"$name\"\r\n\n   
 $piecejointe";   
$mail_corps = $mail_corps . "--" . $boundary ."--";   


// envoi du mail   
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {   

  //Le mail est bien expédié - nettoyage des entrées   
  $erreur = "Votre message nous a bien été transmis";   
    unset($nom);   
  unset($prenom);   
  unset($telephone);   
  unset($email);   
  unset($message);   
  }   
  else{   
   $erreur = "Une erreur est survenue, votre message n'est pas parti";   
  }   
 }    
}   

?>   

c'est la partie php, tu corriges les petites erreurs de syntaxe et tu définis la variable $erreur ça je n'ai pas trop regardé, je me suis plutôt attardé sur la frontière et la mise en place des entêtes et du message.
Pour la validité du script et ma tranquillité ce soir, je te demande de ne surtout pas retirer les retours "\n","\r", car je sais que tu es capable de le faire ^^.

Bon arranges toi avec la partie html aussi qui est un vrai bazar.

La programmation pour moi c'est une passion et non une profession. Inscris toi on en reparle par MP.
0
whouaaaaaaa ça marcheeeeeeeeeeee
Je suis trop heureuse là
Un ENORME MERCI eone
En plus incorporé à MON formulaire, je vais pouvoir le mettre dans mon devis

Tu es vraiment le meilleurs
Je te laisses tranquille pour ce soir lol
Je ne touche à rien juste......encodage UTF-8 mais ca je sais faire :$

Je m'inscris comme ça on pourras reparler en privé


Encore MERCI eone bonne soirée
0