URL过滤和发布到MySQL

时间:2011-11-23 13:52:18

标签: php mysql

我想在MySQL表中保存类似下面的URL

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,text,varchar列类型,但它似乎不起作用。这就是我用于插入查询的内容:

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

有人能指出我的问题在哪里吗?

1 个答案:

答案 0 :(得分:1)

如果您想存储完整的网址,则必须使用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