【问题标题】:how to prevent user to changing/deleting other user data如何防止用户更改/删除其他用户数据
【发布时间】:2011-05-21 01:23:25
【问题描述】:

我正在创建多用户应用程序。使用 php codeigniter 创建我正在寻求最佳实践或最佳方法来防止用户更改/删除其他用户数据。

我有一些关系表。

  1. tbl_users(用户 ID、用户名、密码)
  2. tbl_stores(store_id、user_id、store_name、store_url)
  3. tbs_products(product_id、store_id、product_name)

每个用户都有自己的商店,每个商店可能有很多产品。

那么,防止用户删除其他用户数据的最佳方法是什么?

实际上,我已经在模型中创建了一些代码,但是由于我是新手,我不确定,如果这是正确的方法,我的代码是这样的。

function remove_product($product_id)
{
    $this->db->from('products as p');
    $this->db->join('stores as s', 's.id = p.store_id');
    $this->db->where('p.id', $product_id);
    $this->db->where('s.user_id', $this->session->userdata('id'));

    if($this->db->count_all_results())
    {
        $this->db->where('id', $product_id);
        return $this->db->delete($this->table);
    }
}

请告知这种方法是否正确,或者是否有更好的方法来做到这一点。

问候

【问题讨论】:

    标签: php mysql codeigniter multi-user


    【解决方案1】:

    在删除某些内容之前,请检查其所有者是否与会话用户相同。

    【讨论】:

    • 谢谢你的回答,所以还需要2个查询?
    • 从产品中删除... AND userid = SESSIONUSER
    猜你喜欢
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2013-12-04
    • 2022-07-29
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    相关资源
    最近更新 更多