Bonjour,

Pour s'abonner aux newsletters, l'internaute a 2 possibilités:

1- cliquer sur le lien "newsletter" présent dans le menu de navigation et il est renvoyé vers newsletter.php,
2- ou saisir son email dans un mini formulaire dans la page d'acceuil, qui le renvoie vers
newsletter.php avec le champ email pré-rempli.

Une fois qu'il a renseigné son nom et son email(s'il arrive depuis le lien du menu), les validations en php et
en javascript sont faites.
Puis il est enregistré dans la bdd, et un mail lui est envoyé pour activation.
Bref, les validations php et js marchent, mais au sublit du formulaire, la popin se lance mais empêche
l'enregistrement dans la bdd et l'envoi du mail d'activation.
Par contre si je commente le code js du popin, il est enregistré et l'email lui est envoyé.

Je ne sais où placer le code js du popin.
Merci pour vos éclairages.

Ma page newsletter.php:
Code html : 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
 
<?php 
        session_start();
?><!DOCTYPE html>
<html > 
<head>
	<meta charset="utf-8"/>
	<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
	<title>INSCRIPTION À LA NEWSLETTER </title>
	<link href="styles/newsletter/newslettersignup.css" rel="stylesheet" type="text/css"  />
	<link rel="stylesheet" href="Font-Awesome-master/css/font-awesome.min.css">
	<script src="js/jquery-1.10.1.min.js" type="text/javascript" ></script>
 
 
</head>
<body>
	<?php
                require("config-db.php");
                mysql_connect($adresse,$nom,$motdepasse);
                mysql_select_db($database); 
                
                require_once "PHPMailer_5.2.4/class.phpmailer.php";
                if(isset($_POST['email'])){
                        $_SESSION['email']=$_POST['email'];
                }
                if(isset($_POST['action-submit'])){
                        
                        $valid=true;
                        
                        $nom=$_POST['nom'];
                        $match_nom = preg_match('#^[a-zéèàùûêâôëA-Z0-9._\'\s-]{5,26}$#', $nom);
                        $email=$_POST['email'];
                        $sort=$_POST['sort'];
                        
                        if(!$match_nom ){
                                echo "Le nom saisi n'est pas correct";
                                $valid=false;
                        }
                        
                        $query=mysql_query("SELECT email from newsletterusers1 where email='$email'") or die(mysql_error());
                        $row=mysql_num_rows($query);
                        if(empty($email)){
                                echo "Veuillez renseigner votre adresse e-mail";
                                $valid=false;
                        }else if(! filter_var($email,FILTER_VALIDATE_EMAIL))  {
                                echo "E-mail non valide. Veuillez recommencer";
                                $valid=false;
                        }else if($row>0){
                                echo "Adresse mail déjà enregistrée";
                                $valid=false;
                        }else{
                                srand((double)microtime()*1000000);       
                                $string = md5(rand(0,1000000)); 
                                $thekey=$string;
                                $insertemail="INSERT into newsletterusers1 (nom,email,validkey) values('$nom','$email','$thekey')";
                                mysql_query($insertemail) or die("Could not insert mail");
 
                                $to     = $email;
                                $sujet  = "Activation de votre inscription aux newsletters";
                                $entete = "MIME-Version: 1.0\r\n";
                                $entete .= 'Content-type: text/html; charset=UTF-8'."\r\n";
                                $entete .= "From: root@localhost" . "\r\n".
                                                        "Replay-To: root@localhost" . "\r\n".
                                                        "X-Mailer: PHP/".phpversion();
                                                        
                                $body  ='<html><body><head><style>
                                </style></head><center><table>
                                <tr><td>
                                        <p>Madame, Monsieur,</p>        
                                        <p>Vous venez de cr&eacute;er vos newsletters sur le site xxxxx.fr .<br/>       
                                        Pour les activer, merci de cliquer sur le lien ci-dessous :</p>
                                        <a href="'.$path.'/validate.php?email='.$email.'&string='.$string.'">
                                                Je valide mon inscription
                                        </a>
                                        <p>Si vous n\'&ecirc;tes pas &agrave; l\'origine de cette demande, veuillez ne pas tenir compte de 
                                        ce message; pass&eacute; un d&eacute;lai de 48h , le compte sera automatiquement supprim&eacute;.<br/><br/>
                                        Bonne lecture,</p>
                                        <p class="bold">Votre &eacute;quipe <a href="http://127.0.0.1/knz1/">xxxxx.fr</a></p>
                                </td></tr>
                                </table></center></body></html>'; 
                                function smtpmailer($to,$sujet,$body,$entete){
                                        global $error;
                                        $mail = new PHPMailer();                
                                        $mail->IsSMTP();
                                        $mail->IsHTML(TRUE);            
                                        $mail->SMTPDebug = 1;                           
                                        $mail->SMTPAuth = true;                         
                                        $mail->SMTPSecure = 'ssl';                      
                                        $mail->Host = 'smtp.gmail.com'; 
                                        $mail->Port = 465;              
                                        $mail->Username = 'monadresse@gmail.com';
                                        $mail->Password ='monpasword';
                                        $mail->Subject = $sujet;
                                        $mail->Body = $body;
                                        $mail->AddAddress($to);
                                        if(!$mail->Send()){
                                                $error = 'Mail error'.$mail->ErrorInfo;
                                                return false;
                                        }else{
                                                $error='Mail envoyé avec succès';
                                                return true;
                                        }
                                        $mail->SmtpClose(); 
                                        unset($mail); 
                                }                       
                                smtpmailer($to,$sujet,$body,$entete);
                                echo "Pour valider votre inscription à la newsletter, un lien d'activation vous a été envoyé à votre adresse mail.";
                        }
                }
        ?>
	<form id="themes"  action="" method="post" data-rel="popup_name" class="poplight">
		<!-- ici checkboxes pour choisir ses rubriques ( à développer plus tard)-->
		<input id="nom-inscr" class="foo" name="nom" type="text" placeholder="Votre Nom (obligatoire, 5 à 26 caractères)" />
		<div id="error_name" class="failure" for="nom-inscr"></div>
 
		<input id="email-inscr" class="foo" name="email" type="text" placeholder="Votre Email" 
			value="<?php if(isset($_SESSION['email']) ) echo $_SESSION['email']; ?>" />
		<div id="error_email" class="failure" for="email-inscr"></div>
 
		<button id="action-submit" class="action-submit" name="action-submit" type="submit"><span class="tick">JE M'INSCRIS</span></button>
	</form>
 
	<div id="popup_name" class="popup_block">
		<h2>CONFIRMATION D'INSCRIPTION</h2>
		<div class="notice">
			<p>
				Les données ont été correctement enregistrées.<br/>
				Vous allez recevoir un mail d'activation à :<br /><br />
				<strong><?php echo $_SESSION['email']; ?></strong>
 
			</p>
		</div>
	</div>
 
	<script type="text/javascript">
                $(function(){
                        var formulaire = $("#themes");
                        formulaire.on('submit',function(event) {
                                event.preventDefault();
 
                                var erreur_name_div = formulaire.find("#error_name");
                                var nom00 = formulaire.find("input[name=nom]");
                                var nom = $.trim(nom00.val()); 
                                var nom_regex = /^[a-zéèàùûêâôëA-Z0-9._\'\s-]{5,26}$/;
                                
                                var erreur_email_div = formulaire.find("#error_email");
                                var mail = formulaire.find("input[name=email]");
                                var email = $.trim(mail.val()); 
                                var email_regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
                                
                                if(nom == "" ) {
                                        erreur_name_div.html("Veuillez renseigner votre nom ");
                                        return false;
                                }else if(nom != "") {
                                        if (!nom_regex.test(nom))       {
                                                erreur_name_div.html("saisie de nom incorrecte");
                                                return false;
                                        }                                               
                                } 
 
                                if(email == "") {
                                        erreur_email_div.html("Veuillez renseigner une adresse mail");
                                        return false;
                                }else if(email != "") {
                                        if (!email_regex.test(email))   {
                                        erreur_email_div.html("E-mail non valide. Veuillez recommencer");
                                        return false;}                  
                                } 
 
                                var datastring ='email='+email; 
                                $.ajax({
                                        type: "POST", 
                                        url: "modules/check_email_index.php", 
                                        data: datastring, 
                                        success: function(responseText) {
                                                if(responseText == 1) { 
                                                        erreur_email_div.html("Adresse mail déjà enregistrée");
                                                }else if(responseText == '') { 
                                                        erreur_email_div.html("");
                                                        mail.val('');   
                                                } 
                                        }
                                });
                        /*------------------------------------- début popin ---------------------*/    
                                var popID = $(this).data('rel'); 
                                var popWidth = $(this).data('width'); 
                                $('#' + popID).fadeIn("fast").css({ 'width': popWidth}).prepend('<a href="#" class="close"><img src="styles/images/close_pop.png" class="btn_close" title="Fermer la fenêtre" alt="Fermer" /></a>');
                                var popMargTop = ($('#' + popID).height() + 80) / 2;
                                var popMargLeft = ($('#' + popID).width() + 80) / 2;
                                $('#' + popID).css({ 
                                        'margin-top' : -popMargTop,
                                        'margin-left' : -popMargLeft
                                });
                                $('body').append('<div id="fade"></div>');    //ie6 <
                                $('#fade').css({'filter' : 'alpha(opacity=70)'}).show();
                                return false;
                                
                        });
 
                        $('body').on('click', 'a.close, #fade', function() { 
                                $('#fade , .popup_block').fadeOut("fast",function() {
                                        $('#fade, a.close').remove();  
                                }); 
                                return false;
                        });
                        /*------------------------------------- fin popin -------------------*/
                });
        
        
        </script>
</body>
</html>