2013-02-13 15 views
0

如果將全名提交到數據庫的名稱列並將其拖到網頁上,則會在空間中添加+符號。從數據庫中提取數據並顯示不需要的字符的數據

此外,如果那裏有一個

是否有解決這些問題的

+0

考慮使用stripslashes(http://www.php.net/manual/en/function..php) – kernelpanic 2013-02-13 09:48:02

+0

顯示你的php代碼,你必須做一些奇怪的事情,比如從查詢字符串中獲取數據,簽字出現。 – Adder 2013-02-13 09:49:26

+1

'+'是因爲它是[urlencode](http://www.php.net/manual/en/function.urlencode.php)'d。使用[urldecode](http://www.php.net/manual/en/function.urldecode.php)將其轉換回來。並使用[stripslashes](http://www.php.net/manual/en/function.stripslashes.php)刪除斜槓。最後得到'$ newOutput = urldecode(stripslashes($ fromDB));' – Jon 2013-02-13 09:54:04

回答

0

從任何方式「在消息欄和它拉到一個網頁,它會顯示之前的每一個\消息文本中」您在評論中添加的代碼,將我的評論擴展爲答案。 '+'是因爲你在某些行中是urlencodeurlencode適用於將成爲URL一部分的數據,我認爲您希望將其顯示爲HTML格式,您可以在其中使用htmlentities。但是在從數據庫中提取數據後,在使用htmlentities之前,您需要使用stripslashes

看來,當你得到你的POST數據時,你的服務器已經添加了斜線。根據服務器版本的不同,您需要先檢查Magic Quotes,如果啓用,則可以使用stripslashes,然後再推送mysql_real_escape_string。但是,由於您的數據庫已經建立,所以完全跳過這一段並處理您已有的內容可能會更容易。

備註:使用'準備好的陳述'是一種更好的做法,並且不需要使用mysql_real_escape_string。 ^^

+0

這是正確的 $ message = urlencode(stripslashes($ row ['message'])); – 2013-02-13 10:38:14

+0

我不認爲你需要'urldecode'作爲你對這個問題的評論表明你是來自數據庫的'urlencode'數據,所以你只需要'$ message = stripslashes($ row ['message']);'它的一部分 - 除非你希望它正確地顯示在HTML中,那麼它將是'$ message = htmlentities(stripslashes($ row ['message']));' – Jon 2013-02-13 10:40:34

+0

從編輯評論_no no no!_,你不'除非你把它放在地址欄中,否則你不想'urlencode'任何東西r,使用'htmlentites'來代替以HTML格式顯示它。 – Jon 2013-02-13 10:41:56

相關問題