我的表单中有两个输入。
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"
}