繁体   English   中英

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

[英]PHP - Curl (handler stored in session) + ajax requests using this handler

这听起来可能很愚蠢,但是我正在尝试使用PHP(带有curl)和Ajax创建客户端。

我遇到了一个问题。

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

Ajax部分正在运行,因此我可以从按钮中调用我的php页面。 我的问题是,我找不到为后续请求“重用” curl连接的方法。 我发送的每个信息在每个请求之间都被忘记了。 我这样存储我的连接:

//Initialisation
$ch = curl_init();

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

这是在第一个请求的ajax中完成的。 然后在第二个中,当我调用它时,它变为Null。 您是否知道我可以实现这一目标?

您不能以这种方式“重用”您的cURL连接。

但是,丢失此信息的原因是您的cURL调用可能未发送会话cookie 您需要将此信息保存在本地会话中:

  • 网页(带有按钮),ID为SESS-001-SITE1的会话W1已保存为cookie

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

  • PHP脚本调用了另一个PHP脚本P2(在此并不重要)

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

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

  • 我想,P1接收到此输出并将其发送到WEBPAGE

    • P1将它从P2接收的W2的cookie存储到自己的会话W1中
  • 网页再次拨打电话

  • P1收到呼叫, 从会话中检索W2的cookie,并将其加载到cURL

  • P1通过cURL连接到P2,并与cookie一起发送其他信息

  • P2现在可以恢复会话W2并适当地响应

您可以尝试使用基于文件的cookie jar来适应另一个SO答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM