【问题标题】:Cannot get query from URL无法从 URL 获取查询
【发布时间】:2014-12-27 23:07:47
【问题描述】:

我正在我的网站中实施支付系统。 付款时,我创建一个 transaction_id 和一个 order_id。第三方需要 transaction_id 才能成功付款。 order_id 是为了让我识别哪个订单伴随哪个交易。

付款后,用户返回“返回页面”。此 URL 类似于:'www.myawesomewebsite.com/return' 但是,它会在链接后添加 order_id。所以这个网址看起来像:'www.myawesomewebsite.com/return?#31102014033349-3'。

当我在这个页面上时,我想解析 URL 以检索 order_id。但是,如果我这样做:

array(3) { ["scheme"]=> string(4) "http" ["host"]=> string(17) "www.myawesomewebsite.com" ["path"]=> string(27) "/return"

如您所见,它不会在 URL 中返回查询。如果我var_dump(Request::url()); 它还返回“www.myawesomewebsite.com/return”。不知何故,它无法“看到” URL 中的 order_id。

我的问题,我怎样才能成功检索到 order_id?

【问题讨论】:

  • 见这里:stackoverflow.com/questions/3664257/…。解决方案是使用像 ?var=31102014033349-3 这样的实变量
  • 1. URL 中的任何地方都没有order_id 2. # 之后的任何内容都不会传递给服务器。
  • @AbraCadaver 1. '#31102014033349-3' 是 order_id。 2. 我将 order_id 更改为仅包含数字。它仍然无法读取它。
  • @jeroen 所以你说的是我必须使用 jquery 来获取 order_id?我认为在这种情况下不可能使用 jquery。
  • WTF!?!?这里有两个@Jeroen 吗?我的大脑几乎要爆炸了!

标签: php parsing laravel omnipay


【解决方案1】:
<?php

    $url = "http://www.myawesomewebsite.com/return?order_id=31102014033349-3";

    $host = parse_url( $url );

    var_dump( $host );

?>


Output:

array(4) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(24) "www.myawesomewebsite.com"
  ["path"]=>
  string(7) "/return"
  ["query"]=>
  string(25) "order_id=31102014033349-3"
}

或者简单的通过:

$_GET["order_id"];

【讨论】:

  • 刚发现 $_GET['order_id'];成功了。顺便说一句,您的输出不正确。查询不存在(在我的情况下)。
猜你喜欢
  • 2018-10-10
  • 2020-08-03
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 2021-10-10
  • 1970-01-01
  • 2021-03-16
  • 2018-05-29
相关资源
最近更新 更多