2011-04-20 36 views
2

我正在开发一个应用程序,通过cURL远程登录等等。PHP&cURL代理 - 如何制作多用户cookie jar?

远程站点发出一个会话cookie,我可以将它存储在我的cookie jar中。

我希望每个用户到我的网站在远程站点上都有一个唯一的会话。我的应用程序只用一个用户(我)就能正常工作,但我不确定如何使其成为多用户。

我的第一个想法是为我的应用程序用户设置一个会话变量,然后使用此变量作为cookie jar的名称,但这看起来很丑。

是否有任何内置的PHP/cURL功能将从远程服务器传递给我的用户的唯一会话?

非常感谢您的帮助。

杰克

回答

3

您的问题有解决方案的每个元素,即饼干jar和会话。

当您提供的cookie jar文件卷曲只需根据你的用户给它一个名字,例如:

$protected_cookie_dir='/cookies/'; 
$uid=getUser()->id; // get the user id 
curl_set_opt($ch,CURLOPT_COOKIEFILE,$protected_cookie_dir.'file_'.$uid.'.data'); 
curl_set_opt($ch,CURLOPT_COOKIEJAR,$protected_cookie_dir.'jar_'.$uid.'.data'); 

重要:一定要隐藏的文件夹(也许它存储你的文件根目录以外)。

+0

感谢您的回复。我认为我的问题可能有点模棱两可 - 当我说'多用户'时,我的意思是'同时在线的多个用户',而不是'用户管理'。 我从你的回答中得出的结论是,将远程会话cookie存储在由当前PHP会话特有的东西所定义的jar中 - 例如session_id()是正确的做事方式。感谢您为我清理。 – 2011-04-20 14:32:33

+0

不客气!但要注意的是,您必须使用CURL设置来重置每次通话之间的Cookie,否则易失性Cookie可能会在会话之间泄漏。查看此处了解详情:http://www.php.net/manual/en/function.curl-setopt.php – Christian 2011-04-20 14:38:02

+0

感谢您提供这些信息,CURL在您引用它们时会自动创建此Cookie文件吗?还是需要在同一个脚本中创建它们? – 2011-08-08 23:49:32