Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 服务器没有';不接受url参数_Php - Fatal编程技术网

Php 服务器没有';不接受url参数

Php 服务器没有';不接受url参数,php,Php,测试付款后,银行向我发送了此url,其中包含一些参数: 银行使用的方法是邮寄 https://www.example.net:443/demo/index.php?order&mybanque&success&ho?TPE=XXXX14&date=17%2f08%2f2018%5fa%5f14%3a31%3a35&montant=26%2e50EUR&reference=000000000055&MAC=5DA667XXXXXXXXXXXX

测试付款后,银行向我发送了此url,其中包含一些参数: 银行使用的方法是邮寄

https://www.example.net:443/demo/index.php?order&mybanque&success&ho?TPE=XXXX14&date=17%2f08%2f2018%5fa%5f14%3a31%3a35&montant=26%2e50EUR&reference=000000000055&MAC=5DA667XXXXXXXXXXXXXXXXXXXXX24C&texte-libre=gpdiv2vXXXXXXXXXXdd9iq&code-retour=payetest&cvx=oui&vld=1219&brand=VI&status3ds=-1&numauto=000000&originecb=FRA&bincb=000001&hpancb=A4F7BXXXXXXXXXXXXXXXXXX9C87CBBEA&ipclient=XXX%2e158%2e61%2eXXX&originetr=CAN&veres=&pares=&modepaiement=CB
我有这样的功能

public static function getMethod() {

  if ($_SERVER["REQUEST_METHOD"] == 'GET') return $_GET;
  if ($_SERVER["REQUEST_METHOD"] == 'POST') return $_POST;

  die ('Invalid REQUEST_METHOD (not GET, not POST).');
}
我有这个:

" array(4) { ["order"]=> string(0) "" ["desjardins"]=> string(0) "" ["success"]=> string(0) "" ["ho"]=> string(0) "" } string(77) "
在邮局我什么都没有


如何获取url参数:
TPE=XXXX14&date=17%2f08%2f2018%5fa%5f14%3a31%3a35&montant=26%2e50EUR&reference=0000000000 55&MAC=5da667xxxxxxxxxxxxxxxxxxx4c&texte libre=gpdiv2vXXXXXXXXXXdd9iq

银行正在向您发送无效的查询字符串,使用
&
作为
TPE
之前的分隔符,而不是
&
。PHP无法将这些参数解析为
$\u GET

您可以使用
$\u服务器['QUERY\u STRING']
获取原始查询字符串,并自己解析

if (preg_match('/(<=?).*/', $_SERVER['QUERY_STRING'], $match) {
    parse_str($match[0], $extra_params);
    $tpe = $extra_params['TPE'];
    $data = $extra_params['date'];
    ...
}

if(preg_match('/)你如何测试POST请求?通过var_dump()你的url查询中有一个
,应该是
&
。这里:
&ho?TPE=xxxxxx14&
@Bamar,我的问题是当银行发送POST请求时,我不知道"t到达获取银行发送的URL参数。TPE=XXXX14&date=…这是我的问题,他们在URL中有两个
。这是无效的。第一个
将路径名与参数分开,PHP将忽略第二个
之后的所有内容,而不是
。是的,巴马尔,我知道,这就是为什么我将?替换为&并重建url。你在哪里这样做?