2012-09-11 124 views
2

我爲wordpress寫了一個插件,用於存儲餐館菜單項。但是每當使用撇號時,wordpress都會在管理員和前端使用斜槓進行轉義,並在每次保存時不斷向文本添加斜槓。wordpress中逃逸撇號

這是我有什麼作爲後代碼的摘錄和例子:

$dinnerEntree2 = $_POST[$dinnerEntree_option]; 
for ($i=1; $i<= $dinner_menu_item_number_saved; $i++) { 

// entree dinner_menu_entree_option 
$dinnerEntree = "dinner_menu_".$i."_entree"; 
$dinnerEntree_saved = "dinner_menu_".$i."_entree_save"; 
$dinnerEntree_option = "dinner_menu_".$i."_entree_option"; 
$dinnerEntree_saved2 = get_option($ingredients); 
$dinnerEntree2 = $_POST[$dinnerEntree_option]; 

if ($dinnerEntree_saved2 != $dinnerEntree2) 
if(!update_option($dinnerEntree,$dinnerEntree2)) 
$message='failed to save large entree'; 
// end of entree 

,並在輸入表單字段:

<input type="text" name="dinner_menu_<?php echo $i ?>_entree_option" value="<?php echo get_option($dinnerEntree); ?>" size="40"/></span> 

我已經試過的stripslashes,但有沒有運氣。多年來一直在討論這個問題,但我沒有看到wordpress的確切解決方案。魔術引號關閉在我的服務器....任何想法?

回答

4

使用

$dinnerEntree2 = stripslashes_deep($_POST[$dinnerEntree_option]); 

參考:stripslashes_deep()


注:之前的任何(而不是內)命令與$wpdb互動應該使用。

+0

謝謝 - 但仍然沒有成功。這是一個難以解決的問題。很多谷歌搜索還沒有幫助我,這就是爲什麼我決定發佈到這個偉大的網站。 – er777

+0

如果數據庫中的條目已經含有太多斜線(例如'\\\\\\\''),則可能必須在再次嘗試'stripslashes_deep()'之前手動刪除它們。 – stealthyninja

+0

數據庫中沒有斜槓......管理插件並不刪除它們 – er777