ECshop中注册时的邮箱验证功能实现代码

1、注册成功自动发邮件并退出登录状态,提示需要验证邮件才能登录。
在user.php大约233行很234行
把:
            $ucdata =empty($user->ucdata)? "" : $user->ucdata;
            show_message(sprintf($_LANG['register_success'], $username .$ucdata), array($_LANG['back_up_page'], $_LANG['profile_lnk']),array($back_act, 'user.php'),

'info');

替换成:
          $cfg =$_CFG['smtp_user'];
          if(!empty($cfg) )
          {
              $sql="select user_id from".$GLOBALS['ecs']->table('users') ."where user_name ='$username'";
              $user_id=$db->getOne($sql);
              send_regiter_hash ($user_id);
      }
      $user->logout();
              show_message('需要验证邮件才能登录',array($_LANG['back_up_page'], $_LANG['back_home_lnk']),array('user.php', 'index.php'), 'info');

购物流程时注册也要相应的修改
打开flow.php大约282行
查找:
            if(register(trim($_POST['username']), trim($_POST['password']),trim($_POST['email'])))
将下面代码:
               
                ecs_header("Location:flow.php?step=consignee\n");
                exit;
替换成:
      $cfg= $_CFG['smtp_user'];
      if(!empty($cfg) )
      {
        $sql="select user_id from".$GLOBALS['ecs']->table('users') ."where user_name ='".trim($_POST['username'])."'";
        $user_id=$db->getOne($sql);
        send_regiter_hash ($user_id);
        }
        $user->logout();
        show_message('需要验证邮件才能登录',array($_LANG['back_up_page'],     $_LANG['back_home_lnk']), array('flow.php?step=login','index.php'), 'info');

2、登录时判断是否通过邮件验证,没通过提示需要验证邮件才能登录。
在includes/lib_mian.php里面php文件结束标签前添加:
function   is_validated_emil($username)
{
      $sql ="SELECT   is_validated" .
      " FROM". $GLOBALS['ecs']->table('users').
      "WHERE   user_name='" . $username."'";

      return$GLOBALS['db']->getOne($sql);
}
用于检测邮箱验证状态!。
修改user.php大约349行
也可查找:
      if($user->login($username,$password,isset($_POST['remember'])))
在下面把:
        update_user_info();
        recalculate_price();

        $ucdata = isset($user->ucdata)?$user->ucdata : '';
        show_message($_LANG['login_success'] . $ucdata ,array($_LANG['back_up_page'], $_LANG['profile_lnk']),array($back_act,'user.php'), 'info');
改成:
  if(is_validated_emil($username) >0)
  {
        update_user_info();
        recalculate_price();

        $ucdata = isset($user->ucdata)?$user->ucdata : '';
        show_message($_LANG['login_success'] . $ucdata ,array($_LANG['back_up_page'], $_LANG['profile_lnk']),array('user.php','user.php'), 'info');
  }
  else
    {
          $user->logout();
          show_message('需要验证邮件才能登录',array($_LANG['back_up_page'], $_LANG['back_home_lnk']),array('user.php', 'index.php'), 'info');
  }

购物流程时登录也要相应的修改
打开flow.php大约239行
查找:
            if($user->login($_POST['username'],$_POST['password'],isset($_POST['remember'])))
将下面的代码:
                update_user_info();  //更新用户信息
                recalculate_price(); //重新计算购物车中的商品价格

               
                $sql = "SELECT COUNT(*) FROM" . $ecs->table('cart') . " WHERE session_id = '" . SESS_ID . "'";
                if ($db->getOne($sql) >0)
                {
                    ecs_header("Location:flow.php?step=checkout\n");
                }
                else
                {
                    ecs_header("Location:index.php\n");
                }

                exit;
改为:
  if(is_validated_emil($_POST['username'])> 0)
  {
        update_user_info();  //更新用户信息
        recalculate_price(); // 重新计算购物车中的商品价格

 
  $sql = "SELECT COUNT(*) FROM " .$ecs->table('cart') . " WHERE session_id = '" . SESS_ID . "'";
  if ($db->getOne($sql) > 0)
  {
          ecs_header("Location:flow.php?step=checkout\n");
  }else{
          ecs_header("Location:index.php\n");
  }
        exit;
  }else{
        $user->logout();
        show_message('需要验证邮件才能登录',array($_LANG['back_up_page'], $_LANG['back_home_lnk']),array('flow.phpstep=login', 'index.php'), 'info');
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值