我試圖讓htmlpurifier我的代碼工作如下:HtmlPurifier disformats輸入
if(isset($_POST['selectors_data'])) {
//$selectors_data = tep_db_prepare_input($_POST['selectors_data']);
$selectors_data2 = $_POST['selectors_data'];
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$selectors_data = $purifier->purify($selectors_data2);
}
我嘗試插入(NEWVALUE):<i class="fa fa-angellist"></i>
在我的本地所有魔術引號和引用將魔術引號關閉
數據保存時(通過jQuery $ .post)
$.post('ajax_editor.php', {
action: 'update',
selectors_id: id,
selectors_field: field,
selectors_data: newvalue
}, function (data) {
$(' #container ').html(data);
}, "json");
通過以下查詢的數據被告知要插入:
tep_db_query("update " . TABLE_BTS_CSS_SELECTORS . " set selectors_name = '" . $selectors_data . "' where selectors_id = '" . (int)$selectors_id . "'");
,並通過以下數據庫函數的數據實際上是插入:
function tep_db_query($query, $link = 'db_link') {
global $$link;
$result = mysqli_query($$link, $query) or tep_db_error($query, mysqli_errno($$link), mysqli_error($$link));
return $result;
}
所以,沒有被替換/剝離/除了使用htmlpurifier 以外,整個過程都被刪除但數據存儲爲:
<i class=""fa"></i>
我沒有選擇。
由於我的網站是UTF-8我也嘗試:
$purifier = new HTMLPurifier();
$selectors_data = $purifier->purify($selectors_data2);
因此,沒有配置
當我在Htmlpurifier(click to see attempt)演示現場測試,一切似乎罰款。
UPDATE:我現在是100%肯定不是由HTMLpurifier.There產生的問題似乎隱藏着一些未知的代碼轉換$_POST
語句(對不起)
解決發現「隱藏代碼:
// handle magic_quotes_gpc turned off.
if (!get_magic_quotes_gpc()) {
do_magic_quotes_gpc($HTTP_GET_VARS);
do_magic_quotes_gpc($HTTP_POST_VARS);
do_magic_quotes_gpc($HTTP_COOKIE_VARS);
}
凡ofcourse每個$ _GPC或$ HTTP_GPC斜槓增加。 這麼簡單stripslashes($_POST['selectors_data'])
之前HTMLPurifier讓它工作:)
對不起這個大帖子
也許多個類不支持 – 2014-10-16 21:49:41
只是添加鏈接到演示網站,在那裏可以看到它支持。 – HenryW 2014-10-16 21:50:42
你確定''是傳遞給HTMLPurifier的整個字符串 – 2014-10-16 21:55:46