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 關注
- 165 瀏覽
添加回答
舉報