PHP保护用户更改其他用户发布的内容

时间:2011-11-11 08:48:22

标签: php mysql

考虑下表,当用户登录产品页面时,如何避免用户通过HTML代码更改其他用户产品,因为产品表下没有userId

Table user
- userId
- name

Store
- storeId
- userId

product
- productId
- storeId
- price

4 个答案:

答案 0 :(得分:2)

你做不到。在ownerId表格中添加product字段,或添加包含userProductuserId的{​​{1}}表。

我不认为用户可以使用html代码更改数据库中的产品。

答案 1 :(得分:2)

如果您想基于每个用户对其进行限制,那么除非您更改架构结构,否则无法对其进行限制,因为用户和产品之间没有直接链接。如果您想在每个商店的基础上进行,即特定商店的任何用户都可以编辑该商店中的任何产品,那么下面的查询应该会启动

SELECT
   [product info]
FROM
   product p
   INNER JOIN
       store s ON p.storeId=s.storeId
   INNER JOIN
       user u ON s.userId=u.userId
WHERE
   p.productId = [productId] AND
   u.userId = [userId]

鉴于productId和userId,您可以检查该用户是否与该产品的商店相关。

答案 2 :(得分:0)

你想要SQL查询吗? 如是 你可以说

$query = "SELECT * FROM products WHERE storeid IN (SELECT storeid FROM store WHERE userid = ".$logged_user." ) "; //$logged_user holds the id of the user logged

答案 3 :(得分:0)

您需要定义具有以下属性的第四个表

购买表 - 用户身份 - productId

并保留用户购买商品的信息。

原始产品表不应用于保存用户所做的更改。