如何确认电子邮件地址,使用PHP

张贴 PHP的ShortLikeAFox对2008年8月5日

所以你需要确认用户的电子邮件地址? 没问题。 有很多理由,要求确认电子邮件,和PHP变得非常简单。

电子邮件确认才能完成这些步骤:

  1. 提示使用者无论您需要的信息从他们(包括他们的电子邮件地址)
  2. 输入这个数据库中的数据
  3. 用户发送一封电子邮件,其中特别确认键
  4. “解锁”的数据库中的数据,一旦确认键输入。

如何做到这一点:

“ ?的PHP

/ /首先,让我们连接到数据库

$用户名= “ dbUserName ” ;
$东道国= “ dbHost ” ;
$ my_password = “ dbPassword ” ;
$ db_name = “ dbName ” ;

/ /连接到服务器并选择数据库
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect“ $主机”“ $用户名”“ $ my_password ”或死亡“无法连接到服务器” ) ;
) or die ( "cannot select DB" ); mysql_select_db“ $ db_name ”或死亡“不能选择数据库” ) ;

/ /下面一行基本要求,如果用户需要的形式显示出来。 读了什么,如果您想看到的变数来自

(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ 如果 ( @ $ _GET [ '第一' ] == “不”& & ! ( @ $ _GET [ '确认' ] == “是” ) (
/ /由于这该网页的第一个显示和没有确认码包括我们应该显示的形式为用户填写
/ /本表只需要一个参数(用户的电子邮件地址) 。
? “

method= "post" action= "index.php?first=no" > <form name= "emailConfirmation" method= "post" action= "index.php?first=no"

<table align="center">
<tr>
<td>
type= "text" id= "email" size= "30" />电子邮件: <input name= "email" type= "text" id= "email" size= "30" />
“ /运输署”
“ /文”
<tr>
<td align="center">
name= "Submit" value= "Submit" /> <input type= "submit" name= "Submit" value= "Submit" />
“ /运输署”
“ /文”
“ /表”
“ /表格”

“ ?的PHP

/ /如果该表已填写了,我们需要生成一个确认码,插入确认码和用户电子邮件到一个数据库,并发送电子邮件的电子邮件地址。
[ 'first' ] == "no" ){ //if the form has been filled out… elseif ( @ $ _GET [ '第一' ] == “不” ) ( / /如果该表已填写了...

/ / is_valid_email_address 不是一个有效的PHP函数。 插入您自己的电子邮件地址校验功能在这里...
is_valid_email_address( $_POST [ 'email' ])) 如果 is_valid_email_address ( 的$ _POST [ '电子邮件' ] ) )

); 回声“对不起!您输入的电子邮件地址是无效的。 ” ) ;

/ /如果该电子邮件地址似乎是可行的和安全的...
其他

]); $电子邮件= ( 的$ _POST [ '电子邮件' ] ) ;
/ /生成一个确认码这里。 这是我选择的方式做到这一点,但也有无数的方法,将工作。
( rand ())); $ confirmation_code = 的MD5uniqid兰特 ()));
/ /一切都或多或少地确定进入数据库,然后发送电子邮件到用户
$查询= “插入emailConfirmationTable ( user_email , con_code )值( ' $电子邮件' , ' $ confirmation_code ' ) ” ;
("Config Error 2223 "); $结果= mysql_query ( $查询) 或死亡 ( “配置错误2223 ” ) ;
/ /发送电子邮件
$到= $电子邮件;
$主题= “您shortlikeafox例如确认” ; / /从
$标题= “来源: shortlikeafox <info@shortlikeafox.com> ” ;
/ /您的邮件
$讯息= “您Comfirmation链接! \ r \ N ”的 ;
$消息.= “点击该链接以激活您的帐户\ r \ N ”的 ;
$消息.= “此链接与到期时我感觉清理的未经证实的电子邮件(每星期或如此) \ r \ N ”的 ;
$消息.= “ http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ confirmation_code \ r \ N ”的 ;
邮件寄出= $ ( $到, $主题, $消息, $头) ;

); 回声“给您的确认邮件已发送! ” ) ;


/ /如果用户发现该脚本从一个链接,他的电子邮件,确认... 。
[ 'confirm' ] == "yes" ){ elseif ( @ $ _GET [ '确认' ] == “是” ) (
/ /让confirmCode相对安全使用

[ 'confirmCode' ]); $ confirmCode = mysql_real_escape_string ( @ $ _GET [ ' confirmCode ' ] ) ;

$查询= “选择*从emailConfirmationTable在哪里con_code = ' $ confirmCode '和is_confirmed = '0 ' ” ;
( "Error 234234" ); $结果= mysql_query ( $查询) 或死亡“错误234234 ” ) ;
$ nrows = mysql_num_rows ( $结果) ;
1){ 如果 ( $ nrows == 1 ) (
$查询= “更新emailConfirmationTable集is_confirmed = '1 ' ,其中con_code = ' $ confirmCode ' ” ;
( "Config Error 222231231233 " ); $结果= mysql_query ( $查询) 或死亡“配置错误222231231233 ” ) ;
如果 ( $结果)
); 回声“电子邮件已确认! ” ) ;


其他的

); 回声“无法确认电子邮件” ) ;

? “

这是非常重要的是要记住的信息,以验证该用户插入任何形式。 我没有包括的功能验证上述电子邮件地址,而是一个良好的开端是加州亨德森的电子邮件验证功能这里找到

如果你想看到这个剧本的行动,您可以在这里。

发表评论