电子商务网站受到了骗子的打击,我们看到的一种模式是,他避免创建重复的帐户,只需在电子邮件中加点便可以抓住他。
即。 "my.em.ail@gmail.com", "m.ye.mail@gmail.com", "mye.ma.il@gmail.com"
我知道这只会给他或其他尝试创建更多电子邮件的人带来不便,但这不是没有全部抓住它们的理由。
我们的防欺诈功能会寻找高速重复订单,例如:
$email = 'myemail@gmail.com';
"SELECT * FROM `orders` WHERE `date` > '".date('Y-m-d H:i:s', time() - 60*60*24)."' AND `email` = '".$email."'"
如何在查询中更新WHERE子句以包含上述示例?
答案 0 :(得分:0)
在您提供的示例中,您可以删除.
,然后找到具有相同电子邮件的任何行(不再计算周期)。
E.G:
$email = 'myemail@gmail.com';
SELECT * FROM `orders` WHERE `date` > "date('Y-m-d H:i:s', time() - 60*60*24)"
AND REPLACE(`email`, ".", "")` = REPLACE("$email", ".", "")
)
如果您需要更复杂的内容,则必须创建一个函数来测量字符串的“相似度”以进行比较。有关更多详细信息,请参见此处:How to find similar results and sort by similarity?