【问题标题】:PHP redirecting external site and POST jsonPHP重定向外部站点和POST json
【发布时间】:2013-09-18 13:24:22
【问题描述】:

我正在将注册与另一个网站集成。另一个网站以 json 格式将我的网站一些注册数据发布到我网站上的注册页面并预填充这些字段。我带用户完成注册,然后成功重定向回原始站点。此重定向应该以 json 格式、用户 ID 等发回一些信息。我不确定如何重新重定向并发布这些数据?我宁愿不使用 JS 表单提交。

任何帮助表示赞赏。

//After I have registered the user on my site and it is successful  
if($success){

$postJsonArray = json_encode(array('success' => TRUE, 'userID' = 10));
$postUrl = 'http://thirdpartysite.php';
//somehow redirect and post this $postJsonArray to the URL

}

【问题讨论】:

  • 如果您发布示例,您肯定会得到答案。
  • 您可以使用javascript发布json(使用jquery更容易。您熟悉它吗?)。

标签: php json post redirect curl


【解决方案1】:

这在 PHP 中是不可能的。您可以使用 CURL 将 JSON 发布到其他页面,然后重定向到该页面,但您不能同时重定向和发布。

对于 CURL 方法,这里有一些示例代码:

$ch = curl_init();

$json = json_encode($data);

curl_setopt($ch,CURLOPT_URL, $curl_url);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

//execute post
$result = curl_exec($ch);

curl_close($ch);

header("Location: http://example.com/redirect");

【讨论】:

  • 这在第三方网站上如何运作?即通常当您使用提交按钮或其他东西发布数据时,您会被发送到一个新页面,并且可以使用 $_REQUEST 对发布的数据做一些事情。当使用 CURL 发送数据然后您被单独重定向时会发生什么? POST 数据不在用户被定向到的页面上,对吧?
  • 正确,post数据没有发送。这种解决方案并非在所有情况下都是理想的,但考虑到局限性,这是我能想到的最好的解决方案。您还可以代理$result 中返回的页面内容并将其显示在您的网站上。我对这种情况了解得不够多,不能说这是否行得通,只是另一个建议。
  • 好吧,我只需要在我的网站上注册后,我需要重定向到第三方网站。我只需要让他们知道在我的网站上注册成功,并将用户 ID 传递给他们。这似乎是一个简单的问题,但我看不到解决方案。
  • 最好的解决方案是重定向页面,其中包含您使用 JavaScript 发布的消息和隐藏表单。你说你不想那样做,但我认为这是做你想做的事情的唯一方法。您甚至可以对您的服务器进行 AJAX 注册,并回复一条消息,然后 JS 发布到第三方网站,所有这些都在一个页面上。
【解决方案2】:

你可以使用PECL的http_redirect函数。

查看文档:https://php.uz/manual/en/function.http-redirect.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2016-03-05
    • 2012-01-27
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多