Bonjour,
J'ai un formulaire en PHP qui permet aux visiteurs d'envoyer un message avec une pièce jointe.
Ce même formulaire fonctionne très bien chez 2 autres hébergeurs mais chez Planethoster, la pièce jointe n'est pas transmise (et aucune indication de son éventuel présence dans le mail que je reçois)...
Y a t'il quelque chose à activer dans Cpanel ? Est ce un problème de sécurité/code ?
Si quelqu'un à une idée... Merci d'avance
Emmanuel
NB : il y a bien <FORM encType=multipart/form-data method=post>
le nom de l’input du fichier est $attach
J'ai modifié les adresses emails
Le code PHP est le suivant :
<?php
if(isset($_POST) && isset($_POST['email'])){
extract($_POST);
if (!empty($email)&&!empty($nom)&&!empty($tel)&&!empty($imprimer)){
$to = "[email protected]";
$sujet = "votre demande : $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\"\r\n\r\n";
$msg .= "$imprimer\n";
if (is_uploaded_file($attach)) {
$file = fopen($attach, "r");
$contents = fread($file, $attach_size);
$encoded_attach = chunk_split(base64_encode($contents));
fclose($file);
$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 .= "$encoded_attach\n";
$msg .= "--Message-Boundary--\n";
}
// envoie du mail
mail($to,$sujet,$msg,$entetes);
mail($email,"accusé de réception", "Votre demande ($nom $email)","from:[email protected]");
print "Votre demande a bien été envoyé.";
}
else{
print "Merci de remplir tous les champs…";
}
}
?></FONT></P></FORM></FONT>
J'ai un formulaire en PHP qui permet aux visiteurs d'envoyer un message avec une pièce jointe.
Ce même formulaire fonctionne très bien chez 2 autres hébergeurs mais chez Planethoster, la pièce jointe n'est pas transmise (et aucune indication de son éventuel présence dans le mail que je reçois)...
Y a t'il quelque chose à activer dans Cpanel ? Est ce un problème de sécurité/code ?
Si quelqu'un à une idée... Merci d'avance
Emmanuel
NB : il y a bien <FORM encType=multipart/form-data method=post>
le nom de l’input du fichier est $attach
J'ai modifié les adresses emails
Le code PHP est le suivant :
<?php
if(isset($_POST) && isset($_POST['email'])){
extract($_POST);
if (!empty($email)&&!empty($nom)&&!empty($tel)&&!empty($imprimer)){
$to = "[email protected]";
$sujet = "votre demande : $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\"\r\n\r\n";
$msg .= "$imprimer\n";
if (is_uploaded_file($attach)) {
$file = fopen($attach, "r");
$contents = fread($file, $attach_size);
$encoded_attach = chunk_split(base64_encode($contents));
fclose($file);
$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 .= "$encoded_attach\n";
$msg .= "--Message-Boundary--\n";
}
// envoie du mail
mail($to,$sujet,$msg,$entetes);
mail($email,"accusé de réception", "Votre demande ($nom $email)","from:[email protected]");
print "Votre demande a bien été envoyé.";
}
else{
print "Merci de remplir tous les champs…";
}
}
?></FONT></P></FORM></FONT>