Salut à tous et à toutes,
Voilà mon problème, j'ai mis en place une newsletter sur un de mes sites et je n'arrive pas la récupération du champ email.
Voici donc mon architecture :
1) Ma form :
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 <form method="GET"> <div id="newsletter_output"> <div id="newsletter_content"></div> <div class="newsletter_close" onclick="newsletter_hide()">X</div> </div> <label for="saisissez_email"><span>Newsletter</span> Abonnez-vous à notre lettre d'info :</label> <div class="row"><label for="saisissez_email">Saisissez votre e-mail</label> <input name="email" type="text" id="saisissez_email" onclick="this.select();" class="text" value=""> <div id="newsletter_buttons"> <div style="cursor:pointor;" onclick="TINY.ajax.call('a_ajax_subscribe_newsletter.php', 'newsletter_content', 'newsletter_display(\'newsletter_red\')')"> <img src="images/btn_ok_violet.png" alt="ok"></div> </div> </div> </form>
2) Le script, celui de tiny ajax en fait :
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 TINY={}; function T$(id){return document.getElementById(id)} TINY.ajax=function(){ return{ call:function(u,d,f,p){ var x=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP'); var useremail = document.getElementById('saisissez_email').value; x.onreadystatechange=function(){ if(x.readyState==4&&x.status==200){ if(d){ var t=T$(d); t.innerHTML=x.responseText } if(f){ var c=new Function(f); c() } } }; if(p){ x.open('POST',u,true); x.setRequestHeader('Content-type','application/x-www-form-urlencoded'); x.send(p) }else{ x.open('GET',u + '?email="+useremail"',true); x.send(null) } } }; }(); function newsletter_display(name){ var newsletter_output=T$('newsletter_output'); newsletter_output.style.display='block'; newsletter_output.className=name; } function newsletter_hide(){ var newsletter_output=T$('newsletter_output'); newsletter_output.style.display='none'; }
3) Mon fichier de tratement ajax : a_ajax_subscribe_newsletter.php
Comment récupérer ma variable "email" pour la traiter dans mon fichier de traitement ajax ?
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
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 <?php header("Content-Type: text/html; charset=UTF-8"); //define('ATSPHP', 1);//REMOVE ONCE ALL PLUGINS ARE UPDATED define('SAFRANA', 1); $CONF = array(); $FORM = array(); $TMPL = array(); // Change the path to your full path if necessary $CONF['path'] = '.'; // Connect to the database // Set the last argument of $DB->connect to 1 to enable debug mode require_once("{$CONF['path']}/settings_sql.php"); require_once("{$CONF['path']}/sources/sql/{$CONF['sql']}.php"); //$email = $_GET['email']; //$email=htmlspecialchars($_GET['email']); $email = mysql_real_escape_string($_GET["email"]); //echo "verif01 = ok ... following ..."; //if($_GET['subscribe'] = "true") { //$email = "{$email}"; if($email != "") { //$email = mysql_real_escape_string($_GET['email']); $newsletter_msg = "ok, we got your email, database check ..."; } else { $newsletter_msg = "at least, enter an email adress,<br /> tsss tsss lol, :)"; //$TMPL['newsletter_msg'] = "at least, enter an email adress, tsss tsss lol, :)"; } echo $email; $sqlCheckAgainst = "SELECT * FROM newsletterdb WHERE email='$email'"; $result = mysql_query($sqlCheckAgainst); if ($result) { $newsletter_msg .= "<br />Error : email already in database"; } else { //echo 'failure: ' . mysql_error(); $newsletter_msg .= "<br />OK, email not found, <br />following on step 2 ..."; } $notfound = true; while($row = mysql_fetch_array($result)) { if($row['email'] == $email) { $notfound = false; $newsletter_msg .= "<br />you've already subscribe to our newsletter !"; } } if($notfound == "true") { $setupdate = "INSERT INTO newsletterdb SET email='$email'"; if (mysql_query($setupdate)) { $newsletter_msg .= "ok, yes email added !"; } else { $newsletter_msg .= "nope, we had a trouble<br /> updating the db,<br />plz come back later ... !"; //echo 'failure: ' . mysql_error(); } } echo $newsletter_msg; //}//subscribe = true ?>
Merci d'avance pour votre aide.
Partager