2011-05-21 127 views
2

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

我有一些关系表。

  1. tbl_users(USER_ID,USER_NAME,密码)
  2. tbl_stores(STORE_ID,USER_ID,STORE_NAME,store_url)
  3. 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

回答

1

删除之前请检查它的所有者是否与会话用户相同。

+0

感谢您的答案,所以它仍然需要2个查询? – sgsg 2011-05-21 10:09:45

+0

从产品中删除WHERE ... AND userid = SESSIONUSER – 2011-05-21 10:14:33

相关问题