• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > CMS教程 > discuz教程 >

Disuz! 关于注册的Email验证分析(2)

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-02-07点击:

case:1为Email验证方式。
$idstring为随机生成的6位字符串。
$authstr为根据规则生成的对应该用户的验证串。
$verifyurl为生成的该用户的验证url链接。

  1. sendmail("$username <$email>", lang('email', 'email_verify_subject'), $email_verify_message); 

向该用户发送验证邮件(邮件内容包含验证链接)。


用户点击邮件里的链接进行验证分析:
找到source\module\member\member_activate.php文件

  1. $query = DB::query("SELECT m.uid, m.username, m.credits, mf.authstr FROM ".DB::table('common_member')." m, ".DB::table('common
    _member_field_forum')." mf  
  2.                 WHERE m.uid='$_G[gp_uid]' AND mmf.uid=m.uid AND m.groupid='8'");  
  3.  
  4.         $member = DB::fetch($query);  
  5.         list($dateline, $operation, $idstring) = explode("\t", $member['authstr']); 

从数据库里查询对应这个用户的验证串(authstr)。

  1. if($operation == 2 && $idstring == $_G['gp_id']) {  
  2.                 $query = DB::query("SELECT groupid FROM ".DB::table('common_usergroup')." WHERE type='member' AND '$member[credits]'>
    =creditshigher AND '$member[credits]'<creditslower LIMIT 1");  
  3.                 DB::query("UPDATE ".DB::table('common_member')." SET groupid='".DB::result($query, 0)."'emailstatus='1' WHERE uid='$member[uid]'");  
  4.                 DB::query("UPDATE ".DB::table('common_member_field_forum')." SET authstr='' WHERE uid='$member[uid]'");  
  5.                 showmessage('activate_succeed', 'index.php', array('username' => $member['username']));  
  6.         } else {  
  7.                 showmessage('activate_illegal', 'index.php');  
  8.         } 

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1978130638@qq.com ,  QQ