浏览代码

Check length of email in validator

Visman 5 年之前
父节点
当前提交
9f9f2e459a
共有 3 个文件被更改,包括 12 次插入1 次删除
  1. 6 1
      app/Models/Validators/Email.php
  2. 3 0
      app/lang/en/common.po
  3. 3 0
      app/lang/ru/common.po

+ 6 - 1
app/Models/Validators/Email.php

@@ -9,11 +9,12 @@ use ForkBB\Models\User\Model as User;
 class Email extends Validators
 {
     const FLOOD = 3600;
+    const LENGTH = 80;
 
     /**
      * Проверяет email
      * WARNING!!!
-     * Если передан гость 4-ым параметром, то проверка уникальности email не проводится
+     * Если 4-ым параметром передан гость, то проверка уникальности email не проводится
      *
      * @param Validator $v
      * @param string $email
@@ -27,6 +28,10 @@ class Email extends Validators
         // поле отсутствует
         if (null === $email) {
             return null;
+        // проверка длины email в одном месте
+        } elseif (\mb_strlen($email, 'UTF-8') > self::LENGTH) {
+            $v->addError('Long email');
+            return $email;
         // это не email
         } elseif (false === ($result = $this->c->Mail->valid($email, true))) {
             $v->addError('The :alias is not valid email');

+ 3 - 0
app/lang/en/common.po

@@ -129,6 +129,9 @@ msgstr "off"
 msgid "Invalid email"
 msgstr "The email address you entered is invalid."
 
+msgid "Long email"
+msgstr "The email address you entered is too long."
+
 msgid "Required"
 msgstr "(Required)"
 

+ 3 - 0
app/lang/ru/common.po

@@ -129,6 +129,9 @@ msgstr "выкл."
 msgid "Invalid email"
 msgstr "Указанный почтовый адрес неверен."
 
+msgid "Long email"
+msgstr "Указанный почтовый адрес слишком длинный."
+
 msgid "Required"
 msgstr "(Обязательно)"