2011-05-19 48 views
1

我使用Zend框架與教條爲一個項目,問題是,當我插入數據庫像O'Shea字符串它插入O \ Shea。 我想這是因爲雙重逃脫。一個當我得到的職位,當我使用原則,爲什麼當我print_r($ _ POST)我的價值觀已經逃脫?Zend框架雙轉義

主義查詢的語法是:

$req = $this->getRequest()->getPost(); 
$company = Doctrine::getTable('Project_Model_Companies')->find($company_id); 
$company->name = $req['name']; 
$company->save(); 

請幫助我如何避免這種雙重轉義,或有什麼問題? 謝謝。

+2

也許魔術引號啓用 – Ibu 2011-05-19 07:26:07

回答

6

聽起來像magic_quote_gpc已打開。

您可以請檢查是否魔術qoutes啓用或不get_magic_quotes_gpc

echo (get_magic_quotes_gpc()) ? 'Magic qoutes Enabled' : "Magic qoutes Disabled"; 

我會強烈建議Disabling Magic Quotes

試試下面的.htaccess文件的指令:

php_value magic_quotes_gpc Off 

或者在php.ini

magic_quotes_gpc = Off 
+0

我怎麼能錯過這個,感謝花花公子;) – Centurion 2011-05-19 07:46:54

+1

有在.htaccess指令未成年錯字: 'php_value magic_quotes_gpc的Off' (注意,從報價失蹤's') – 2012-11-21 09:21:06

+0

感謝的阿提拉。修正了錯字。 – 2012-11-21 10:39:11

2

除了本傑明克里默回答:

有時魔術引號不能禁用,請在您的索引文件中使用此代碼以確保此問題永遠不會再打擾您:

if (get_magic_quotes_gpc()) { 
    function stripslashes_deep($value) 
    { 
    $value = is_array($value) ? 
      array_map('stripslashes_deep', $value) : 
      stripslashes($value); 

    return $value; 
    } 

    $_POST = array_map('stripslashes_deep', $_POST); 
    $_GET = array_map('stripslashes_deep', $_GET); 
    $_COOKIE = array_map('stripslashes_deep', $_COOKIE); 
    $_REQUEST = array_map('stripslashes_deep', $_REQUEST); 
} 
+0

謝謝,更多的解決方案總是很好:) – Centurion 2011-05-20 14:54:47