濮阳杆衣贸易有限公司

主頁 > 網(wǎng)站建設(shè) > 建站知識(shí) > 織夢(mèng)Dedecms在用戶注冊(cè)后自動(dòng)發(fā)送驗(yàn)證郵件的實(shí)現(xiàn)

織夢(mèng)Dedecms在用戶注冊(cè)后自動(dòng)發(fā)送驗(yàn)證郵件的實(shí)現(xiàn)

POST TIME:2018-09-18 10:51

新用戶注冊(cè)郵箱驗(yàn)證的功能,功能如此強(qiáng)大的dedecms有沒有這一功能呢?回答肯定是有的,只是您不會(huì)用而已,現(xiàn)在看我的方法:1.修改/member/reg_new.php文件。

查找

$dsql->ExecuteNoneQuery($infosquery);

在下面插入


//寫入郵件驗(yàn)證內(nèi)容
$keyums = md5($userid.$email.”dedecmslove”); //這里的7就是有效期7天的時(shí)間。上面的dedecmslove就是給發(fā)送的URL加密用的KEY
$emldatetime = time()+7*24*3600;
$emailyz = “INSERT INTO `dede_sj_emailyz`(`userid`,`keyums`,`datetime`)
VALUES (‘{$userid}’,’{$keyums}’,’{$emldatetime}’); “;
$dsql->ExecuteNoneQuery($emailyz);

再找到

//———————————————-
//模擬登錄
//—————————

在其上面插入:

//發(fā)送驗(yàn)證郵件
if($cfg_md_mailtest==’Y’)
{
$msg =”<html><head></head><body>”;
$msg .= “<b><font color=’#ff0000′>”.$uname.”</font></b> 恭喜您注冊(cè)成為XXXXX的會(huì)員了!<br>”;
$msg .= “ 您的登陸帳號(hào):<b>”.$userid.”</b><br><br>”;//這里,做了個(gè)小判斷,如果是企業(yè)用戶注冊(cè),則給多送條信息去。
if($mtype==’企業(yè)’){
$msg .= “ 活動(dòng)公告:<b><font color=’#ff0000′>馬上完善您的企業(yè)信息,免費(fèi)開通3個(gè)月體驗(yàn)會(huì)員,享受更多無限制服務(wù)體驗(yàn)!</font></b><br>”;
}
$msg .= “ 注意!該驗(yàn)證有效期為1周,請(qǐng)盡快進(jìn)行您的帳戶驗(yàn)證。<br>”;
$msg .= “還有一步您就成功了,請(qǐng)點(diǎn)擊下面的鏈接進(jìn)行最后一步驗(yàn)證。(如果無法點(diǎn)擊鏈接,請(qǐng)將下面紅色部分的鏈接地址全部復(fù)制,然后粘貼到瀏覽器地址中打開?。?lt;br><br>”;
$msg .= “<a href=’http://www.XXXXX.com/member/reg_email.php?g=ok&userid=”.$userid.”&u=”.$keyums.”‘ target=_blank><font color=’#FF0000′>http://www.XXXXX.com/member/reg_email.php?g=ok&userid=“.$userid.”&u=”.$keyums.”</font></a><br><br>”;

$msg .= “請(qǐng)點(diǎn)擊打開上面的連接地址或復(fù)制到瀏覽器地址中打開。如需幫助,請(qǐng)聯(lián)系XXXXX管理員!<br><br><br>”;
$msg .= “<span style=’font-size:12px; color:#CCCCCC’>這是一封由XXXXX網(wǎng)站系統(tǒng)自動(dòng)發(fā)送的郵件,請(qǐng)不要回復(fù)郵件!</span><br>”;
$msg .= “<a href=http://www.XXXXXXX.com/>XXXXXX</a> <span style=’font-size:12px; color:#CCCCCC’>–XXXXXXXXX的門戶網(wǎng)站。</span><br>”;
$msg .= “</body></html>”;
$mailbody = ”;
//下面這個(gè)是郵件標(biāo)題,上面的是郵件正文部分。
$mailtitle = “XXXXXXXX會(huì)員注冊(cè)驗(yàn)證郵件”;
$mailbody .= “$msg ”;

$headers = “From: “.$cfg_adminemail.” Reply-To: “.$cfg_adminemail;

if($cfg_sendmail_bysmtp == ‘Y’ && !empty($cfg_smtp_server))
{ //下面這里選擇HTML網(wǎng)頁方式發(fā)送,如果郵箱不支持HTML,就改為TXT,不過現(xiàn)在好像都支持HTML了吧。
$mailtype = ‘HTML’;
require_once(DEDEINC.’/mail.class.php’);
$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
$smtp->debug = false;
$smtp->sendmail($email, $cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);

}
else
{
@mail($email, $mailtitle, $mailbody, $headers);
}
ShowMsg(“恭喜您注冊(cè)成為XXXXXXXXXX的會(huì)員了,現(xiàn)在需要對(duì)您的電子郵件( “.$email.” )進(jìn)行驗(yàn)證(有效期1周),請(qǐng)登陸您的郵箱查收!如果無法查收到郵件,請(qǐng)馬上聯(lián)系管理員!”,”index.php”,0,20000);
exit();
}

最后修改如下代碼:


//———————————————-
//模擬登錄
//—————————
//$ml = new MemberLogin(7*3600);
//$rs = $ml->CheckUser($userid,$userpwd);
//ShowMsg(“注冊(cè)成功,3秒鐘后轉(zhuǎn)向系統(tǒng)主頁…”,”index.php”,0,2000);
//exit();

2.寫個(gè)郵件驗(yàn)證的文件吧。代碼全貼出來了。 保存為 member文件夾下面 reg_email.php文件

3.把數(shù)據(jù)表貼出來。


Table “dede_sj_emailyz” DDLCREATE TABLE `dede_sj_emailyz` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`userid` char(20) character set gbk NOT NULL,
`keyums` varchar(100) NOT NULL,
`datetime` int(10) unsigned NOT NULL default ’0′,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=358 DEFAULT CHARSET=latin1;

最后大家需要在登陸的地方判斷下,免得驗(yàn)證白費(fèi)了。

4.修改/member/index_do.php這個(gè)文件。因?yàn)槲业挠谐绦蛘虾投伍_發(fā),所以代碼和大家都不一樣。就不貼全部,給個(gè)提示。不過判斷是否驗(yàn)證部分代碼是全的。

if($rs == 0)
{
ShowMsg(“用戶名不存在!”,”-1″,0,2000);
exit();
}
else if($rs == -1) {
ShowMsg(“密碼錯(cuò)誤!”,”-1″,0,2000);
exit();
}

大家先找到這部分代碼,看到了沒有???嘿嘿,沒看到我就沒辦法了。

找到了,接著看我的代碼,大家看著改,注意括號(hào)咯!

我的代碼就是從這開始,一直到最底下有個(gè)

//退出登錄
   else if($dopost==”exit”)

這部分結(jié)束的。

if($rs == 0)
{
ShowMsg(“用戶名不存在!”,”-1″,0,2000);
exit();
}
else if($rs == -1) {
ShowMsg(“密碼錯(cuò)誤!”,”-1″,0,2000);
exit();
}
else if($rs == -2) {
ShowMsg(“管理員帳號(hào)不允許從前臺(tái)登錄!”,”-1″,0,2000);
exit();
}
else
{
//驗(yàn)證郵件
$rowemail = $dsql->GetOne(“SELECT `rank` FROM dede_member WHERE userid=’$userid’ “);
if($rowemail['rank']==’0′) {
$ucsynlogin = uc_user_synlogout();
$cfg_ml->ExitCookie();
ShowMsg(“您還未通過郵件驗(yàn)證,無法登陸!”,”-1″,0,2000);
exit();
}
if(empty($gourl) || eregi(“action|_do”,$gourl))
{
ShowMsg(“成功登錄,5秒鐘后轉(zhuǎn)向系統(tǒng)主頁…”,”index.php”,0,2000);
}
else
{
ShowMsg(“成功登錄,現(xiàn)在轉(zhuǎn)向指定頁面…”,$gourl,0,2000);
}
exit();
}
} //退出登錄
else if($dopost==”exit”)

OK,完成了。這里就不在演示了。注意里面的雙引號(hào),應(yīng)該是半角的,復(fù)制完以后注意修改里面的全角雙引號(hào)為半角雙引號(hào)。



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
古丈县| 谢通门县| 金塔县| 剑川县| 大安市| 兴化市| 仁化县| 民丰县| 西宁市| 日喀则市| 宝山区| 尼勒克县| 四会市| 马鞍山市| 通榆县| 中阳县| 甘德县| 界首市| 汝阳县| 宁陕县| 合作市| 井陉县| 盱眙县| 三穗县| 炎陵县| 仙桃市| 乌恰县| 巩留县| 宽甸| 秦安县| 罗甸县| 南华县| 浦县| 荆州市| 麻城市| 神池县| 永登县| 桃源县| 麻江县| 渭源县| 新民市|