网站地图    收藏   

主页 > 后端 > ecshop教程 >

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

来源:自学PHP网    时间:2014-11-28 23:31 作者: 阅读:

[导读] 1、注册成功自动发邮件并退出登录状态,提示需要验证邮件才能登录。在user php大约233行很234行,把:$ucdata=emptyempty($user-ucdata)?:$user-ucdata;show_message(sprintf($_LANG[ 39;registe...

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

1、注册成功自动发邮件并退出登录状态,提示需要验证邮件才能登录。

在user.php大约233行很234行,把:

  1. $ucdata = emptyempty($user->ucdata)? "" : $user->ucdata; 
  2.             show_message(sprintf($_LANG['register_success'], $username . $ucdata), array($_LANG['back_up_page'], $_LANG['profile_lnk']), array($back_act'user.php'), 
  3.  
  4. 'info'); 
  5.  
  6. //替换成: 
  7.  
  8.           $cfg = $_CFG['smtp_user']; 
  9.           if(!emptyempty($cfg) ) 
  10.           { 
  11.               $sql="select user_id from ".$GLOBALS['ecs']->table('users') ."where user_name = '$username'"
  12.               $user_id=$db->getOne($sql); 
  13.               send_regiter_hash ($user_id); 
  14.      } 
  15.      $user->logout(); 
  16.               show_message('需要验证邮件才能登录'array($_LANG['back_up_page'], $_LANG['back_home_lnk']), array('user.php''index.php'), 'info'); 

购物流程时注册也要相应的修改,打开flow.php大约282行,查找:

  1. if (register(trim($_POST['username']), trim($_POST['password']), trim($_POST['email']))) 
  2. 将下面代码: 
  3.                 
  4.                 ecs_header("Location: flow.php?step=consignee\n"); 
  5.                 exit
  6. //替换成: 
  7.  
  8.       $cfg = $_CFG['smtp_user']; 
  9.       if(!emptyempty($cfg) ) 
  10.       { 
  11.        $sql="select user_id from ".$GLOBALS['ecs']->table('users') ."where user_name = '".trim($_POST['username'])."'"; 
  12.        $user_id=$db->getOne($sql); 
  13.        send_regiter_hash ($user_id); 
  14.        } 
  15.        $user->logout(); 
  16.        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文件结束标签前添加:

  1. function  is_validated_emil($username
  2.      $sql = "SELECT  is_validated" . 
  3.      " FROM "$GLOBALS['ecs']->table('users'). 
  4.      " WHERE  user_name='" . $username."'"
  5.  
  6.      return $GLOBALS['db']->getOne($sql); 

用于检测邮箱验证状态,修改user.php大约349行,也可查找:

  1. if ($user->login($username$password,isset($_POST['remember']))) 
  2. //在下面把: 
  3.         update_user_info(); 
  4.         recalculate_price(); 
  5.  
  6.         $ucdata = isset($user->ucdata)? $user->ucdata : ''
  7.         show_message($_LANG['login_success'] . $ucdata , array($_LANG['back_up_page'], $_LANG['profile_lnk']), array($back_act,'user.php'), 'info'); 
  8. //改成: 
  9.   if(is_validated_emil($username) > 0) 
  10.   { 
  11.         update_user_info(); 
  12.         recalculate_price(); 
  13.  
  14.         $ucdata = isset($user->ucdata)? $user->ucdata : ''
  15.         show_message($_LANG['login_success'] . $ucdata , array($_LANG['back_up_page'], $_LANG['profile_lnk']), array('user.php','user.php'), 'info'); 
  16.   } 
  17.   else 
  18.     { 
  19.          $user->logout(); 
  20.          show_message('需要验证邮件才能登录'array($_LANG['back_up_page'], $_LANG['back_home_lnk']), array('user.php''index.php'), 'info'); 
  21.   } 

购物流程时登录也要相应的修改,打开flow.php大约239行,查找:

  1. if ($user->login($_POST['username'], $_POST['password'],isset($_POST['remember']))) 
  2. 将下面的代码: 
  3.                 update_user_info();  //更新用户信息 
  4.                 recalculate_price(); // 重新计算购物车中的商品价格 
  5.  
  6.                 
  7.                 $sql = "SELECT COUNT(*) FROM " . $ecs->table('cart') . " WHERE session_id = '" . SESS_ID . "' "
  8.                 if ($db->getOne($sql) > 0) 
  9.                 { 
  10.                     ecs_header("Location: flow.php?step=checkout\n"); 
  11.                 } 
  12.                 else 
  13.                 { 
  14.                     ecs_header("Location:index.php\n"); 
  15.                 } 
  16.  
  17.                 exit
  18. //改为: 
  19.  if(is_validated_emil($_POST['username']) > 0) 
  20.  { 
  21.        update_user_info();  //更新用户信息 
  22.        recalculate_price(); // 重新计算购物车中的商品价格 
  23.  
  24.  
  25.   $sql = "SELECT COUNT(*) FROM " . $ecs->table('cart') . " WHERE session_id = '" . SESS_ID . "' "
  26.   if ($db->getOne($sql) > 0) 
  27.   { 
  28.          ecs_header("Location: flow.php?step=checkout\n"); 
  29.   }else
  30.          ecs_header("Location:index.php\n"); 
  31.   } 
  32.        exit
  33.   }else
  34.        $user->logout(); 
  35.        show_message('需要验证邮件才能登录'array($_LANG['back_up_page'], $_LANG['back_home_lnk']), array('flow.phpstep=login''index.php'), 'info'); 
  36.    } 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论