從你的「價值的文本字段」的描述我猜測你有一些輸出這樣的代碼:
Redisplay
<input value='<?=$_GET['search']?>'>
在這種情況下,包含單引號將終止HTML屬性。而且單引號後面的任何內容都只是對瀏覽器的垃圾。在這種情況下,應用htmlspecialchars
來幫助輸出。
(反斜槓可能是由於magic_quotes或mysql _ * _在輸出文本之前轉義的。我懷疑這個問題是否描述了數據庫錯誤。)
更新:看來這的確是一個輸出問題就在這裏:
echo "<a href='searchmusic.php?search=$search&s=$next'>Next</a>";
不管,如果你使用單或雙引號,你將需要:
echo "<a href='searchmusic.php?search="
. htmlspecialchars(stripslashes($search))
. "&s=$next'>Next</a>";
(公告在這裏使用stripslashes
是一種解決方法,您應該保留原始搜索文本,或者disable the magic_quotes
。)
好吧我忘記了一些至關重要的東西。 htmlspecialchars
需要ENT_QUOTES參數 - 總是和你的情況特別:
// prepare for later output:
$search = $_GET['search'];
$html_search = htmlspecialchars(stripslashes($search), ENT_QUOTES);
,然後使用等。無論您想顯示前$搜索:
echo "<a href='searchmusic.php?search=$html_search&s=$next'>Next</a>";
是它在表上是否正確?如果沒有,也許你在保存數據時沒有逃脫它。 Apos必須加倍,例如更新... set col1 ='我不知道'... – Bohemian 2011-06-07 23:09:08
你可以顯示更多代碼的例子嗎?這不會發生在我身上。 – MGwynne 2011-06-07 23:10:22
嘗試在get上運行urldecode,然後嘗試運行mysql_real_escape_string(使數據庫使用安全)。不知道這是否是問題,但值得一試。就像MGwynne說的那樣,當你訪問get變量時不應該發生這種情況,它可能發生在你將它添加到數據庫時 – Ben 2011-06-07 23:12:51