【发布时间】:2014-04-01 15:37:21
【问题描述】:
我有一个 php 代理服务器,电子邮件和密码在开始时发布(登录)。然后我使用
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieJar);
curl_setopt( $ch, CURLOPT_HEADER, 1);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
转发到一些需要某些参数的 API。如您所见,我将 cookie 保存在 cookie jar 文件中。
然后我可以使用这个 cookie 文件来调用任何其他请求到代理 -> API 并成功获得响应。一切正常。我用
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieJar);
在用户成功登录后提出其他请求。
问题是当时只有一个用户可以登录(并调用其他请求),因为只有一个 cookie jar 文件。我可能会在代理上生成唯一的 cookie 文件,并通过每个用户的每个新请求以某种方式访问它们。但这对服务器来说是一个负担,绝对不是一个好主意。
所以我想做的是将接收到的cookie保存到变量而不是文件中,然后将其发送给用户......
This 不幸地对我不起作用;我可能可以设法编写自己的正则表达式,但我想知道是否有可能使用 curl 直接将 cookie 保存到变量中,或者我是否必须手动解析标头? (我希望能够用变量中的 cookie 而不是文件中的 cookie 来提供 CURLOPT_COOKIEFILE)
【问题讨论】:
-
这只是我已经在做的事情。不幸的是。