【问题标题】:Assign a user a unique user ID who submits to mysql table [closed]为用户分配一个提交到mysql表的唯一用户ID [关闭]
【发布时间】:2015-02-01 15:40:19
【问题描述】:

我有一个网站,有人将数据发布到 mysql 表,然后数据在辅助页面上向公众显示。

我需要的是每次有人向mysql表提交数据时,我希望用户收到一个唯一的ID,并且表行要专门链接到用户。

原因:最终,我打算让用户能够删除/更新他们自己公开展示的提交内容。如果他们的 ID 与 mysql 表中的信息相同,他们应该只能删除他们的 OWN 信息。

任务:

请让我知道这种思路是否正确,以及如何开始为用户和表格行本身分配 ID。

谢谢!

【问题讨论】:

  • 那么你写过代码还是只是想出点子?
  • 请提供一个供批评的想法或几个替代想法,并询问哪个更好并说明原因。
  • 我已经编写了代码,我试图找到将用户链接到提交的数据的最佳方法,以便他们可以删除或编辑表格行。然后会话将在 30 分钟后过期。

标签: php mysql sql cookies session-cookies


【解决方案1】:

您可以使用 session_id() 为用户创建一个特殊的标识符。

【讨论】:

  • 如果他们使用相同的会话标识符注册两次怎么办?
  • 只是不要让他们这样做。
【解决方案2】:

正常过程很简单:创建新用户时,通过检查LAST_INSERT_ID() 使用INT AUTO_INCREMENT 列中的ID。

如果需要,将此值推送到 $_SESSION 以将其持久化以供后续请求使用。

【讨论】:

  • 这似乎是最好的办法,谢谢
【解决方案3】:

有很多方法:

  • IP
  • 在客户端设置cookie以便重用它

【讨论】:

    【解决方案4】:

    塔德曼是对的http://dev.mysql.com/doc/refman/5.0/en/mysql-insert-id.html

    这是一种基于会话的方法,在插入后获取自动递增字段的值...

    所以无论用户做什么,只要你在同一个会话中插入和获取插入 ID,你就是安全的 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 2020-10-27
      • 2020-10-17
      • 2017-10-01
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      相关资源
      最近更新 更多