PHP - Curl(存储在会话中的处理程序)+使用此处理程序的ajax请求

时间:2014-10-26 20:50:15

标签: javascript php jquery ajax curl

这可能听起来很愚蠢,但我试图使用PHP(使用curl)和Ajax创建客户端。

我遇到了问题。

我有一个索引页面,其中按钮使用Curl向服务器发送请求。 我希望能够通过单击不同的按钮从该索引页面发送多个请求。

ajax部分正在工作,所以我可以从我的按钮调用我的php页面。 我的问题是,我找不到一种方法来重复使用"我的卷曲连接后续请求。我发送的每个信息都在每个请求之间被忘记。 我存储了这样的连接:

//Initialisation
$ch = curl_init();

//Je stocke la connexion dans un pointeur pour stockage dans variable session.
$_SESSION['connexion'] = $ch;

这是在第一个请求的ajax中完成的。 然后在第二个,当我调用它时,它变为空。 你知道我能做到吗?

1 个答案:

答案 0 :(得分:1)

你不能重复使用"这样你的cURL连接。

但您丢失此信息的原因是您的cURL电话可能不会发送会话Cookie 。您需要在本地会话中保存此信息:

  • WEBPAGE(带按钮),会话W1,ID为SESS-001-SITE1,保存为cookie

  • 按钮调用PHP脚本,session_start()可以访问W1会话

  • PHP脚本调用另一个PHP脚本P2(其中,它并不那么重要)

  • P2设置自己的cookie,ID为SESS-002-SITE2,映射名为W2的会话

  • P2还会发送一些有趣的输出

  • P1接收此输出并通过AJAX将其发送给WEBPAGE

    • P1将从P2收到的W2的cookie存储到自己的会话W1中
  • WEBPAGE再次致电

  • P1接听电话,从会话中检索W2的Cookie,将其加载到cURL

  • P1通过cURL连接到P2并发送其他信息以及cookie

  • P2现在可以恢复会话W2并做出适当的回应

您可以尝试调整another SO answer using file-based cookie jars