Inscription newsletter

Résolu
jdjo32 Messages postés 5 Date d'inscription samedi 22 février 2014 Statut Membre Dernière intervention 22 février 2014 - Modifié par jordane45 le 22/02/2014 à 13:57
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 22 févr. 2014 à 17:48
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

5 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 22/02/2014 à 14:00
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
0
jdjo32 Messages postés 5 Date d'inscription samedi 22 février 2014 Statut Membre Dernière intervention 22 février 2014
22 févr. 2014 à 14:11
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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
22 févr. 2014 à 14:17
Regarde bien.
Le header n'est pas écrit pareil. ..
0
jdjo32 Messages postés 5 Date d'inscription samedi 22 février 2014 Statut Membre Dernière intervention 22 février 2014
22 févr. 2014 à 14:47
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.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
22 févr. 2014 à 14:52
Si tu as vu quelles modif j'ai fait sur le header tu pourras faire de même sur ton body...
0
jdjo32 Messages postés 5 Date d'inscription samedi 22 février 2014 Statut Membre Dernière intervention 22 février 2014
22 févr. 2014 à 14:59
Cela à été fais comme ce que tu m'avais dis plus haut.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
22 févr. 2014 à 15:30
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.";
  }

?>




0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jdjo32 Messages postés 5 Date d'inscription samedi 22 février 2014 Statut Membre Dernière intervention 22 février 2014
22 févr. 2014 à 16:55
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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 22/02/2014 à 17:47
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. ....
:-)
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 24/02/2014 à 22:37
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é..
0
Rejoignez-nous