Récupération Pièce Jointe par Mail Formulaire HTML

Nyco-
Invité n'ayant pas de compte PHPfrance

03 oct. 2010, 13:25

Bonjour,

Je débute en PHP et j'ai besoin de gérer les données d'un formulaire HTML pour pouvoir récupérer par mail des données fournies par un utilisateur. Je suis parvenu à récupérer tous les champs (text, textarea, check, list ...) mais je bute sur la récupération de la pièce jointe ... Il s'agira essentiellement (même exclusivement) de photos en format .jpg ou .bmp éventuellement.

Je ne sais pas comment coder mon script pour que la pièce jointe me soit adressée comme le reste des infos.

Si quelqu'un pouvait me donner un coup de main ce serait très sympa :)

Mon script :
<?php

//Définition variables
$msg_erreur = "Attention ! Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
$date = date("d-m-Y" );
$heure = date("H:i" );
$redirection = "redirection.html";

//Destinataire
define('MAIL_DESTINATAIRE','[email protected]');
define('MAIL_SUJET','Demande de publication');

//Vérification champs
if (empty($_POST['Nom']))
$message .= "Nom<br/>";
if (empty($_POST['Prenom']))
$message .= "Prénom<br/>";
if (empty($_POST['Secteur']))
$message .= "Secteur<br/>";
if (empty($_POST['Centre']))
$message .= "Centre<br/>";
if (empty($_POST['Rubrique']))
$message .= "Rubrique<br/>";
if (empty($_POST['Intitule']))
$message .= "Intitulé de l'objet<br/>";
if (empty($_POST['Description']))
$message .= "Description de l'objet<br/>";
if (empty($_POST['Etat']))
$message .= "Etat de l'objet<br/>";
if (empty($_POST['Prix']))
$message .= "Prix<br/>";

//Message d'Erreur si un champ est vide
if (strlen($message) > strlen($msg_erreur)) {

  echo $message;

}

//Sinon poursuite du code
else {

foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}

//Concaténation champ Paiement
$Paiement = $_POST['Paiement'];
$sqlPaiement = '';
for ($i=0; $i<count($Paiement); $i++)
{
$sqlPaiement .= $Paiement[$i];
$sqlPaiement .= ', ';
}

//Concaténation champ Livraison
$Livraison = $_POST['Livraison'];
$sqlLivraison = '';
for ($i=0; $i<count($Livraison); $i++)
{
$sqlLivraison .= $Livraison[$i];
$sqlLivraison .= ', ';
}

//Préparation de l'entête du mail
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['Nom']} ";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$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 = "DEMANDE DE VALIDATION D'ANNONCE\n\n";
$mail_corps .= "Date : $date\n";
$mail_corps .= "Heure : $heure\n\n";
$mail_corps .= "------------------------------------------\n\n";
$mail_corps .= "Nom : $Nom\n";
$mail_corps .= "Prénom : $Prenom\n";
$mail_corps .= "Secteur-Centre : $Secteur, $Centre\n\n";
$mail_corps .= "------------------------------------------\n\n";
$mail_corps .= "Rubrique : $Rubrique\n";
$mail_corps .= "Intitulé de l'objet : $Intitule\n";
$mail_corps .= "Description : $Description\n";
$mail_corps .= "Etat : $Etat\n\n";
$mail_corps .= "------------------------------------------\n\n";
$mail_corps .= "Prix : $Prix\n";
$mail_corps .= "Moyen de Paiement : $sqlPaiement\n\n";
$mail_corps .= "Autre Paiement : $AutrePaiement\n";
$mail_corps .= "Mode de Livraison : $sqlLivraison\n\n";
$mail_corps .= "Autre Livraison : $AutreLivraison\n";

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

  //Le mail est bien expédié
    echo "<script language=\"javascript\">";
    echo "window.location=('$redirection');";
    echo "</script>";
} else {

  //Le mail n'a pas été expédié
  echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}

}

?>

ViPHP
xTG
ViPHP | 7331 Messages

03 oct. 2010, 13:50


Nyco-
Invité n'ayant pas de compte PHPfrance

03 oct. 2010, 17:06

Merci pour le lien !

Je suis pas près d'y arriver par contre, c'est vachement abstrait :oops:

ViPHP
xTG
ViPHP | 7331 Messages

03 oct. 2010, 18:21

Abstrait ? Bah lis le et tu me rediras si c'est si abstrait que cela...