2011-04-20 32 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