2011-11-23 53 views
-1

我要救一個URL就像在一個MySQL表URL過濾和張貼到MySQL

http://www.google.com/search?q=mysql+rel+scape&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#hl=en&safe=off&client=firefox-a&hs=uUt&rls=org.mozilla:en-US:official&sa=X&ei=t_jMTtvUE4jfsgbA_4HdDA&ved=0CBgQvwUoAQ&q=mysql+real+escape&spell=1&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=6f9f60a823dcbbc2&biw=1920&bih=901 

下一個,但它只是存了

http://www.google.com/search?q=mysql rel scape 

我嘗試UTF-8,文本,varchar列類型,但它似乎不工作。這是我用於我的插入查詢:

'".addslashes($_POST['url'])."', 

任何人都可以指出我問題在哪裏?

+0

有趣的是,只有上升到第一個「&」字符......或者這意味着什麼都沒有 – musefan

+0

請切換到使用參數化查詢。 'addslashes'甚至是'mysql_real_escape_string'都不會阻止SQL注入攻擊。看到我對這個問題的答案:http://stackoverflow.com/questions/8165500/efficiently-sanitize-user-entered-text/8169705#8169705 – Polynomial

+0

此外,請發佈您的完整代碼。 – Polynomial

回答

1

如果你想存儲的完整URL,你將不得不使用進行urlencode

$url = urlencode('http://www.google.com/search?q=mysql+rel+scape&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#hl=en&safe=off&client=firefox-a&hs=uUt&rls=org.mozilla:en-US:official&sa=X&ei=t_jMTtvUE4jfsgbA_4HdDA&ved=0CBgQvwUoAQ&q=mysql+real+escape&spell=1&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=6f9f60a823dcbbc2&biw=1920&bih=901'); 

這將存儲作爲&&可以存儲在數據庫中。

不要忘記看看安全性,千萬不要盲目地在數據庫中接受$ _POST。像Polynomial說的:Efficiently sanitize user entered text

+0

以及這種幫助。即時通訊仍在檢查更多解決方案非常感謝 – maxlk