Страница 1 из 1

Не проходит валидация польностью кириллического e-mail

Добавлено: 2019.08.07, 11:56
DrStopor
При заполнении поля 'email' адресом почты полностью на кириллице, и попытке отправить данные по кнопке, выходит сообщение, что email не может начинаться с * буквы и отправка не происходит, где * - любая буква кириллицы.
enableIDN включен.

Код: Выделить всё

public function rules()
    {
        return [
            ['email', 'email', 'enableIDN' => true],
        ];
    }

Re: Не проходит валидация польностью кириkлического e-mail

Добавлено: 2019.08.07, 15:51
chesar
php-extension-intl установлен последней версии?

Re: Не проходит валидация польностью кириллического e-mail

Добавлено: 2019.08.08, 14:02
DrStopor
текущая версия ICU 64.1 (она же и стояла изначально).
последняя 64.2, но при всех танцах с бубном не встает, потому пришлось вернуться к 64.1.
OS: Kubuntu 19.04. Php 7.3

Ниже скрин "ошибки", к стартовому сообщению почему-то не прилепилось.
https://cloud.mail.ru/public/5BkC/2oHAV9Wu3

Re: Не проходит валидация польностью кириллического e-mail

Добавлено: 2019.08.09, 10:23
urichalex
Судя по скрину - валидатор браузера ругается.
Решение: заменить type=email на type=text и валидировать только средствами фреймворка, либо указать novalidate

Re: Не проходит валидация польностью кириллического e-mail

Добавлено: 2019.08.12, 09:22
chesar
DrStopor писал(а): 2019.08.08, 14:02 текущая версия ICU 64.1 (она же и стояла изначально).
Хорошо, а php-extension то установлен?

Re: Не проходит валидация польностью кириллического e-mail

Добавлено: 2019.08.12, 11:31
DrStopor
chesar писал(а): 2019.08.12, 09:22
DrStopor писал(а): 2019.08.08, 14:02 текущая версия ICU 64.1 (она же и стояла изначально).
Хорошо, а php-extension то установлен?
Разумеется, иначе бы я версию ICU и не знал.

php -i -> блок intl.
php -m -> intl присутствует в списке.

Re: Не проходит валидация польностью кириллического e-mail

Добавлено: 2019.08.12, 14:18
SiZE
Там выше хороший вопрос задали.

Валидация клиентская или серверная? Из коробки нет такого сообщения, такой проверки и такого вывода ошибок. По ощущениям это клиентская кастомная валидация какая-то. Yii2 не разбирает в какой части email ошибка. Там только одно сообщение `{attribute} is not a valid email address.`

Re: Не проходит валидация польностью кириллического e-mail

Добавлено: 2019.08.12, 16:21
DrStopor
SiZE писал(а): 2019.08.12, 14:18 Там выше хороший вопрос задали.

Валидация клиентская или серверная? Из коробки нет такого сообщения, такой проверки и такого вывода ошибок. По ощущениям это клиентская кастомная валидация какая-то. Yii2 не разбирает в какой части email ошибка. Там только одно сообщение `{attribute} is not a valid email address.`
Только на уровне фреймворка сделана валидация.

Форма из view

Код: Выделить всё

<?php $form = ActiveForm::begin( ['options' => ['id' => 'testForm'] ] ) ?>
<?= $form->field($model, 'name')->label('Ваше имя')->input('name') / ?>
<?= $form->field($model, 'email')->label('E-mail')->input('email') ?>
<?= $form->field($model, 'text')->label('Сообщение')->input('text')->textarea(['rows' => 10 ]) ?>
<?= Html::submitButton('Отправить', ['class' =>'btn btn-success']) ?>
<?php $form = ActiveForm::end() ?>
Тем временем в контроллере

Код: Выделить всё

    public function rules()
    {
        return [
            [['name', 'email'], 'required',],
            ['email', 'email', 'enableIDN' => true],
            ['name', 'string', 'length' => [2, 64] ],
            ['text', 'trim'],
        ];
    }
Единственное, не было времени проверить на виндовой машине. Но как видно из кода, я не городил на стороне клиента ничего такого. Возможно заблуждаюсь, но это не точно.

P.S. в лисе выдает сообщение "Пожалуйста, введите адрес электронной почты". И опять таки, если до собаки кириллица.

Re: Не проходит валидация польностью кириллического e-mail

Добавлено: 2019.08.13, 10:35
urichalex
Мое сообщение не читали да?

Re: Не проходит валидация польностью кириллического e-mail

Добавлено: 2019.08.14, 14:50
DrStopor
urichalex писал(а): 2019.08.13, 10:35 Мое сообщение не читали да?
Читал. Спасибо за вариант решения. Сам же выбрал решением сверять с регуляркой.