当我尝试更新我的一个用户个人资料时,它会更新我的个人资料

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


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 0 中的 perm 级别 1 默认为客户)设置我自己的设置或其他人,如果我正在查看他们的设置页面。


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


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


一只名叫tom的猫
浏览 92回答 1
1回答

偶然的你

在update_account函数中,您$this->session->id在 where 子句中使用 - 这将始终是您的 id。尝试将要更改的用户的 ID 与其余数据一起发送,将其传递给update_account函数并使用正确的 ID 进行更新
打开App,查看更多内容
随时随地看视频慕课网APP