2013-03-19 133 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