3 回答
TA贡献1820条经验 获得超10个赞
请您分享函数 UsernameDuplicatechecking($userName) 的代码,或者您可以尝试以下解决方案,如果有帮助,请告诉我。将以下函数添加到您的 userdb 模型中
function checkDuplicateUsername($userName)
{
$this->db->where('userName',$userName);
$query = $this->db->get('USERDB');
if ($query->num_rows() > 0){
return true;
}
else{
return false;
}
}
现在更新您的控制器功能如下:
$checkvalidation = $this->userdb->checkDuplicateUsername($userName);
if($checkvalidation == true){
$this->userdb->updateUser($userName,$userEmail,$userAddress,$userPhone,$id);
}else{
$this->session->set_flashdata('errormessage', 'Your message here');
redirect("User/EditUserAccount/$id");
}
TA贡献1831条经验 获得超10个赞
考虑到您的用户名输入名为userName,一种解决方案是您可以添加条件is_unique验证,以便如果用户不更改他/她的用户名,则不要将其验证为唯一的。
这可以通过userName按 id 从数据库中提取用户并将其与发布的userName值进行比较来完成:
$id = $this->input->post('id');
$old_username = $this->db->get_where('USERDB', array('userId' => $id))->row_array();
$original_value = $old_username['userName'];
if($this->input->post('userName') != $original_value) {
$is_unique = '|is_unique[USERDB.userName]'
} else {
$is_unique = ''
}
$this->form_validation->set_rules('userName', 'User Name', 'required|trim|xss_clean'.$is_unique);
TA贡献1845条经验 获得超8个赞
而不是检查 if ($query == true)。检查 if ($validation == true) 和您的 else 条件是错误的,就像用户名重复一样,它将进入 if 条件。
- 3 回答
- 0 关注
- 131 浏览
添加回答
举报