PHP MYSQL - 反多账户

PHP MYSQL - Anti Multi Account

我需要创建一个反多帐户,我找到了这个用于 mysql 查询的示例 http://sqlfiddle.com/#!9/49bea0/1 那是个好方法吗?

如果还有其他简单的方法,请告诉我这很重要:(

谢谢。

我觉得你想拒绝来自已有帐户的 IP 地址的帐户注册尝试。

评论提出了这是否是个好主意的问题。它不是。一方面,用户很容易更改 IP 地址。另一方面,一些公司和大学有成千上万的用户共享一个 public-网络 IP 地址(查看 NAT 路由器 以了解更多信息)。即使同一家庭中的两个不同的家庭用户共享一个 IP,所以我可以拥有一个帐户而我的伙伴不能。因此,每个 IP 地址仅允许一个帐户是一种不必要且不充分的安全措施。

但这不是你问的。你问如何用 SQL 来做。方法如下。

假设您有一个名为 users 的 table 和一个名为 ip_address.

的列

在该列上创建唯一索引。

CREATE UNIQUE INDEX no_dup_ip ON users (ip_address);

然后,当您尝试使用 INSERT 语句添加新用户时——向您的 users table 添加新行——如果它具有与以下相同的 IP 地址,它将失败任何现有用户。

您将收到 MySQL 错误 1062,文本错误消息看起来像这样。

Error Code: 1062. Duplicate entry '192.0.2.210' for key 'no_dup_ip'.

您可以使用 PDO 或 mysqli 错误报告功能检测此错误,并让您的 php 程序对您的潜在用户说些礼貌的话。