【问题标题】:Problem on sending hidden value from a form从表单发送隐藏值的问题
【发布时间】:2019-09-17 12:03:13
【问题描述】:

我正在 Laravel 上创建一个包含部分、线程和 cmets 的论坛。 用户可以在节上创建线程,在线程上创建 cmets。 我的问题是当用户在一个部分上创建一个线程时,我通过隐藏的输入值发送部分 ID,如果用户编辑该值,他可以在其他部分中发布。

这样做的最佳做法是什么?或者有什么方法可以从控制器或类似的东西中获取该 ID?谢谢

【问题讨论】:

  • 如果用户更改部分有什么问题?他无权在此版块发帖?如果是这样 - 然后在添加新线程之前检查用户的权限并做出相应的反应。

标签: php html laravel forms


【解决方案1】:

隐藏的表单输入值不能用于真正向用户隐藏某些内容。他们只是在视觉上隐藏了价值。

如果用户只被允许编辑他们自己的话题,那么你应该在两个地方检查:

  1. 当用户进入该线程的编辑器时。
  2. 当用户提交对该线程的编辑时。

检查很简单。该用户应该已登录,因此在该用户的会话中,您已存储了用户 ID。在您的数据库行中,您还存储了谁编写了该线程的威胁。这很可能是用户 ID。所以你可以比较这两个值:它们应该匹配。

【讨论】:

  • 在我的论坛中,没有用户,每个人都是匿名的,所以我没有用户ID,每个人都可以在所有线程中发帖,除了已关闭的或管理员消息,如果用户编辑他想在哪里发帖,因为他可以在所有版块中发帖?
  • 好吧,如果这就是你想要的,是的,让人们到处发帖,但访问者应该能够编辑他们自己的帖子。试想一下,如果您无法纠正 Stack Overflow 上的任何内容,那将是可怕的。幸运的是,即使不需要登录,您仍然可以使用会话。只需在访问者第一次访问时为其分配一个会话,只要会话 cookie 未被删除,他们就可以编辑自己的帖子。
猜你喜欢
  • 1970-01-01
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多