为用户分配一个提交到mysql表的唯一用户ID [关闭]

Posted

技术标签:

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

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

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

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

任务:

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

谢谢!

【问题讨论】:

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

【讨论】:

以上是关于为用户分配一个提交到mysql表的唯一用户ID [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

尝试在应用程序中发布图像

为创建的 div 分配唯一 ID,然后使用 jquery 引用

如何在一个客户端上有多个用户的 MySql 中保证和返回唯一 ID

如何从数据库为用户分配唯一编号

MySQL触发器将日期插入具有唯一匹配ID的行

为dynamodb生成12位唯一编号?