【发布时间】:2016-02-21 08:11:49
【问题描述】:
我有一个页面 A,它有重定向到页面 B 的位置标头
如果未授权,则在页面 B 上打印登录表单,如果已登录,则使用 GET 参数 CODE 重定向回页面 A。 页面A代码:
if (!$_GET['code']) {
header('Location: B');
}
页面 A 使用此代码从服务器获取信息,再次寻址到页面 B,但这次使用 CURL。 页面A代码:
$ch = curl_init();
..
curl_opt($ch, CURLOPT_URL, "B/token?code={SOMECODE}");
..
$data = curl_exec($ch);
curl_close($ch);
$result = json_decode($data);
现在我有 JSON 数据,我将继续在页面 A 上使用。页面 A 代码:
$ch = curl_init();
..
curl_opt($ch, CURLOPT_URL, "B/method/?data={SOMEDATA_FROM_$result}");
..
$result = curl_exec($ch);
curl_close($ch);
$response = json_decode($result);
$json = [
'key1' => $response->value1,
'key2' => $response->value2,
];
echo json_encode($json);
所以现在我在 A 页上打印了 JSON 数据。
这里是页面 C,我使用 curl 从页面 A 获取此 JSON 数据,但页面 A 重定向到页面 B,我们必须在此处进行授权,并获取 GET 参数 CODE。所以我用 curl 来做。 页面C代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, 'A');
$result = curl_exec($ch);
curl_close($ch);
var_dump($result);
并且$result从页面B返回授权表单的HTML代码,即使我已授权,但如果我使用echo,它只会使用var_dump()它开始无限刷新页面。
如何在页面 C 上使用 curl 从页面 A 获取正确数据?
【问题讨论】:
-
好的,所以结构是错误的。我想出不在页面 C 上使用 curl,只是从页面 C 到页面 A 的简单链接,使用 GET 参数作为到页面 C 的反向重定向链接。现在我只是在页面 B 上授权用户,将数据发送到页面 A,做我需要的所有事情,并使用 POST 请求将数据发送到页面 C。
标签: php json redirect curl get