首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在电子邮件确认后将用户添加到数据库?

如何在电子邮件确认后将用户添加到数据库?
EN

Stack Overflow用户
提问于 2018-02-16 08:06:34
回答 4查看 692关注 0票数 1

我有一个用PHP Codeigniter框架构建的网站。它有一个用户管理系统。一般来说,它所做的是,当用户注册时,它会将他的信息添加到数据库中,并发送一封构象电子邮件(就像其他系统一样)。

但现在,一些垃圾邮件发送者正在创建大量的账户。不过他们不会核实这封邮件。只需向数据库添加更多记录即可。然而,我的数据库正为此变得越来越重。我怎么才能阻止这一切?

在用户确认电子邮件后,是否有任何工作流程可供我添加?

提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-02-16 08:28:45

无法在成功确认邮件后插入用户,您可以按照一些步骤限制用户。

  1. 在注册表格中创建一个captcha
  2. 创建一个新表,即您的登记表的蓝图,以便用户注册到这个新表,然后如果用户在那里确认了邮件,则将记录移到原始注册表并从新表中删除。
  3. 要用一个用户来阻止用户,一个ip并不是一个好的解决方案,所以不要限制他们
  4. 只需在新的表格蓝图上每3天运行一次cron作业,因此没有确认邮件的用户只需每周三天从新表中删除所有条目。就这样谢谢。
票数 2
EN

Stack Overflow用户

发布于 2018-02-16 08:20:46

  • 您可以添加一些captcha或安全性,例如在注释中。
  • 您还可以使用代码点火器,使用入口函数轻松获得用户ip,并限制ip创建帐户。
  • 设置一个cron功能,以禁用每天/周停用的帐户,以减轻您的数据库无用帐户.
  • 使用Analitics,查看垃圾邮件的来源,并将有关国家列入黑名单。

有许多解决方案,但没有一个是完美的或100%有效的:/

票数 3
EN

Stack Overflow用户

发布于 2018-02-16 08:29:04

PDO准备的语句验证功能

代码语言:javascript
复制
$result = Database::getInstance()->query("SELECT * FROM user ORDER BY id DESC WHERE 1");

这将获得最后一个数据库条目,现在您应该读出验证状态并删除未验证的用户或添加已验证的用户。

在数据库类中,应该有一个函数来构建sql查询,并使用要注入的值构建一个数组

代码语言:javascript
复制
public function query($query, array $parameters = array())
{
    $statement = $this->connection->prepare($query);

    foreach($parameters as $key => $value)
    {
        $statement->bindValue(':'.$key, $value);
    }

    $statement->execute();
    return $statement->fetchAll(PDO::FETCH_ASSOC);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48822494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档