Je viens de finaliser un formulaire php auto invocant dans lequel je donne la possibilité aux internautes de me faire parvenir une image en pièce jointe.
Mais il y a un Hic je reçois bien le message mais sans la piece jointe.
Le problème vient du code qui se trouve dans la création du message.
Je vous laisse une copie de ce formulaire ci-dessous si vous trouvez la solution par avance un grand merci
<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
$list['f_1']=array("Sélectionnez","Mr"," Mme"," Melle");
$list['f_11']=array("Je Souhaite la visite d'un délégué commercial","Je Souhaite recevoir un catalogue","Je Souhaite être abonné à la Newsletter");
if(isset($_GET['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_GET)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));
$f_4=trim(eregi_replace("[^0-9\ +]", "", $f_4));
$f_5=strip_tags(trim($f_5));
$f_6=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_6)));
$f_7=trim(eregi_replace("[^0-9+]", "", $f_7));
$f_8=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_8)));
$f_9=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_9)));
$f_10=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäöô\ -]", "", $f_10)));
$f_14=trim(ucwords(eregi_replace("[^0-9]", "", $f_14)));
// Verification des champs
if($f_1==0){
$erreur.="<li><span class='txterror'>Le champ « Civilité » n'a pas été défini.</span>";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>";
$errf_2=1;
}
if(strlen($f_3)<2){
$erreur.="<li><span class='txterror'>Le champ « Prénom » est vide ou incomplet.</span>";
$errf_3=1;
}
if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ « Téléphone » est vide ou incomplet.</span>";
$errf_4=1;
}else{
if(!ereg("^[0-9]{10,}$", $f_4)) {
$erreur.="<li><span class='txterror'>La syntaxe de votre n° de téléphone n'est pas correcte.</span>";
$errf_4=1;
}
}
if(strlen($f_5)<2){
$erreur.="<li><span class='txterror'>Le champ « E-Mail » est vide ou incomplet.</span>";
$errf_5=1;
}else{
if(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
$f_5)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_5=1;
}
}
if(strlen($f_6)<2){
$erreur.="<li><span class='txterror'>Le champ « Adresse » est vide ou incomplet.</span>";
$errf_6=1;
}
if(strlen($f_7)<2){
$erreur.="<li><span class='txterror'>Le champ « Code Postal » est vide ou incomplet.</span>";
$errf_7=1;
}else{
if(!ereg("^[0-9]{5,}$", $f_7)) {
$erreur.="<li><span class='txterror'>La syntaxe de votre code postal n'est pas correcte.</span>";
$errf_7=1;
}
}
if(strlen($f_8)<2){
$erreur.="<li><span class='txterror'>Le champ « Ville » est vide ou incomplet.</span>";
$errf_8=1;
}
if(strlen($f_9)<2){
$erreur.="<li><span class='txterror'>Le champ « Pays » est vide ou incomplet.</span>";
$errf_9=1;
}
if(strlen($f_14)<1){
$erreur.="<li><span class='txterror'>Vous n'avez répondu à la question?</span>";
$errf_14=1;
}else{
if(!ereg("^[5]{1,}$", $f_14)) {
$erreur.="<li><span class='txterror'>Votre réponse est incorrecte.</span>";
$errf_14=1;
}
}
if($erreur==""){
// Création du message
$nom_fichier = basename($_FILES['image']['name']);
$nom_fichier = strtr($nom_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$nom_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $nom_fichier);
$fichier = file_get_contents($_FILES['image']['tmp_name']);
$frontiere = '-----=' . md5(uniqid(mt_rand()));
$titre="Fiche Formulaire contact";
$tete="From: Visiteur du Site Internet <cedric@graphi-net.fr>\n";
$tete .= "MIME-Version: 1.0\r\n";
$tete .= "Content-type: multipart/mixed; boundary=\"".$frontiere."\"\r\n";
$corps = '--' . $frontiere . "\r\n";
$corps .= "Content-type: text/plain; charset=iso-8859-1\r\n\n";
$corps.="Civilité : ".$list['f_1'][$f_1]."\n";
$corps.="Nom : ".$f_2."\n";
$corps.="Prénom : ".$f_3."\n";
$corps.="Téléphone : ".$f_4."\n";
$corps.="E-Mail : ".$f_5."\n";
$corps.="Adresse : ".$f_6."\n";
$corps.="Code Postal : ".$f_7."\n";
$corps.="Ville : ".$f_8."\n";
$corps.="Pays : ".$f_9."\n";
$corps.="Message : ".$f_10."\n";
for($id=0; $id<count($list['f_11']); $id++){
if($f_11[$id]==1){
$corps.="".$list['f_11'][$id]."\n";
$corps .= '--' . $frontiere . "\r\n";
$corps .= 'Content-Type: ' . $_FILES['image']['type'] . '; name="'. $nom_fichier . '"' . "\r\n";
$corps .= 'Content-Transfer-Encoding: base64' . "\r\n";
$corps .= 'Content-Disposition: attachement; filename="' . $nom_fichier . '"' . "\r\n\n";
$corps .= chunk_split(base64_encode($fichier),76,'\n') . "\r\n";
$corps .= '--' . $frontiere . '--' . "\r\n";
}
}
if(mail("cedric@graphi-net.fr", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>
[code]
Modifié par Kasimr2 (26 Feb 2009 - 08:59)
Mais il y a un Hic je reçois bien le message mais sans la piece jointe.
Le problème vient du code qui se trouve dans la création du message.
Je vous laisse une copie de ce formulaire ci-dessous si vous trouvez la solution par avance un grand merci
<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
$list['f_1']=array("Sélectionnez","Mr"," Mme"," Melle");
$list['f_11']=array("Je Souhaite la visite d'un délégué commercial","Je Souhaite recevoir un catalogue","Je Souhaite être abonné à la Newsletter");
if(isset($_GET['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_GET)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));
$f_4=trim(eregi_replace("[^0-9\ +]", "", $f_4));
$f_5=strip_tags(trim($f_5));
$f_6=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_6)));
$f_7=trim(eregi_replace("[^0-9+]", "", $f_7));
$f_8=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_8)));
$f_9=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_9)));
$f_10=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäöô\ -]", "", $f_10)));
$f_14=trim(ucwords(eregi_replace("[^0-9]", "", $f_14)));
// Verification des champs
if($f_1==0){
$erreur.="<li><span class='txterror'>Le champ « Civilité » n'a pas été défini.</span>";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>";
$errf_2=1;
}
if(strlen($f_3)<2){
$erreur.="<li><span class='txterror'>Le champ « Prénom » est vide ou incomplet.</span>";
$errf_3=1;
}
if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ « Téléphone » est vide ou incomplet.</span>";
$errf_4=1;
}else{
if(!ereg("^[0-9]{10,}$", $f_4)) {
$erreur.="<li><span class='txterror'>La syntaxe de votre n° de téléphone n'est pas correcte.</span>";
$errf_4=1;
}
}
if(strlen($f_5)<2){
$erreur.="<li><span class='txterror'>Le champ « E-Mail » est vide ou incomplet.</span>";
$errf_5=1;
}else{
if(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
$f_5)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_5=1;
}
}
if(strlen($f_6)<2){
$erreur.="<li><span class='txterror'>Le champ « Adresse » est vide ou incomplet.</span>";
$errf_6=1;
}
if(strlen($f_7)<2){
$erreur.="<li><span class='txterror'>Le champ « Code Postal » est vide ou incomplet.</span>";
$errf_7=1;
}else{
if(!ereg("^[0-9]{5,}$", $f_7)) {
$erreur.="<li><span class='txterror'>La syntaxe de votre code postal n'est pas correcte.</span>";
$errf_7=1;
}
}
if(strlen($f_8)<2){
$erreur.="<li><span class='txterror'>Le champ « Ville » est vide ou incomplet.</span>";
$errf_8=1;
}
if(strlen($f_9)<2){
$erreur.="<li><span class='txterror'>Le champ « Pays » est vide ou incomplet.</span>";
$errf_9=1;
}
if(strlen($f_14)<1){
$erreur.="<li><span class='txterror'>Vous n'avez répondu à la question?</span>";
$errf_14=1;
}else{
if(!ereg("^[5]{1,}$", $f_14)) {
$erreur.="<li><span class='txterror'>Votre réponse est incorrecte.</span>";
$errf_14=1;
}
}
if($erreur==""){
// Création du message
$nom_fichier = basename($_FILES['image']['name']);
$nom_fichier = strtr($nom_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$nom_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $nom_fichier);
$fichier = file_get_contents($_FILES['image']['tmp_name']);
$frontiere = '-----=' . md5(uniqid(mt_rand()));
$titre="Fiche Formulaire contact";
$tete="From: Visiteur du Site Internet <cedric@graphi-net.fr>\n";
$tete .= "MIME-Version: 1.0\r\n";
$tete .= "Content-type: multipart/mixed; boundary=\"".$frontiere."\"\r\n";
$corps = '--' . $frontiere . "\r\n";
$corps .= "Content-type: text/plain; charset=iso-8859-1\r\n\n";
$corps.="Civilité : ".$list['f_1'][$f_1]."\n";
$corps.="Nom : ".$f_2."\n";
$corps.="Prénom : ".$f_3."\n";
$corps.="Téléphone : ".$f_4."\n";
$corps.="E-Mail : ".$f_5."\n";
$corps.="Adresse : ".$f_6."\n";
$corps.="Code Postal : ".$f_7."\n";
$corps.="Ville : ".$f_8."\n";
$corps.="Pays : ".$f_9."\n";
$corps.="Message : ".$f_10."\n";
for($id=0; $id<count($list['f_11']); $id++){
if($f_11[$id]==1){
$corps.="".$list['f_11'][$id]."\n";
$corps .= '--' . $frontiere . "\r\n";
$corps .= 'Content-Type: ' . $_FILES['image']['type'] . '; name="'. $nom_fichier . '"' . "\r\n";
$corps .= 'Content-Transfer-Encoding: base64' . "\r\n";
$corps .= 'Content-Disposition: attachement; filename="' . $nom_fichier . '"' . "\r\n\n";
$corps .= chunk_split(base64_encode($fichier),76,'\n') . "\r\n";
$corps .= '--' . $frontiere . '--' . "\r\n";
}
}
if(mail("cedric@graphi-net.fr", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>
[code]
Modifié par Kasimr2 (26 Feb 2009 - 08:59)