Если в product_id или product_name будет что-то отличное от латинских букв и цифр, то запрос успешно проигнорируется без каких-либо ошибок.
И такие баги я ненавижу больше всего.
Итак, чтобы починить, открываем /system/libraries/Cart.php.
В самом начале видим:
class CI_Cart { // These are the regular expression rules that we use to validate the product ID and product name var $product_id_rules = '\.a-z0-9_-'; // alpha-numeric, dashes, underscores, or periods var $product_name_rules = '\.\:\-_ a-z0-9'; // alpha-numeric, dashes, underscores, colons or periods
Добавляем "а-я" в регэксп, должно получиться так:
var $product_id_rules = '\.a-z0-9_-а-яА-Я'; var $product_name_rules = '\.\:\-_ a-z0-9а-яА-Я';Теперь переходим к методу function _insert($items = array())
Добавляем к проверке правило для уникода (буква u, после $/i).
Должно получиться так:
if ( ! preg_match("/^[".$this->product_id_rules."]+$/iu", $items['id'])) if ( ! preg_match("/^[".$this->product_name_rules."]+$/iu", $items['name']))Теперь товары с русскими буквами должны сохраняться нормально.
9 комментариев:
Спасибо большое реально 3 часа морочил голову пока понял сто русские буквы не отрабатывают
Да, наздоровье )
Огромное спасибо. Тоже несколько часов думаю над данной проблемой
Вот у меня ci2.1.0
Сделал все как Вы сказали, но все равно пишет "Compilation failed: invalid UTF-8 string at offset 13"
Я даже сам файл Cart в разных кодировках сохранял - бестолку...
Может надо в настройках ставить russian - искать перевод и тогда будет работать?
@Анонимный (7 января 2012 г. 18:33)
К сожалению, не видя ваших исходников, я не могу сказать ничего конкретного.
Заархивируйте и выложите их куда-нибудь на файлообменник и я постарась помочь.
Был бы девочкой расцеловл бы! Спаибо огромное.
сделал все как написано. но товары с русским наименованием категорически не добавляет(
буду рад любой помощи! Спасибо!
@Анонимный (21 мая 2012 г., 12:59)
Как я уже писал для @Анонимный (7 января 2012 г. 18:33)
К сожалению, не видя ваших исходников, я не могу сказать ничего конкретного.
Заархивируйте и выложите их куда-нибудь на файлообменник и я постарась помочь.
Спасибо огромное!!!
ОЧень помогло
тоже не сразу понял в чём дело
Отправить комментарий