php中form通过get传中文字符自动用urlencode转换
如下面一个表单:<formaction="./search.php"name="searchform"method="get"><inputtype="text"name...
如下面一个表单:
<form action="./search.php" name="searchform" method="get">
<input type="text" name="keywords" style="width: 300px;"/> <input type="submit" value="搜索"/>
</form>
例如在我提交“你是谁”搜索的时候,自动打开的网页地址是:http://localhost/SEO/search.php?keywords=你是谁
怎么才能点击搜索之后自动打开的网址是中文用urlencode加密过的字符串呢?像在百度搜索的时候那样打开这样的网址:http://localhost/SEO/search.php?keywords=%E4%BD%A0%E6%98%AF%E8%B0%81
求高手指导 展开
<form action="./search.php" name="searchform" method="get">
<input type="text" name="keywords" style="width: 300px;"/> <input type="submit" value="搜索"/>
</form>
例如在我提交“你是谁”搜索的时候,自动打开的网页地址是:http://localhost/SEO/search.php?keywords=你是谁
怎么才能点击搜索之后自动打开的网址是中文用urlencode加密过的字符串呢?像在百度搜索的时候那样打开这样的网址:http://localhost/SEO/search.php?keywords=%E4%BD%A0%E6%98%AF%E8%B0%81
求高手指导 展开
4个回答
展开全部
不需要做任何处理,这是由浏览器自动控制的。
带有中文的地址显示上更友好,但是,如果你复制该地址到一个文本文件中,你应该会看到粘贴的结果是已经用url编码的结果咯。
请不要在提交时自行编码,否则反倒会造成问题,即当你提交时进行了额外的urlencode的话,php端必须也同样额外的进行一次urldecode,否则你无法得到正确的搜索结果了。
urlencode并不是加密,只是格式不同而已。再说用户自己定制的搜索关键词,你加密它有什么意义?用户难道不知道自己写的什么吗,是不是这个道理。
带有中文的地址显示上更友好,但是,如果你复制该地址到一个文本文件中,你应该会看到粘贴的结果是已经用url编码的结果咯。
请不要在提交时自行编码,否则反倒会造成问题,即当你提交时进行了额外的urlencode的话,php端必须也同样额外的进行一次urldecode,否则你无法得到正确的搜索结果了。
urlencode并不是加密,只是格式不同而已。再说用户自己定制的搜索关键词,你加密它有什么意义?用户难道不知道自己写的什么吗,是不是这个道理。
展开全部
FORM 里使用get 方法,应该在你提交表单前用JS方法encodeURI先将输入的值进行转换。
追问
能不能帮忙把这段js方法写出来,我对js了解不太多,麻烦了
追答
$(function(){
$("#submit").click(function(){
$("#keywords").val(encodeURI($("#keywords").val()));
$("form").sumbit();
});
});
注意添加jquery类库。试试看吧
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
rawurlencode ( string str)是PHP的实现方法,将非ASCII码转换,这不是加密,是因为GET方法不允许传非ASCII码,必须这么做。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
跳转到搜索页面的时候可以用js实现,在js里实现关键字加密就行了
追问
能不能分享下这段js代码,本人对js了解不多,多谢了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询