我使用CURLOPT_COOKIEJAR将cookies存储到文件中,使用CURLOPT_COOKIEFILE从文件中检索它们。
我想知道的是,当多个用户同时访问脚本时会发生什么-它不会弄乱cookie文件的内容吗?另外,如何管理cookie文件,以便可以同时拥有多个用户?
发布于 2011-01-26 23:05:55
您需要为脚本的每次执行指定一个不同的文件,否则您将遇到文件被覆盖等问题。
您可能希望将tempnam (下面的示例)作为生成唯一文件的一种方式,或者简单地使用uniqid等,然后自己创建该文件。
<?php
session_start();
$cookieFilePath = $_SESSION['cookiefilepath']
? $_SESSION['cookiefilepath']
: tempnam(sys_get_temp_dir(), session_id().'_cookie_');
$_SESSION['cookiefilepath'] = $cookieFilePath;
...
curl_setopt($curlSession, CURLOPT_COOKIEFILE, $cookieFilePath);
...
?>也就是说,您需要确保在不再需要这些文件时将其删除。(如果这不在脚本的生命周期内,您可能希望通过使用filemtime或类似脚本的cron定期执行清理脚本。)
顺便说一句,你可以简单地提供你想要使用的文件的完整路径--它不必与脚本所在的目录相同,不管现有的Can someone explain CURL cookie handling (PHP)?问题是怎么说的。
https://stackoverflow.com/questions/4805984
复制相似问题