Codeigniter限制插入另一个用户的数据

时间:2012-10-25 17:25:10

标签: php mysql codeigniter

用户可以在登录后提交他的数据。 mysql中有两个表:items,categories。类别有一个字段:user_id,但是在项目表中没有,每个项目都应该属于一个类别。

当用户提交类别时,它很好,我从会话中获取用户ID,然后插入它。 当他提交一个项目时,我为它设置了category_id。

问题是,用户可以简单地重写category_id(javascript,在前端,点击类别:设置category_id),并将项目提交到与他无关的类别。

我正在思考的两个解决方案(但我没有这样做):

当用户插入一个项目时,我会检查类别关系,如果它不是用户的关系,则退出。

也将user_id字段添加到项目表(看起来不是一个好选项)。

在这种情况下,什么是好方法或什么是正确/通用解决方案?

2 个答案:

答案 0 :(得分:1)

  

将user_id字段添加到项目表中

如果您已经在类别表中拥有user_id,并且您确定每个项目都有一个类别,那么这是不必要的重复,正如您所怀疑的那样。

  

检查类别关系,如果它不是用户的关系,则退出。

这是这样做的方法 - 当您在插入项目之前读取类别ID时,请确保该类别属于该用户。简单。我可能只是show_404(),但如果您想显示有意义的错误消息,则由您决定。

答案 1 :(得分:0)

为什么不在类别表中创建user_id列。当用户尝试提交条目时,请检查user_id,如果该用户不是将其重定向到任何您想要的地方