麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 建站經驗 > 正文

Dede新用戶注冊發送驗證郵件的方法

2024-04-25 20:51:09
字體:
來源:轉載
供稿:網友
在discuz和phpwind等知名論壇中,都有新用戶注冊郵箱驗證的功能,那么功能如此強大的dedecms有沒有這一功能呢?回答肯定是有的,只是您不會用而已,現在看我的方法:

  1.修改/member/reg_new.php文件。

  查找

$dsql->ExecuteNoneQuery($infosquery);
復制代碼
  在下面插入

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

復制代碼
  再找到

//----------------------------------------------
//模擬登錄
//---------------------------
復制代碼
  在其上面插入:

//發送驗證郵件
  if($cfg_md_mailtest=='Y')
  {
    $msg ="<html><head></head><body>";
    $msg .= "<b><font color='#ff0000'>".$uname."</font></b> 恭喜您注冊成為XXXXX的會員了!<br>";
    $msg .= "   您的登陸帳號:<b>".$userid."</b><br><br>";//這里,做了個小判斷,如果是企業用戶注冊,則給多送條信息去。
  if($mtype=='企業'){
    $msg .= "   活動公告:<b><font color='#ff0000'>馬上完善您的企業信息,免費開通3個月體驗會員,享受更多無限制服務體驗!</font></b><br>";
    }
    $msg .= "   注意!該驗證有效期為1周,請盡快進行您的帳戶驗證。<br>";
    $msg .= "還有一步您就成功了,請點擊下面的鏈接進行最后一步驗證。(如果無法點擊鏈接,請將下面紅色部分的鏈接地址全部復制,然后粘貼到瀏覽器地址中打開!)<br><br>";
    $msg .= "<a href='http://www.XXXXX.com/member/reg_email.php?g=ok&userid=".$userid."&u=".$keyums."' target=_blank><font color='#FF0000'>[url]http://www.XXXXX.com/member/reg_email.php?g=ok&userid=[/url]".$userid."&u=".$keyums."</font></a><br><br>";
  
    $msg .= "請點擊打開上面的連接地址或復制到瀏覽器地址中打開。如需幫助,請聯系XXXXX管理員!<br><br><br>";
    $msg .= "<span style='font-size:12px; color:#CCCCCC'>這是一封由XXXXX網站系統自動發送的郵件,請不要回復郵件!</span><br>";
    $msg .= "<a href=http://www.XXXXXXX.com/>XXXXXX</a> <span style='font-size:12px; color:#CCCCCC'>--XXXXXXXXX的門戶網站。</span><br>";
    $msg .= "</body></html>";
    $mailbody = '';
    //下面這個是郵件標題,上面的是郵件正文部分。
    $mailtitle = "XXXXXXXX會員注冊驗證郵件";
    $mailbody .= "$msg /r/n/r/n";
  
   $headers = "From: ".$cfg_adminemail."/r/nReply-To: ".$cfg_adminemail;
  
   if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server))
   {  //下面這里選擇HTML網頁方式發送,如果郵箱不支持HTML,就改為TXT,不過現在好像都支持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("恭喜您注冊成為XXXXXXXXXX的會員了,現在需要對您的電子郵件( ".$email." )進行驗證(有效期1周),請登陸您的郵箱查收!如果無法查收到郵件,請馬上聯系管理員!","index.php",0,20000);
   exit();
  }
復制代碼
最后修改如下代碼:
//----------------------------------------------
  //模擬登錄
  //---------------------------
  //$ml = new MemberLogin(7*3600);
  //$rs = $ml->CheckUser($userid,$userpwd);
  //ShowMsg("注冊成功,3秒鐘后轉向系統主頁...","index.php",0,2000);
  //exit();
復制代碼
  2.寫個郵件驗證的文件吧。代碼全貼出來了。 保存為 member文件夾下面 reg_email.php文件

<?php
require_once(dirname(__FILE__)."/config.php");

if(!isset($userid))
{
$userid = '';
}if($g=='ok')
{
$userid = trim($userid);
$keyums = trim($u);
$logintimes = time();

//檢測會員帳號是否存在
$row = $dsql->GetOne("Select id From `dede_sj_emailyz` where userid='$userid' and datetime>'$logintimes' ");
if(!is_array($row))
{
  ShowMsg("對不起!您已經通過郵件驗證了,或者您的驗證有效期已過!","-1");
  exit();
}
 
  
$updatembs = "Update `dede_member` set rank='10' where userid='$userid';";
$dsql->ExecuteNoneQuery($updatembs);
if($dsql->ExecuteNoneQuery($updatembs))
{
$dsql->ExecuteNoneQuery("Delete From `dede_sj_emailyz` where userid='$userid' ");
}else{
  ShowMsg("對不起!您的帳戶異常,請聯系管理員為您處理!","-1");
  exit();



  ShowMsg("驗證成功,6秒鐘后轉向系統主頁...","index.php",0,5000);
  exit();
}
else
{
  ShowMsg("驗證失敗,請檢查資料是否有誤或與管理員聯系!","-1");
  exit();
}?>
復制代碼
  3.把數據表貼出來。

-- 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;
復制代碼
 最后大家需要在登陸的地方判斷下,免得驗證白費了。
  4.修改/member/index_do.php這個文件。因為我的有程序整合和二次開發,所以代碼和大家都不一樣。就不貼全部,給個提示。不過判斷是否驗證部分代碼是全的。

if($rs == 0)
  {
   ShowMsg("用戶名不存在!","-1",0,2000);
   exit();
  }
  else if($rs == -1) {
   ShowMsg("密碼錯誤!","-1",0,2000);
   exit();
  }
復制代碼
  大家先找到這部分代碼,看到了沒有啊?嘿嘿,沒看到我就沒辦法了。
  
  找到了,接著看我的代碼,大家看著改,注意括號咯!
  我的代碼就是從這開始,一直到最底下有個
  //退出登錄
   else if($dopost=="exit")
  這部分結束的。

if($rs == 0)
  {
   ShowMsg("用戶名不存在!","-1",0,2000);
   exit();
  }
  else if($rs == -1) {
   ShowMsg("密碼錯誤!","-1",0,2000);
   exit();
  }
  else if($rs == -2) {
   ShowMsg("管理員帳號不允許從前臺登錄!","-1",0,2000);
   exit();
  }
  else
  {
  //驗證郵件
  $rowemail = $dsql->GetOne("SELECT `rank` FROM dede_member WHERE userid='$userid' ");
  if($rowemail['rank']=='0') {
   $ucsynlogin = uc_user_synlogout();
   $cfg_ml->ExitCookie();
   ShowMsg("您還未通過郵件驗證,無法登陸!","-1",0,2000);
   exit();
  }
   if(empty($gourl) || eregi("action|_do",$gourl))
   {
    ShowMsg("成功登錄,5秒鐘后轉向系統主頁...","index.php",0,2000);
   }
   else
   {
    ShowMsg("成功登錄,現在轉向指定頁面...",$gourl,0,2000);
   }
   exit();
  }
} //退出登錄
else if($dopost=="exit")
復制代碼
  OK,完成了。這里就不在演示了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久久久九九九九 | 天使萌一区二区三区免费观看 | 成人视屏在线 | 青草av.久久免费一区 | 中文字幕一区2区 | 日本成人一二三区 | xvideos korean | 国产91丝袜在线播放 | 超久久| 成人福利视频 | 精国产品一区二区三区 | 免费观看一区 | 牛牛碰在线| 午夜视频在线看 | 日本xxxx色视频在线观看免费, | 九九夜夜 | 极品大长腿啪啪高潮露脸 | 91麻豆精品国产91久久久无需广告 | 午夜爽爽爽男女免费观看hd | 538任你躁在线精品视频网站 | 精品一区二区三区在线观看国产 | 欧美 日韩 亚洲 中文 | 99亚洲国产精品 | 国产精品高清一区 | 欧美国产永久免费看片 | a集毛片| 国产亚洲欧美日韩在线观看不卡 | 午夜精品福利影院 | 最近日本电影hd免费观看 | 人禽l交免费视频 | 色999久久久精品人人澡69 | 久久999久久| 久久久精品视频网站 | 久久色伦理资源站 | 成年人免费视频大全 | xxxx hd video 69 | 看一级大毛片 | www.99re14.com| 亚洲一区二区三区四区精品 | 精品国产一区二区三区天美传媒 | 日韩黄色一级视频 |