我想通过curl登录并维护cookie和会话信息以进一步调用。我已在同一目录中创建了cookie文本文件,并使用CURLOPT_COOKIEJAR,CURLOPT_COOKIEFILE来维护CUL中的cookie。每当我尝试调用login api时,它都会使用旧的cookie并显示以前的用户信息。我需要维护不同的用户cookie并维护会话,就像普通的浏览器句柄一样。怎么做。任何人都有想法去做。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER,0); // TRUE to include the header in the output.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // it will follow with server redirects
curl_setopt($ch,CURLOPT_AUTOREFERER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//ssl certificate verifyer
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); //ssl certificate host
// Set the location of and send the cookies
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . "/cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/cookies.txt");
curl_setopt( $ch, CURLOPT_COOKIESESSION, true );
$result = curl_exec($ch); //execute curl and store data in result
答案 0 :(得分:0)
您可以修改
dirname(__FILE__) . "/cookies.txt"
像
这样的东西dirname(__FILE__) . '/user_cookies/' . $username . '.txt'
您需要清理该行的用户名,以使其不包含任何无效字符。
另外,将/ user_cookies / permissions设置为777。
这样您就不需要检查用户是否有cookie。如果不是,则将创建该文件。如果用户拥有它们,将使用现有文件内容。
您还可以将Cookie存储在数据库中,但这样会更复杂。