У меня есть сайт, построенный с использованием PHP Codeigniter. Имеет систему управления пользователями. Как правило, когда пользователь регистрируется, он добавляет свою информацию в базу данных и отправляет электронное письмо с подтверждением (как и в других системах).
Но сейчас некоторые спамеры создают много аккаунтов. Они не проверяют электронную почту, хотя. Просто добавьте больше записей в базу данных. Тем не менее, моя база данных становится тяжелой для этого. Как я могу предотвратить это?
Есть ли рабочий процесс, с помощью которого я могу добавить пользователя после его подтверждения по электронной почте?
Заранее спасибо.
Существует много решений, но ни одно из них не является идеальным или 100% эффективным: /
невозможно вставить пользователя после успешного подтверждения по электронной почте, вы можете выполнить некоторые шаги, чтобы ограничить пользователей
PDO
Подготовленные заявления
проверить функцию
$result = Database::getInstance()->query("SELECT * FROM user ORDER BY id DESC WHERE 1");
это должно дать вам последнюю запись в базе данных
Теперь вы должны прочитать статус проверки и удалить неподтвержденного пользователя или добавить проверенного пользователя.
в вашем классе Database вы должны иметь функцию, которая строит ваш sql-запрос и создает массив со значениями, которые вы хотите ввести
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);
}