ecshop需求:
1. 新注册的用户需要后台管理员进行确认之后才能成为正式用户。
2. 新用户注册之后,提示请等待管理员确认后才能使用。
3. 新注册的用户,如果管理员没有对其注册身份进行确认,在登录时会提示请等待管理员确认之后才能登录。
在观察数据库表的时候发现,users表中有个is_validated字段,默认是0,表明没有通过验证。我们基于这个字段来实现本文要求的功能。
升级说明
新注册的ecshop商城模板用户需要后台管理员确认之后才能成为正式注册的用户。在用户提交注册信息之后,提示用户管理员会通过电话对其身份进行确认。未确认的用户无法登录,未确认用户登录时会提示需要确认的信息。
升级方法
【1】在languages/zh_cn/admin/users.php中增加:
$_LANG['invalid_is_validated'] = '只能输入0或1。0为无效,1为有效';
【2】在languages/zh_cn/user.php中增加:
$_LANG['login_failure_invalid'] = '需管理员确认身份之后才能登陆';
【3】修改includes/modules/integrates/integrate.php中的login函数为:
/**
* 用户登录函数
*
* @access public
* @param string $username
* @param string $password
*
* @return int
*/
function login($username,$password, $remember = null)
{
$rt = $this->check_user($username, $password);
if ($rt > 0)
{
if($this->need_sync)
{
$this->sync($username,$password);
}
$this->set_session($username);
$this->set_cookie($username, $remember);
return 1;
}
else if ($rt == -1)
{
//If the user is not valid, returns -1.
return -1;
}
else
{
return 0;
}
}
修改add_user函数为:
/**
* 添加一个新用户
*
* @access public
* @param
*
* @return int
*/
functionadd_user($username, $password, $email, $gender = -1, $bday = 0, $reg_date=0,$md5password='')
{
/* 将用户添加到整合方 */
if($this->check_user($username) != 0)
{
$this->error =ERR_USERNAME_EXISTS;
return false;
}
/* 检查email是否重复 */
$sql = "SELECT" . $this->field_id .
" FROM" . $this->table($this->user_table).
" WHERE" . $this->field_email . " = '$email'";
if($this->db->getOne($sql, true) > 0)
{
$this->error =ERR_EMAIL_EXISTS;
return false;
}
$post_username =$username;
if ($md5password)
{
$post_password =$this->compile_password(array('md5password'=>$md5password));
}
else
{
$post_password =$this->compile_password(array('password'=>$password));
}
$fields =array($this->field_name, $this->field_email, $this->field_pass);
$values =array($post_username, $email, $post_password);
if ($gender > -1)
{
$fields[] =
新闻热点
疑难解答