IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Problème fonction mail() pas de sujet ni corps!


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Mail] Problème fonction mail() pas de sujet ni corps!
    Bonjour,

    Pour m'essayer à mes nouvelles connaissances en php je suis en train de développer une interface pour envoyer des mails façon News Letter.

    J'ai créé un formulaire qui permet de s'inscrire/désinscrire dans une table contenant les champs id et email. De ce côté-là tout marche à merveille!

    Par contre, l'autre page nommée sendmail.php me pose problème dans le sens où je récupère les valeurs dans champs "subject" et "body" grâce à la variable $_POST[]. J'appelle ma fonction mail avec ces valeurs, le mail est bien envoyé avec le nom de l'expéditeur et le destinataire mais je n'ai aucun sujet ni corps de message... malgré l'analyse minutieuse de mon code je ne parviens pas à trouver l'erreur.

    Voici le code de sendmail.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
    // Vérifie si le formulaire a déjà été envoyé
    if ($_POST[op] != "sent") {
    	$display = "<p><form method='post' action='$_SERVER[PHP_SELF]'>\n";
    	$display .= "<p><strong>Subject:</strong>";
    	$display .= "<p><input type='text' name='subject'>\n";
    	$display .= "<p><strong>Mail body:</strong>";
    	$display .= "<p><textarea name='body' cols=50 rows=10 wrap=virtual></textarea>\n";
    	$display .= "<input type='hidden' name='op' value='sent'>\n";
    	$display .= "<p><input type='submit' name='submit' value='Send mail'>\n";
    	$display .= "</form>";
    }
    // Sinon vérifie si les champs sont remplis
    else {
    	if ($_POST[subject] = "" or $_POST[body] = "") {
    		unset($_POST[op]);
    		header("Location: sendmail.php");
    		exit;
    	}
    	//Connexion à la base et envoi du ou des mails
    	$connexion = mysqli_connect("localhost", "foo", "bar");
    	mysqli_select_db($connexion, "test");
     
    	$emails = "SELECT email FROM subscribers";
    	$emails_query = mysqli_query($connexion, $emails);
    	$display = "<p>Message sent to:\n";
    	$headers = "From: Foobar News Letter <foobar@xyz.net>";
    	while($emails_array = mysqli_fetch_array($emails_query)){
    		$email = $emails_array[email];
    		mail($email, $_POST[subject], $_POST[body], $headers);
    		$display .= "<p> $email";
    	}
    }
    ?>
    <HTML>
    <HEAD>
    <TITLE>Send mail form</TITLE>
    </HEAD>
    <BODY>
    <p><H1>Send mail</H1></p>
    <?php echo $display; ?>
    </BODY>
    </HTML>
    Est-ce quelqu'un a une idée?

    Merci!

    webrider

  2. #2
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Déjà essaie de remplacer les $_POST[valeur] par $_POST['valeur'] et dis nous si ça change quelque chose.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut Anduriel et merci pour ta réponse!

    Le changement que tu me dis de faire ne change rien et pour cause, j'ai trouvé mon erreur et comme dab c'est tout con mais faut trouver où ça se glisse!

    En fait dans la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_POST[subject] = "" or $_POST[body] = "") {
    j'utilise un = simple qui remet les variables à une chaîne vide! Je les ai remplacés par == et maintenant c'est ok.

    Je suis allé un peu trop vite pour poser ma question sur le forum désolé!

    webrider.

  4. #4
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction mail() php ne fonctionne pas
    Par silverspike dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 18/12/2007, 10h11
  2. [Mail] Problème Fonction $_GET[]
    Par lebigboss dans le forum Langage
    Réponses: 3
    Dernier message: 27/04/2007, 08h53
  3. [Mail] fonction mail : problème d'utilisation
    Par leclone dans le forum Langage
    Réponses: 4
    Dernier message: 13/02/2007, 17h02
  4. [Mail] Problème fonction mail
    Par Jiraiya42 dans le forum Langage
    Réponses: 5
    Dernier message: 04/11/2006, 23h07
  5. Réponses: 3
    Dernier message: 21/08/2006, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo