我需要做一个反多帐户,我发现这个例子为mysql查询http://sqlfiddle.com/#!9/49bea0/1,这是一个很好的方法吗?
如果有其他简单的方法可以做,请让我知道这是非常重要的:
谢谢。
发布于 2020-11-22 13:52:01
在我看来,你似乎想拒绝注册帐户的尝试,如果它们来自一个已经有帐户的IP地址。
这些评论提出了一个问题,即这是否一个好主意。事实并非如此。首先,用户很容易更改IP地址。另一方面,一些公司和大学有成千上万的用户共享一个公共网络IP地址(查阅NAT路由器了解更多信息)。即使是同一个家庭中的两个不同的家庭用户共享一个IP,所以我可以拥有一个帐户,而我的合作伙伴却不能。因此,允许每个IP地址只使用一个帐户是一种不必要的、不充分的安全措施。
但你不是这么问的。您询问了如何使用SQL进行操作。下面是如何实现的。
假设您有一个名为users的表和一个名为ip_address的列。
在该列上创建唯一索引。
CREATE UNIQUE INDEX no_dup_ip ON users (ip_address);然后,当您尝试使用INSERT语句添加一个新用户-- users表中的新行--如果它具有与任何现有用户相同的IP地址,它就会失败。
您将得到MySQL错误1062,其文本错误消息如下所示。
错误代码: 1062。重复输入'192.0.2.210‘键'no_dup_ip’。
您可以使用PDO或mysqli错误报告函数检测此错误,并让您的php程序对您的潜在用户说些礼貌的话。
https://stackoverflow.com/questions/64954123
复制相似问题