【发布时间】:2011-11-05 17:11:28
【问题描述】:
我有一组 php 处理页面,它们通过 get 传递数据来进行交互,但现在我必须在几个处理页面之间传递 JSON,并且需要与使用 GET 时相同的功能。
当前工作的get方法:
//The guts
header("Location: $moreprocessing_url/?userid=$id");
exit();
然后在moreprocessing_url中接:
$userid = $_GET[id];
//More guts
$something = 'important';
header("Location: $public_url/?something=$something");
exit();
所以现在在第一个处理页面中,我需要发送 JSON,而不是发送简单的字符串 - 所以我使用 CURL 来发布 JSON - 但是在发布之后我希望被发布的页面继续处理并停止原始页面。上述代码的工作方式相同,但使用 CURL/post 代替。可能是我对 CURL 的理解不够深入,这是不可能的?
我的卷曲:
$curl = curl_init($moreprocessing_url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_exec($curl);
curl_close($curl);
exit();
所以这会返回到发生 CURL 的当前页面,而不是我想要的 moreprocessing_url - 这可能吗?基本上我希望被发布的页面接管并停止发送 CURL 的页面。
【问题讨论】:
-
如果只是将数据从一个页面传递到另一个页面,你不能只使用会话吗?
$id变量(或您的 JSON)永远不会访问浏览器。 -
这些 php 处理页面是从另一种执行会话 id 管理的语言调用的,所以试图避免这种情况..?
-
Salman A- 我认为会话是用来管理当前 Web 应用用户的会话 ID 的——我可以像上面的例子那样只使用会话来传递数据吗?
-
你是对的,在这种情况下会话将不起作用。