URL 斜杠'/'进行双重编码。更改为 %252F 而不是 %2F



我的表单中有两个输入。

Input 1 value = '02/03/2015' // Both are date 
Input 1 value = '04/03/2015' // Both are date 

当我尝试通过GET或POST方法提交此表单时,我的vps上的url更改为此表单:

from_date=02%252F03%252F2015&to_date=05%252F03%252F2015

在本地主机上:

from_date=04%2F03%2F2015&to_date=04%2F03%2F2015

实际上,问题是"/"在VPS上的url中被双重编码,这破坏了我的sql查询。任何帮助都是可观的。

Apache(可能是2.2.2)中有一个错误,使URL双重编码。

如果您无法更新 Apache ,请尝试像这样更改您的 .htaccess:

RewriteRule             /(.*)   http://localhost/$1        [NE,P,L]

NE标志的意思是:无法逃脱。

另一种解决方法是,在使用JS发送数据时,您可以尝试将日期更改为不使用斜杠的另一种格式:(例如:02-03-2015)

让我知道它是否有效。

在将 PHP 函数查询到数据库中之前urldecode()使用它。诸如此类:

<?php
$date1 = urldecode($_GET["from_date"]);
$date2 = urldecode($_GET["to_date"]);
?>

您可以使用 POST 来避免这种情况:

<?php
var_dump( $_POST );
?>
<form action="55.php" method="POST">
<input type="text" name="input1" />
<input type="hidden" name="input2" value="02/03/2015" />
<input type="submit" />
</form>
array(2) {
  ["input1"]=>
  string(10) "02/03/2015"
  ["input2"]=>
  string(10) "02/03/2015"
}

最新更新