PHP重定向外部站点并发布json

PHP重定向外部站点并发布json,php,json,post,redirect,curl,Php,Json,Post,Redirect,Curl,我正在与另一个网站集成注册。另一个网站用json将我的网站的一些注册数据发布到我网站的注册页面,并预填充字段。我带用户通过注册,然后成功重定向回原来的站点。这个重定向应该以json格式、用户ID等方式发回一些信息。我不确定如何发回重定向并发布这些数据?我不想使用JS表单提交 谢谢你的帮助 //After I have registered the user on my site and it is successful if($success){ $postJsonArray = json

我正在与另一个网站集成注册。另一个网站用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

}

您可以使用PECL的
http\u重定向
功能


查看文档:

您可以使用PECL的
http\u重定向功能


查看文档:

这在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");

这在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");

如果你发布一个示例,你肯定会得到答案。你可以使用javascript发布json(使用jquery更容易。你熟悉它吗?)。如果你发布一个示例,你肯定会得到答案。你可以使用javascript发布json(使用jquery更容易。你熟悉它吗?)。这在第三方网站上是如何工作的?i、 e通常,当您使用提交按钮或其他方式发布数据时,您会被发送到新页面,并且可以使用$u REQUEST对发布的数据进行处理。当使用CURL发送数据,然后单独重定向时会发生什么情况?该POST数据不在用户被定向到的页面上,对吗?正确,POST数据不被发送。这个解决方案并非在所有情况下都是理想的,但考虑到局限性,它是我所能想到的最好的解决方案。您还可以代理
$result
中返回的页面内容,并将其显示在您的站点上。我对这种情况了解不够,不能说这是否有效,这只是另一个建议。我只需要在我的网站注册后,重定向到第三方网站。我只需要让他们知道我的网站注册成功,并将用户ID传递给他们。这似乎是一个直截了当的问题,但我看不到解决方案。最好的解决方案是使用JavaScript发布的带有消息和隐藏表单的重定向页面。你说你不想那样做,但我认为这是做你想做的事情的唯一方法。你甚至可以对你的服务器进行AJAX注册,并回复一条消息,然后JS发布到第三方站点,所有这些都在一个页面上。这在第三方站点上是如何工作的?i、 e通常,当您使用提交按钮或其他方式发布数据时,您会被发送到新页面,并且可以使用$u REQUEST对发布的数据进行处理。当使用CURL发送数据,然后单独重定向时会发生什么情况?该POST数据不在用户被定向到的页面上,对吗?正确,POST数据不被发送。这个解决方案并非在所有情况下都是理想的,但考虑到局限性,它是我所能想到的最好的解决方案。您还可以代理
$result
中返回的页面内容,并将其显示在您的站点上。我对这种情况了解不够,不能说这是否有效,这只是另一个建议。我只需要在我的网站注册后,重定向到第三方网站。我只需要让他们知道我的网站注册成功,并将用户ID传递给他们。这似乎是一个直截了当的问题,但我看不到解决方案。最好的解决方案是使用JavaScript发布的带有消息和隐藏表单的重定向页面。你说你不想那样做,但我认为这是做你想做的事情的唯一方法。您甚至可以对您的服务器进行AJAX注册,并用消息进行响应,然后使用JS发布到第三方站点,所有这些都在一个页面上。