我有一个网址,其中我试图提取一些参数。
我的网址可以有两种形式,
“代码”或“刷新”
但它返回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
答案 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
$_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'];
}