无法通过$ _POST传递包含带参数的网址的内容

时间:2013-01-11 09:24:55

标签: php url post

这真的很奇怪。我在表单中有一个文本框。单击提交按钮后,文本框的内容将发布到page2.php

如果文本框包含类似

的文本
This is a sample url 
https://maps.google.com/maps?q=karnataka+badminton+association+bangalore&ie=UTF-8&ei=w4_lUNWmJozjrAfSkYGYBA&ved=0CAsQ_AUoAA 

现在当我点击提交时,我正在回复page2.php中的内容,这就是我得到的:

//echo $_POST['message'];

This is a sample url 
https://maps.google.com/maps?q=karnataka

我收到了消息,但是在第一个'+'之后网址被删除了。任何想法如何使这项工作?

我甚至用firebug检查了POST请求,并在那里正确显示了完整的URL。

新编辑: 我现在用ajax尝试这个。

1 个答案:

答案 0 :(得分:1)

您应首先对网址进行编码。您可以使用javascript中嵌入的encodeURIComponent(str)或encodeURI(str)来执行此操作。请参阅:Encode URL in JavaScript?

然后,您应该使用urldecode / rawurldecode将url解码为其原生形式。您还可以存储解码后的表单,并根据需要在php / javascript中解码URL。见:http://php.net/manual/en/function.rawurlencode.php