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[] =
新聞熱點
疑難解答