我遇到了一個有趣的問題。如果我提交我的PHP形成「tradtional」的方式通過後一個動作我捕捉表單數據如下:
headline:I%27m+just+here+for+friends%21
我用它添加到我的數據庫之前逃脫數據服務器端:mysql_real_escape_string($字符串)一切都很好。
如果我現在使用jqueries $。員額方法提交相同的形式,並通過它我的數據串行
$.post("save_data.php", $("#form_id").serialize(),
function(data) {
// process my results
}
);
它看起來像這樣:
headline:I'm+just+here+for+friends!
的mysql_real_escape通話不實際工作因爲我假設數據已經或者沒有被正確編碼。有沒有解決這個問題或者在發佈之前對錶單數據進行編碼的方法?
這裏是我當前如何處理內部PHP表單數據:
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$result = updateDataEntry($_POST);
}
$ _ POST看到序列化形式數據:標題:我剛+ + +這裏爲+的朋友!所以在我的updateDataEntry方法中使用mysql_real_escape_string($ string)仍然在數據庫中添加轉義字符。
用通過jQuery發佈的數據調用'mysql_real_escape_string'有什麼問題?沒有理由它不應該工作。 –
它可以工作,但它以稍微不同的格式發送表單數據(請參閱上文)。差異導致數據庫轉義特殊字符 – Paul
哪些字符不應該轉義。你能給出一個例子,說明在每種情況下DB中插入什麼? –