[php] Formulaire piece jointe

Fermé
powerfield Messages postés 2 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 30 juin 2010 - 29 juin 2010 à 18:27
powerfield Messages postés 2 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 30 juin 2010 - 30 juin 2010 à 09:31
Bonjour,

Voilà, j'ai crée un script php qui permet de traiter les formulaire,mais je n'arrive pas à transférer le fichier joint. Il le le lit sans aucun problème et pourtant je ne reçois rien.

Je fais du php depuis peu, j'ai d'abord la méthode qui étaient sur le site du zéro, ensuite via my friend google, j'ai lu chaque tuto et pourtant que ce soit par par diffréent method pour lire le fichier ou pas, je n'arrive pas à avoir la pièce jointe.

Mon site est sur l'hébergeur OVH.

Pouvez m'aider ?
Voici un bout de mon code :

<?php
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
$mailDestinataire = "mail@mail.fr"; // L'email qui le recevra
$mailEnvoyeur = $_POST['email']; // L'email de l'envoyeur
$subject = $_POST['natureDesc']; // Le sujet

// Vérification de l'email d'origine
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mailDestinataire))
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}

// Pour définir le type du contenu
$message = $passage_ligne."--".$boundary.$passage_ligne; // Début message
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne; // fin

$message .= "Content-Type: text/plain; charset=\"UTF-8\"".$passage_ligne;
$message .= "Content-Transfer-Encoding: 8bit".$passage_ligne;

$header = "From: \"$nom $prenom\"<$mailEnvoyeur>".$passage_ligne;
// Qu'on puisse lui répondre
$header.= "Reply-to: \"$mailEnvoyeur\" <$mailEnvoyeur>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne; // Version du serveur web
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
// fopen permet de d'ouvrir le fichier en mode binaire, il ya d'autre méthode plus rapide //On ouvre le fichier
$attachement = file_get_contents("./image.jpg",true); //On lit l'ensemble du fichier
// On va lencoder en 64 bits
$attachement = chunk_split(base64_encode($attachement));

$message.= $passage_ligne."--".$boundary."--".$passage_ligne; // Fin

// fichier joints
$message .= $passage_ligne."--".$boundary.$passage_ligne; // Début
$message .= "Content-Type: image/jpeg; name=\"image.jpg\"".$passage_ligne;
$message .= "Content-Transfer-Encoding: base64".$passage_ligne;
$message .= "Content-Disposition: attachment; filename=\"image.jpg\"".$passage_ligne;
$message .= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message .= $passage_ligne."--".$boundary."--".$passage_ligne; // Fin

// Envoie du mail quand c'ets fini
mail($mailDestinataire,$subject ,$message,$header);

?>



1 réponse

powerfield Messages postés 2 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 30 juin 2010
30 juin 2010 à 09:31
Bon j'ai trouvé. si jamais quelque que je lui donne la solution. Il n'a qu'à poster.
0