2013-03-19 86 views
0

我在我的网站上订阅了一个通讯订阅表格,我希望它能进入一个页面,通讯确认/订阅确认

确认用户已注册。目前它只是刷新页面,并给出了一个小表达框的消息。已经测试了它,它也不会关心你是否

把电子邮件地址错误等,我想它,所以它会检查这些信息,只有

的提交正确的电子邮件地址。此刻的代码是

<?php 

// get vars 
$email_address = strtolower(trim($_REQUEST['email_address'])); 

if((strlen($email_address) > 0) && (strpos($email_address, "@"))) 
{ 
    // add to db 
    $newsletterQry = db_query("SELECT * FROM newsletter_subscribers WHERE email='" . mysql_real_escape_string($email_address) . "'"); 
    if(db_num_rows($newsletterQry) == 0) 
    { 
     // add 
     db_query("INSERT INTO newsletter_subscribers (email, created) VALUES ('" . mysql_real_escape_string($email_address) . "', NOW())"); 
    } 
} 

// return back to the index page with confirmation 
header("location: ".$_SERVER["HTTP_REFERER"]."?nlMsg=".urlencode("You've been added to the site newsletter.")); 
exit; 
?> 
+0

*完全重复:* http://stackoverflow.com/q/5855811/1563422 – 2013-03-19 03:06:11

回答

0

请参阅How to validate an Email in PHP上的解决方案。 您想要使用RegEx或PHP的内置filter_var()函数来清理电子邮件地址。

<?php 
$email_address = strtolower(trim($_REQUEST['email_address'])); 
if (filter_var($email_address, FILTER_VALIDATE_EMAIL)) { 
    // This email address is valid insert into newsletter 
} 
+0

感谢您的答复我是否需要只插入行或我需要一堆其他的代码来验证它。另外我怎么能得到确认打开弹出窗口或页面说谢谢subscirbing等 – 2013-03-19 12:57:19

+0

@AdamWilson,这一点代码是你需要做的验证电子邮件是有效的。你可以做一个倒序来测试它是否无效......'if(!filter_var($ email_address,FILTER_VALIDATE_EMAIL)){...}'对于确认或弹出的问题,这超出了这个问题的范围线)。请为该答案搜索stackoverflow或创建一个新问题。另外,您可能需要阅读StackOverflow FAQ:http://stackoverflow.com/faq – 2013-03-19 19:34:39