Разные значения валидации на клиенте и на сервере в Yii?

Здравствуйте товарищи!!
Столкнулся с такой проблемой, а именно с разными значения валидации на клиенте и на сервере в YII.
Суть проблемы такова:
1. Есть правило валидации
array('desc', 'length', 'encoding' => 'utf-8', 'max' => 150, 'tooLong' => 'Комментарий не должен превышать 150 символов')
2. В textarea для данного атрибута ввожу по два символа на строку:
!d
!d
!d
и т.д
3. Ввожу больше 150 символом, появляется ошибка форма не отправляется, ввожу нужно количество символов от 150 и меньше, на клиенте валидация проходит, но не проходит на сервере
4. Знаю что проблема в символе переноса строки, а именно 150 символов с переносами строк на клиенте равны 200 символов на сервере, то есть символ переноса строки на клиенте равен 1 символу, на сервере 2
5. unix/ windows нет разницы на какой os сервер, проблема и там и там
5. Как быть?
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ответы на вопрос 1
evgenybuckharev
@evgenybuckharev Автор вопроса
Евгений Дождиков:
if(function_exists('mb_strlen') && $this->encoding!==false)
			$length=mb_strlen($value, $this->encoding ? $this->encoding : Yii::app()->charset);
		else
			$length=strlen($value);

Вот код который непосредственно отвечает за проверку количества символов на сервере, function_exists('mb_strlen') у меня выдает TRUE, хотя довольно странное условие в if, если $this->encoding!==false, то проверять $this->encoding ? $this->encoding : Yii::app()->charset нет смысла, но тем не менее $this->encoding у меня указано в правиле, значит отрабатывает $length=mb_strlen($value, $this->encoding ? $this->encoding : Yii::app()->charset); что и выдает неверное количество символов
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы