如何为每个客户端/ PC运行脚本有多个Cookie?卷曲:多个饼干
如果ComputerA运行脚本,则会创建cookies.txt,并且ComputerB运行相同的脚本,然后cookie.txt将被覆盖,这是不好的。
例子:
curl_setopt($ch,CURLOPT_COOKIEFILE,"cookie.txt");
curl_setopt($ch,CURLOPT_COOKIEJAR,"cookie.txt");
如何为每个客户端/ PC运行脚本有多个Cookie?卷曲:多个饼干
如果ComputerA运行脚本,则会创建cookies.txt,并且ComputerB运行相同的脚本,然后cookie.txt将被覆盖,这是不好的。
例子:
curl_setopt($ch,CURLOPT_COOKIEFILE,"cookie.txt");
curl_setopt($ch,CURLOPT_COOKIEJAR,"cookie.txt");
如果他们是独立的电脑,那么它是单独的文件系统,而且每次都会有自己的cookie文件。
但是,如果你在共享存储上,然后使用动态文件名,也许
'cookie-' . $_SERVER['SERVER_NAME'] . '.txt'
代替,which'd给你
cookie-ComputerA.txt cookie-ComputerB.txt etc...
你可以散列IP的请求到来从并将其添加到文件名。这将工作,除非两台计算机具有相同的公共IP。
您可以使用唯一标识符来唯一标识用户。用户ID,会话ID或IP地址可能是一个不错的选择:
$user_id = get_user_id_from_somewhere();
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie-".$user_id.".txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie-".$user_id.".txt");
好主意,也许兰特(12345,23423422324)? –
@ user791022由于PHP的随机生成器不保证冲突,因此不能使用随机数作为唯一标识符。如果您在应用程序上使用用户身份验证,那么您几乎肯定会使用用户标识来达到此目的。否则,我建议使用IP地址或IP地址散列(例如'md5($ _ SERVER ['REMOTE_ADDR']')。 –
我不认为这会工作?脚本将在同一台服务器上,但请求来自多台计算机。 –
啊。你说“computerA运行脚本,而computerB运行脚本”。两台独立的电脑。无论如何,这仍然不是问题。 cookie.txt文件将采用Netscape Cookie文件格式,该文件可以跟踪哪个主机来自Cookie。除非您并行运行脚本多次,否则一个cookie不会覆盖另一个脚本。 –
Marc,好点,但我喜欢在MS-DOS而不是浏览器上运行脚本。我如何在MS-DOS上运行脚本(连接到外部网络)?在本地机器(开发),我通常这样做:'C:\ wamp \ bin \ php \ php5.3.0 \ php.exe index.php'这将执行代码..现在我怎么能在多台计算机上运行此LAMP安装)? –