当我尝试更新我的一个用户配置文件时,它会更新我的



这是我在用户模型中的代码

public function update_account($first, $last, $email, $phone, $address, $company, $vat, $notes) {
$this->db->query("UPDATE users 
SET name = ?, surname = ?, email = ?, phone = ?, 
address = ?, company = ?, vat = ?, notes = ? 
WHERE id = ?", 
array($first, $last, $email, $phone, 
$address, $company, $vat, $notes, 
$this->session->id));
}

这是我的用户控制器中的代码

public function settings() {
if ($this->user->is_logged()) {
iF ($_POST) {
$first_name = $this->input->post('ipt_first');
$last_name = $this->input->post('ipt_last');
$email = $this->input->post('ipt_email');
$phone = $this->input->post('ipt_phone');
$address = $this->input->post('ipt_address');
$company = $this->input->post('ipt_company');
$vat = $this->input->post('ipt_vat');
$notes = $this->input->post('ipt_notes');
$this->user->update_account($first_name, $last_name, $email, $phone, $address, $company, $vat, $notes);
}
if ($this->uri->segment(3)) {
if ($this->user->is_admin($this->session->email)) {
$udata['uinfo'] = $this->user->details($this->uri->segment(3));
load_content('user/settings', $udata);
}
} else {
$udata['uinfo'] = $this->user->details($this->session->id);
load_content('user/settings', $udata);
}
} else {
redirect();
}
}

基本上,我需要它仅在客户是管理员并且您是管理员(mysql 1 中的perm 1级别默认为客户(时更新他们的信息,如果我正在查看他们的设置页面,请设置我自己的设置或其他人。

我的HTML表单工作,因为我可以使用上面的代码更新我自己的详细信息,但是在查看客户设置时,我无法覆盖它们,因为它会更改我自己的设置。

我希望我已经添加了足够的细节,如果没有,请公平,因为我对编程和堆栈溢出相对较新。亲切的问候,并感谢您提供的帮助。

update_account函数中,您在 where 子句中使用$this->session->id- 这将始终是您的 ID。

尝试使用其余数据发送要更改的用户的 ID,将其传递给update_account函数并使用正确的 ID 进行更新

相关内容

  • 没有找到相关文章

最新更新