2010-09-27 15 views
10

我有一個問題就像在標題 - 爲什麼codeigniter購物車類不允許任何特殊字符的名稱?當我添加一些只包含標準字符的普通名稱的項目時,它的作用就像魅力一樣。但是,如果我添加諸如「詞/詞」之類的東西或類似的東西,它不會向購物車添加任何內容。有人可以爲我提供一些提示嗎?爲什麼codeigniter購物車類不允許名稱中包含任何特殊字符?

回答

20

如果你看Cart.php你會看到在線31 var $product_name_rules = '\.\:\-_ a-z0-9';

一個很好的方法來改變這個變量是把一個MY_Cart.php您的應用程序\庫\ MY_Cart.php與此代碼:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class MY_Cart extends CI_Cart { 

    var $product_name_rules = '[:print:]'; 

} 

或者你也可以修改它,當你添加的產品,採用:

$this->cart->product_name_rules = '[:print:]'; 
$this->cart->insert(array()); 
+0

嘿,這個作品! Thx隊友! – Pavel 2010-09-27 11:54:33

+0

非常有用的提示。我認爲他們應該解決這個問題。 – Kamil 2012-12-08 12:15:57

+0

從字面上節省了一天的時間。 – David 2014-08-20 16:17:50

1

您還可以任選只需修改正則表達式允許引號,像這樣:

$this->cart->product_name_rules = "\.\:\-_\"\' a-z0-9"; 
10

我剛剛從谷歌發現這個問題,同時面臨同樣的問題,但答案ipalaus提供並沒有解決我的問題,因爲它仍然不允許希臘字符。一些更多的挖掘後,我發現這一點:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class MY_Cart extends CI_Cart { 

    var $product_name_rules = '\d\D'; 

} 

基本上讓一切。請享用!

+0

是的!此方法在產品名稱中使用utf8字符集工作。 – Prabhu 2015-01-23 07:56:02

+0

也爲我工作,而'[:print:]'只在我的本地機器上完成,您的解決方案也在服務器上工作,謝謝 – Nassim 2015-10-10 22:17:59

0

這一切都不會在UTF8字符(等塞爾維亞),但我做了類似的東西,幫助投入使用圖表這樣

$name=ucfirst(url_title(convert_accented_characters($name), ' ', TRUE)); 

前和修改./application/config /foreign_chars.php

$foreign_characters = array(
    '/ä|æ|ǽ/' => 'ae', 
    '/ö|œ/' => 'oe', 
    '/ü/' => 'ue', 
    '/Ä/' => 'Ae', 
    '/Ü/' => 'Ue', 
    '/Ö/' => 'Oe', 
    '/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A', 
    '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a', 
    '/Ç|Ć|Ĉ|Ċ|Č/' => 'C', 
    '/ç|ć|ĉ|ċ|č/' => 'c', 
    '/Ð|Ď|Đ/' => 'D', 
    '/ð|ď|đ/' => 'd', 
    '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E', 
    '/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e', 
    '/Ĝ|Ğ|Ġ|Ģ/' => 'G', 
    '/ĝ|ğ|ġ|ģ/' => 'g', 
    '/Ĥ|Ħ/' => 'H', 
    '/ĥ|ħ/' => 'h', 
    '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I', 
    '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i', 
    '/Ĵ/' => 'J', 
    '/ĵ/' => 'j', 
    '/Ķ/' => 'K', 
    '/ķ/' => 'k', 
    '/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L', 
    '/ĺ|ļ|ľ|ŀ|ł/' => 'l', 
    '/Ñ|Ń|Ņ|Ň/' => 'N', 
    '/ñ|ń|ņ|ň|ʼn/' => 'n', 
    '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O', 
    '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o', 
    '/Ŕ|Ŗ|Ř/' => 'R', 
    '/ŕ|ŗ|ř/' => 'r', 
    '/Ś|Ŝ|Ş|Š/' => 'S', 
    '/ś|ŝ|ş|š|ſ/' => 's', 
    '/Ţ|Ť|Ŧ/' => 'T', 
    '/ţ|ť|ŧ/' => 't', 
    '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U', 
    '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u', 
    '/Ý|Ÿ|Ŷ/' => 'Y', 
    '/ý|ÿ|ŷ/' => 'y', 
    '/Ŵ/' => 'W', 
    '/ŵ/' => 'w', 
    '/Ź|Ż|Ž/' => 'Z', 
    '/ź|ż|ž/' => 'z', 
    '/Æ|Ǽ/' => 'AE', 
    '/ß/'=> 'ss', 
    '/IJ/' => 'IJ', 
    '/ij/' => 'ij', 
    '/Œ/' => 'OE', 
    '/š/' => 's', 
    '/đ/' => 'd', 
    '/č/' => 'c', 
    '/ć/' => 'c', 
    '/ž/' => 'z', 
    '/Š/' => 'S', 
    '/Đ/' => 'D', 
    '/Č/' => 'C', 
    '/Ć/' => 'C', 
    '/Ž/' => 'Z', 
    '/ƒ/' => 'f' 
); 
相關問題