2011-07-05 78 views
0

我有一個文本字段,用戶可以在其中傳遞通配符 - 更具體到他們可以使用'%'字符的問題。通過PHP中的特殊字符

我使用ajax來獲取值並將其發送到PHP文件。如果我在文本文件中輸入「%BA」和檢索使用

document.getElementById('textfield').value 

這實際上得到「%BA」的值。我使用POST方法將其發送到PHP文件。但變量在Web瀏覽器中顯示爲「 」,並在數據庫中插入「° - °小o」。

我相信還有其他一些我不知道的情況。 PHP中有沒有函數來轉義特殊字符或其他方式來獲取確切的字符串?

編輯:這可能是一個猜測,但在做escape(document.getElementById('textfield').value)發送值和使用urldecode($values[3])檢索值不起作用。也許這是一個PHP的問題js。

更新:urldecode不起作用。閱讀urldecode中的第一條評論。使用那裏的功能。解決了。

回答

0

您可以在JavaScript即

escape(document.getElementById('val')) 
1

當使用ajax傳遞值時,您只需使用encodeURIComponent()函數對值進行編碼並使用urldecode()函數在php文件中對其進行解碼。這可能會解決這個問題。

+0

我試了不行使用轉義。 – theking963

1

你可以將其存儲在數據庫中之前urlencode(也許htmlspecialchars太)編碼的字符,並使用urldecode(也許htmlspecialchars_decode)顯示給用戶之前將其解碼。

+0

這不是「可能」和「也許」的問題。您必須爲了您使用它的目的而精確地轉義原始數據。 –

+0

urlencode是一個PHP函數。逃脫相當於JavaScript中的urlencode。但仍然不起作用。 – theking963