php - 如何防止两个用户注册相同的用户名?

标签 php zend-framework

我正在使用 PHP 开发 Zend Framework 应用程序。我有一份注册表格。

现在,当用户注册并获得可用的用户名时,注册过程仍未完成。并且所选的用户名尚未保存在数据库中。因此,同时没有其他人获得相同的用户名。

所以请帮助我如何防止其他用户无法同时分配相同的用户名。

例如,数据库中不存在用户,即mannecheema27

这样就可以免费注册了。 但注册过程需要一些时间。也许用户接到电话或者可能是其他原因,那么我希望所选的用户名在该时间段内保留在服务器上,直到用户保存他/她的注册或单击取消注册按钮,以便无论何时当另一个用户检查用户名的可用性时,即mannecheema27,那么在数据库中它不存在,但它必须存储在服务器上,以便其他用户不会获得相同的名称。

最佳答案

要么接受最终注册将失败的事实,因为另一个用户选择了该名称,要么在检查用户名未注册时在用户数据库中执行“预订条目”,然后稍后使用该条目(或在某个时刻)时间不限)。

第二个是更多的编码,但实际上是唯一的方法。如果这是一个您期望有大量用户创建的应用程序,请接受最终注册可能会失败的情况。

关于php - 如何防止两个用户注册相同的用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6854332/

相关文章:

php mysql_insert_id() 可能与多用户冲突

php - 时间函数计算不正确

php - 工厂可用性监视器的想法

php - 不想要 Zend Framework View 的短标签。是否有 $view->setUseStreamWrapper(true) 的替代方案?

php - Zend Framework 和 Django 之间在现实世界中的区别是什么?

php - 实现Zend Framework是否需要修改现有的MySQL数据库?

php - 在 Slim Framework 上重定向错误

php - 在另一个区域重用 PDO 查询 block 最佳实践

php - 如何调试仅在(谷歌)机器人请求页面时发生的问题?

zend-framework - Zend_Mail generateMessage() 导致 fatal error : Call to a member function getContent() on a non-object