Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP保护用户更改其他用户的帖子_Php_Mysql - Fatal编程技术网

PHP保护用户更改其他用户的帖子

PHP保护用户更改其他用户的帖子,php,mysql,Php,Mysql,考虑下表,当用户登录到产品页面时,如何避免用户通过HTML代码更改其他用户的产品,因为产品表下没有用户ID Table user - userId - name Store - storeId - userId product - productId - storeId - price 你不能。向product表中添加ownerId字段,或添加包含userId和productId的userProduct表 而且我认为用户不能使用html代码更改数据库中的产品。您想要sql查询吗? 如果有的

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

Table user
- userId
- name

Store
- storeId
- userId

product
- productId
- storeId
- price
你不能。向product表中添加ownerId字段,或添加包含userId和productId的userProduct表

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

您想要sql查询吗? 如果有的话 你可以说

$query=SELECT*FROM products WHERE storeid IN SELECT storeid FROM store WHERE userid=.$logged\u user;
//$logged\u user保留已登录用户的id

如果您想在每个用户的基础上对其进行限制,则除非您更改架构结构,否则这是不可能的,因为用户和产品之间没有直接链接。如果您希望在每个门店的基础上执行此操作,即特定门店的任何用户都可以编辑该门店中的任何产品,则应开始执行以下查询

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,这将使您能够检查该用户是否与该产品的商店相关。

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

表格购买 -用户ID -产品ID

并将用户购买物品的信息保存在其中


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

html代码是什么意思?如果产品表下没有用户ID,您如何区分他自己的产品和其他产品?@Col.Shrapnel,因为产品下有一个storeIdtable@mmmshuddup我指的是隐藏在浏览器后面的输入。你必须将用户id存储到会话,不是HTML代码是的,我想这就是我想要的。所以如果我用这种方法来限制它。可以吗?或者这是一个糟糕的设计?有很多方法可以实现访问控制。我将此查询作为一个示例,说明如何按商店/用户限制对产品的访问。你的架构是否好并不真正适合这样做。根据我的例子试一试,如果你有任何具体的问题,请提出另一个问题。