所以,你需要确认用户的电子邮件地址? 没问题。 有很多理由,要求确认电子邮件,和PHP变得非常简单。
电子邮件确认才能完成这些步骤:
- 提示使用者无论您需要的信息从他们(包括他们的电子邮件地址)
- 输入这个数据库中的数据
- 用户发送的电子邮件,特别确认键
- “解锁”数据库中的数据,一旦确认键输入。
如何做到这一点:
“ ?的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 = 的MD5 ( uniqid ( 兰特 ()));
/ /一切都或多或少地确定进入数据库,然后发送电子邮件给用户
$查询= “ 插入emailConfirmationTable ( user_email , con_code )值( ' $电子邮件' , ' $ confirmation_code ' ) ” ;
("Config Error 2223 "); $结果= mysql_query ( $查询) 或死亡 ( “配置错误2223 ” ) ;
/ /发送的电子邮件
$到= $电子邮件;
$主题= “ 您shortlikeafox例如确认” ; / /从
$标题= “ 来自: shortlikeafox <info@shortlikeafox.com> ” ;
/ /您的邮件
$讯息= “ 您Comfirmation连结! \ r \ ñ ” ;
$讯息.= “ 点击该链接激活您的帐户\ r \ ñ ” ;
$讯息.= “ 这个连结与到期时,我感觉清洁的未经证实的电子邮件(或每星期做) \ r \ ñ ” ;
$讯息.= “ http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ confirmation_code \ r \ ñ ” ;
= $寄出的邮件 ( $到, $议题, $讯息, $头) ;
); 回声 ( “ 您的确认电子邮件已发送! ” ) ;
)
)
/ /如果用户发现此脚本从一个链接在他的电子邮件,确认... 。
[ '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 ” ) ;
如果 ( $结果)
); 回声 ( “ 电子邮件已确认! ” ) ;
)
其他的
); 回声 ( “无法确认电子邮件” ) ;
)
? “
这是非常重要的是要记住,以验证资料,使用者插入任何形式的。 我并没有包括一个函数的电子邮件地址验证上述情况,而是一个良好的开端是加州亨德森的电子邮件验证功能这里找到。
如果你想看到这个剧本的行动,你可以这样做在这里。