如何防止用户更改/删除其他用户数据
问题描述:
我正在创建多用户应用程序。使用PHP codeigniter创建而我正在寻求最佳实践或防止用户更改/删除其他用户数据的最佳方法。如何防止用户更改/删除其他用户数据
我有一些关系表。
- tbl_users(USER_ID,USER_NAME,密码)
- tbl_stores(STORE_ID,USER_ID,STORE_NAME,store_url)
- tbs_products(产品,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);
}
}
请告知这种方法是否正确,或者如果有更好的方法来做到这一点。
Regards
答
删除之前请检查它的所有者是否与会话用户相同。
感谢您的答案,所以它仍然需要2个查询? – sgsg 2011-05-21 10:09:45
从产品中删除WHERE ... AND userid = SESSIONUSER – 2011-05-21 10:14:33