PHP $ _GET不返回

时间:2017-07-10 07:11:35

标签: javascript php html

我有一个网址,其中我试图提取一些参数。 我的网址可以有两种形式,
“代码”或“刷新” 但它返回null,甚至认为参数设置为url 网址 - > WITH'CODE' http://www.example.com/token.php?client_id=hello&client_number=blahblah&type=authcode&code=hello23423

网址 - > WITH'REFRESH' http://www.example.com/token.php?client_id=hello&client_number=blahblah&type=authrefresh&refresh=74388bye

$token = "NULL";
$client = $_GET['client_id'];
$secret = $_GET['client_number'];
$type = $_GET['type'];

if (isset($_POST["code"])) {
    $token = $_GET['code'];
}

if (isset($_POST["refresh"])) {
    $token = $_GET['refresh'];
}

echo $client;   // $client, $secret and $type is printed without any issues
echo $secret;
echo $type;
echo $token;  <---- Always returns NULL even though the URL has the parameters CODE or REFRESH

3 个答案:

答案 0 :(得分:6)

您正在混合$_GET$_POST(这些不可互换)。

当您在查询字符串中传递参数时,您将始终使用$_GET

if (isset($_GET["code"])) {
    $token = $_GET['code'];
}

if (isset($_GET["refresh"])) {
    $token = $_GET['refresh'];
}

希望这有帮助!

答案 1 :(得分:0)

您可以尝试使用$_REQUEST代替$_GET$_POST

http://php.net/manual/it/reserved.variables.request.php

  

一个关联数组,默认包含$ _GET,$ _POST e $ _COOKIE的内容。

答案 2 :(得分:0)

您必须了解何时使用$_GET$_POST

通过查询字符串(在url中)传递参数时使用的

$_GET(同样在设置表单方法get时)

$_POST使用POST方法从表单发送的信息

在您的情况下,您使用查询字符串传递数据,因此您必须$_GET而不是$_POST

检查是否设置了数据
if (isset($_GET["code"])) {
    $token = $_GET['code'];
}

if (isset($_GET["refresh"])) {
    $token = $_GET['refresh'];
}

如果你仍然混淆使用$_REQUEST它支持通过查询字符串(GET)传递参数以及POST

    if (isset($_REQUEST["code"])) {
        $token = $_REQUEST['code'];
    }

    if (isset($_REQUEST["refresh"])) {
        $token = $_REQUEST['refresh'];
    }