2013-09-16 4 views
0

У меня возникла проблема с тем, что я не могу добавить товар в корзину, если он содержит кириллическое имя. В Cart.php я добавил к переменным символам а-я:Библиотека Codeigniter Cart не поддерживает кириллические символы

var $product_name_rules = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя\.\:\-_ a-z0-9'; 

Но проблема не решена. Когда я изменил имя элемента на латинский, он добавлен в корзину.

+0

, кажется, что это работает: $ product_name_rules \t = '\ p {Кириллица} \. \: \ -_ a-z0-9'; preg_match ("/^[". $ Product_name_rules. "] + $/Iu", $ items ['name']); – user2027175

+0

it return аЙбббб? , но должен йяюэъ ??? – user2027175

+0

для последнего комментария он возвращает правильную строку, но я не устанавливаю кодировку для браузера, поэтому я получаю строку в другой кодировке. Однако я по-прежнему получаю ошибку в корзине. – user2027175

ответ

1

Вы должны добавить Юникода флаг pregmatch в _insert функции:

if (! preg_match("/^[".$this->product_id_rules."]+$/iu", $items['id'])) 

и

if (! preg_match("/^[".$this->product_name_rules."]+$/iu", $items['name'])) 

Существует хорошая статья об этой проблеме: http://wwarlock.blogspot.ru/2010/03/codeigniter.html

Смежные вопросы