Inscription newsletter [Résolu]

Messages postés
5
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
22 février 2014
-
Bonjour,
J'ai mis en place un site avec un kit dans lequel il y a une inscription a une newsletter simplement par l'envoi de l'adresse email du souscripteur dans ma boite email.
Ci dessous les [/ codes sources]:
Formulaire html
 <form  id="subform" method="post" action="subscribe-form.php">
                    <fieldset>
                        <p>
                            <input name="email"  class="required email" type="text" placeholder="Votre Email">
                            <input type="submit" value="OK" class="sub-submit"/>
                        </p>
                        <div id="subresult"></div>
                    </fieldset>
                </form>

Fichier Php (subscribe-form.php)
<?php

 // put your email address here
 $youremail = 'site@site.com';   

 // prepare message 
 $body = "Inscription Newsletter :
 
 Email:  $_POST[email]";

 if( $_POST['email'] && !preg_match( "/[\r\n]/", $_POST['email']) ) {
   $headers = "From: $_POST[email]";
 } else {
   $headers = "From: $youremail";
 }

 mail($youremail, 'Inscription Newsletter', $body, $headers );

?>

<!DOCTYPE HTML>
<html>
<head>
<title>Merçi</title>
</head>
<body>
<p>Vous venez de vous inscrire à notre Newsletter. Vous recevrez par email les nouveautés, promotions et autres nouvelles.</p>
</body>
</html>


Voilà mon probleme, et n'étant pas très doué en php ...
je recois dans ma boite mail des enregistrements à la newsletter sans l'adresse email du souscripteur ??

Quand moi je fais des essais d'envoi sans mettre une adresse email valide rien ne se passe

Quel est le problème ???

Merci de votre aide
Afficher la suite 

5 réponses

Messages postés
27059
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2019
318
0
Merci
Bonjour,

1 - J'ai édité ton message pour y mettre les balises de code.
voir ici pour plus d'informations :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

2- Essaye en ajoutant un ID à ton input email
 <input name="email"  id="email" .....  >



edit : et modifie la création de ton header :
 if( $_POST['email'] && !preg_match( "/[\r\n]/", $_POST['email']) ) {
   $headers = "From: ".$_POST['email'];
 } else {
   $headers = "From: ".$youremail;
 }


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Commenter la réponse de jordane45
Messages postés
5
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
22 février 2014
0
Merci
Bonjour,
merci pour ta réponse aussi rapide mais, le code pour le header est le même ??
if( $_POST['email'] && !preg_match( "/[\r\n]/", $_POST['email']) ) {
   $headers = "From: ".$_POST['email'];
 } else {
   $headers = "From: ".$youremail;
 }


et cela ne me dit pas pourquoi je recois ce genre d'inscription ???

Merci
jordane45
Messages postés
27059
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2019
318 -
Regarde bien.
Le header n'est pas écrit pareil. ..
Commenter la réponse de jdjo32
Messages postés
5
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
22 février 2014
0
Merci
Re Merci

Ok , j'ai fais les changements .

Pour ma part quand je fais un essais en tapant une adresse mail , cela fonctionne correctement .

Mais cela ne me dit toujours pas comment je peu recevoir des mails d'inscription sans rien dedans ??? comment es-ce possible ???

Merci en tout pour cette aide, je verrais bien dans les jours à venir si le probleme est résolu ou pas.
jordane45
Messages postés
27059
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2019
318 -
Si tu as vu quelles modif j'ai fait sur le header tu pourras faire de même sur ton body...
jdjo32
Messages postés
5
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
22 février 2014
-
Cela à été fais comme ce que tu m'avais dis plus haut.
Commenter la réponse de jdjo32
Messages postés
27059
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2019
318
0
Merci
Voici une version légèrement modifiée de ton script.

Déjà.. au lieu de récupérer 20 fois la variable POST['email'] je ne la récupère plus qu'une seule fois ( ça évitera entre autre les erreurs de frappe... lorsque tu oubliais pas exemple d'y mettre les quotes.
J'ai ajouté une vérification ( le ISSET ) pour m'assurer que la variable existait bien.

Je t'ai ajouté également une vérification que MAIL avait bien "envoyé" ton message.
par contre :
Retourne TRUE si le mail a été accepté pour livraison, FALSE sinon.
Il est important de noter que ce n'est pas parce que le mail a été accepté pour livraison qu'il arrivera à destination.

Et enfin (cela fait parti des corrections que je t'avais indiqué auparavant :
Lorsque tu concatène une chaine de caractères avec une variable il faut
- Utiliser le point comme caractère de concaténation
- Sortir ta variable de ta string.
Exemple :
$a = " Bonjour ";
$b = " jdjo32";

echo $a.$b;
//=> Va afficher : " Bonjour   jdjo32 "
echo " Bonjour ".$b;
// => Va afficher : " Bonjour   jdjo32 "

echo " Bonjour $b";
// => Va afficher : " Bonjour $b "



Donc voici le code remanié :

 // put your email address here
 $youremail = 'site@site.com';   

// Récupération de l'émail passé en POST
  $email = isset($_POST['email'])?$_POST['email']:0;

 // prepare message 
 $sujet = "Inscription Newsletter";
 $body = "Inscription Newsletter :
                Email:  ".$email;

 if( $email  && !preg_match( "/[\r\n]/",$email ) ) {
    $headers = "From: ".$email;
 } else {
    $headers = "From: ".$youremail;
 }

 // *********** Envoie du mail *********************
//mail => Retourne TRUE si le mail a été accepté pour livraison,
//FALSE sinon. 
 if(mail($youremail, $sujet, $body, $headers )){
    Echo " Mail envoyé ";
  }else{
    Echo " Erreur.";
  }

?>




Commenter la réponse de jordane45
Messages postés
5
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
22 février 2014
0
Merci
Merci pour ton aide et tes conseils.

As tu quand même une explication dans le fait que je recevais ces inscriptions sans adresse email du souscripteur ?

Merci encore
jordane45
Messages postés
27059
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2019
318 -
Ben.... tu regardes ce que tu faisais...et tu compare a ce que je fais...
Et puis tu relis mon dernier message et je pense que tu auras tout pour comprendre. ....
:-)
jordane45
Messages postés
27059
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2019
318 -
PS: Si ton souci est résolu.. merci, afin de clore le sujet, de cliquer sur le tag : MARQUER COMME RÉSOLU sous le titre de ta question.

Edit : Je m'en occupe..vu que tu sembles avoir oublié..
Commenter la réponse de jdjo32