Inscription newsletter [Résolu]

Signaler
Messages postés
5
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
22 février 2014
-
Messages postés
29194
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 août 2020
-
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

Messages postés
29194
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 août 2020
335
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
Messages postés
5
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
22 février 2014

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
Messages postés
29194
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 août 2020
335
Regarde bien.
Le header n'est pas écrit pareil. ..
Messages postés
5
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
22 février 2014

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.
Messages postés
29194
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 août 2020
335
Si tu as vu quelles modif j'ai fait sur le header tu pourras faire de même sur ton body...
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.
Messages postés
29194
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 août 2020
335
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.";
  }

?>




Messages postés
5
Date d'inscription
samedi 22 février 2014
Statut
Membre
Dernière intervention
22 février 2014

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
Messages postés
29194
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 août 2020
335
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. ....
:-)
Messages postés
29194
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 août 2020
335
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é..