formulaire contact probleme

Eléphanteau du PHP | 10 Messages

02 sept. 2011, 11:53

salut Mazarini,

le paramètre "objet" n'a pas résolu le fait que le contenu du formulaire n'est pas envoyé c'est juste qu'avec l'objet je reçois un mail vide avec un sujet que je lui ai donné :

$objet = "Demande de renseignements";

je suis repassé avec la method post sur le formulaire car je n'aime pas trop le fait que le formulaire passe par l'url.... car le GET ne fonctionnais pas plus de toutes façons....

je ne pensais pas que ça allais être aussi difficile de trouver l'erreur de mon code php vue que je débute je pensais certainement avoir fait une erreur de débutant 8-|

mais j'ai l'impression que les informations du formulaire reste coincé avant le traitement php ....

Eléphanteau du PHP | 25 Messages

02 sept. 2011, 12:56

Bonjour,

pour envoyer un mail correctement, tu dois différencier les parties de ton mail et préciser l'encodage

// Destinataire du mail
$destination = $email;
// Expediteur du mail
$expediteur = $mail_admin;
// sujet du mail
$sujet = "sujet du mail";

// Les headers pour un mail multiparts
$headers= "MIME-Version: 1.0\n";
$headers.= "From: $expediteur\n";
$headers.= "Content-type: multipart/mixed;\n";
// Chaine permettant de différencier les parties du mail
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\"\n\n";
$texte = "------=$limite\n";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.= "ton texte <br>\n";
$texte.= "<br>\n encore du texte <br>\n";
$texte.= "<br>\n encore du texte";


// enfin on envoi le mail
mail($destination, $sujet, $texte, $headers);

Eléphanteau du PHP | 10 Messages

02 sept. 2011, 17:02

Bonjour leozoe,

ce que je veux ce n'est pas envoyé un mail c est recevoir sur mon mail les informations remplies dans le formulaire

avec la partie de code que tu m'indique j'envois effectivement un mail avec les informations de texte fixe.

après j'ai déjà fait un formulaire en flash qui fonctionne très bien il fait appel a un fichier php qui est comme ceci:
<?php

$Name= $_POST['name'];
$email = $_POST['email'];
$subject  = $_POST['subject'];
$mail_body  = $_POST['message'];

$recipient = "[email protected]";

$header = "From: ". $Name . " <" . $email . ">\n"; 

if(isset($Name))
{ 
 if(mail($recipient, $subject, $mail_body, $header))
    {
      echo "success=yes";
    }
    else
    {
	 echo "success=no";
    }
}
  
?> 
cependant le flash et bien mais pas top car pas compatible téléphone et tablette de la marque à la pomme pour ne pas la citer.... c est pour cela que je m'acharne a faire ce formulaire....

sinon j'ai quand même modifié mon code avec tes informations voici a quoi il ressemble maintenant mais la j'ai vraiment l'impression d'avoir fait n'importe quoi....:
<?php
error_reporting(E_ALL);
var_dump($_GET,$_POST);

$nom = '';
if (!empty ($_POST['nom'])) {
$nom= $_POST['nom'];
}
$prenom = '';
if (!empty ($_POST['prenom'])) {
$prenom= $_POST['prenom'];
}
$mail = '';
if (!empty ($_POST['mail'])) {
$mail= $_POST['mail'];
}
$body = '';
if (!empty ($_POST['message'])) {
$message= $_POST['message'];
}
$objet = "Demande de renseignements";
$destinataire="[email protected]";

mail($destinataire,$nom,$prenom,$mail,$body);

$headers= "MIME-Version: 1.0\n";
$headers.= "From: $mail\n";
$headers.= "Content-type: multipart/mixed;\n";
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\"\n\n";
$texte = "------=$limite\n";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.= "$body <br>\n";

if (mail($destinataire,$objet,$body)) { 
echo "Votre mail a été envoyé<br>"; 
} else { 
echo "Une erreur s'est produite"; 
} 
?>
après l'envoi du fichier il s'affiche ceci : array(0) { } array(0) { }
et je reçois deux mails un complétement vide et un avec l'objet du mail seulement
Modifié en dernier par crevette le 05 sept. 2011, 11:09, modifié 1 fois.

Eléphanteau du PHP | 25 Messages

02 sept. 2011, 18:38

pour recevoir un mail sur ta boite mail , il faut bien l'envoyer, que ce soit a toi ou a un client c'est toujours un envoi de mail :wink:
tu initialises $body comme vide ok, mais après tu ne mets pas de valeur dans $body, donc quand tu envoies le mail $texte=$body est toujours vide non?
ensuite tu crées bien les headers, mais tu ne les envoies pas ...