10/10/2018, 11:38

[Codeigniter]tên trong giỏ hàng

Trong giỏ hàng khi đặt tên như

Code:
$data=array(
'id' => 'ttt',
'name'  => 'Cisco'
);

$this->cart->insert($data);
nhưng khi đặt tên có kí tự đặc biệt hoặc tiếng Việt là không được.

Code:
$data=array(
'id' => 'ttt',
'name'  => 'hàng hóa'
);

$this->cart->insert($data);
Có cách nào khắc phục được không ạ
phamhaucn viết 13:50 ngày 10/10/2018
Cậu thử mã hóa nó ra dạng html xem.
saurom_90 viết 13:52 ngày 10/10/2018
mình cũng đang gặp vấn đề này, up lên cho mọi ng giúp với
1024KB viết 13:46 ngày 10/10/2018
Có 2 cách như sau:
Cách 1:
Code:
//Tạo file MY_Cart.php trong thư mục libraries của application
//Copy function _insert() trong system/libraries/cart.php
//Comment hoặc xóa dòng này
// Validate the product name. It can only be alpha-numeric, dashes, underscores, colons or periods.
// Note: These can be user-specified by setting the $this->product_name_rules variable.
if ( ! preg_match("/^[".$this->product_name_rules."]+$/i", $items['name']))
{
	log_message('error', 'An invalid name was submitted as the product name: '.$items['name'].' The name can only contain alpha-numeric characters, dashes, underscores, colons, and spaces');
	return FALSE;
}
Cách 2: ngắn hơn
Code:
//Theo Note ở trên có ghi
// Note: These can be user-specified by setting the $this->product_name_rules variable.
//thiết lập product_name_rules cho lib cart bằng regular expression
$this->cart->product_name_rules = '';
Over.
saurom_90 viết 13:44 ngày 10/10/2018
thanks bạn nhiều
mình xài thế này
Code:
class MY_Cart extends CI_Cart
{

    public function MY_Cart()
    {
        parent::__construct();
        $this->product_name_rules = '\d\D';
    }
}
Bài liên quan
0