Page 1 sur 1

formulaire avec piece jointe qui ne fonctionne pas

Posté : 09 août 2010, 14:17
par emmanuellyon
Bonjour,

Débutant en PHP, j'ai réussi à construire une formulaire avec pièce jointe et à me l'envoyer par mail.
Ce formulaire fonctionne bien chez free et un autre herbergeur mais pas chez mon herbergeur actuel (planethoster) : il n'y a pas de pièce jointe.
J'ai passé des heures à vérifier, modifier, tester mais rien n'y...
Si quelqu'un a une idée, je suis preneur. Merci d'avance.
Emmanuel.

NB : il y a bien multipart/mixed
l'input de la pièce jointe est "attach"
l'adresse $to est fictive
<?php

if(isset($_POST) && isset($_POST['email'])){
    extract($_POST);
     if (!empty($email)&&!empty($nom)&&!empty($tel)&&!empty($imprimer)){

$to = "[email protected]";
$sujet = "demande de :  $nom<$email> ";
$entetes = "From: $nom<$email>\r\n";
$entetes .= "MIME-version: 1.0\n";
$entetes .= "Content-type: multipart/mixed; ";
$entetes .= "boundary=\"Message-Boundary\"\n";

// corps du mail en PLAIN
$msg = "--Message-Boundary\n";
$msg .= "Content-type: text/plain; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: 8bit\n";
$msg .= "demande\n
$message\n";

// traitement pièce jointe
if (is_uploaded_file($attach)) {
$contenu = file_get_contents($attach);
$msg .= "\n\n--Message-Boundary\n"; 
$msg .= "Content-type: $attach_type; name=\"$attach_name\"\n";
$msg .= "Content-Transfer-Encoding: BASE64\n";
$msg .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n";
$msg .= chunk_split(base64_encode($contenu));
  }
	
// envoie du mail
mail($to,$sujet,$msg,$entetes);

 print "Votre demande a bien été envoyé.";
    }
    else{
        print "Merci de remplir tous les champs…";
    }
}
?>


Re: formulaire avec piece jointe qui ne fonctionne pas

Posté : 09 août 2010, 16:13
par stealth35
essaye avec multipart/alternative a la place de multipart/mixed :wink:

Re: formulaire avec piece jointe qui ne fonctionne pas

Posté : 09 août 2010, 16:39
par emmanuellyon
Merci pour ta réponse mais cela ne fonctionne toujours pas... :cry:

Je me suis trompé en disant qu'il y avait bien le multipart/mixed... Je voulais dire qu'il y avait bien :
<FORM encType=multipart/form-data method=post>

Re: formulaire avec piece jointe qui ne fonctionne pas

Posté : 09 août 2010, 16:45
par stealth35
ta bien changé ici :
$entetes .= "Content-type: multipart/mixed; ";
?

Re: formulaire avec piece jointe qui ne fonctionne pas

Posté : 09 août 2010, 16:57
par emmanuellyon
Oui, j'ai bien remplacé mixed par alternative à cet endroit.

Et d'après ce que j'ai compris, "alternative" sert lorsque l'on du texte en plain et en html. Je ne veux mon texte qu''en plain.

Merci quand même.

Re: formulaire avec piece jointe qui ne fonctionne pas

Posté : 09 août 2010, 23:54
par emmanuellyon
bonsoir,

ca y est, cela fonctionne et le problème venait de la configuration des serveurs de mon hébergeur : variable register_globals.
il a fait la modif.