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 :
Est-ce quelqu'un a une idée?
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>
Merci!
webrider
Partager