CURL w / Cookies - 网站登录

时间:2014-04-06 00:48:59

标签: php cookies curl

我正在尝试使用CURL登录使用Cookie的网站。我测试CURLs脚本功能的方式如下:

我通过浏览器手动登录该站点并使用开发工具查看POST数据和cookie信息,并将信息粘贴到我的curl脚本中。

在我的CURL脚本中设置post / cookie信息后,我会在浏览器上退出网站,以测试我的curl脚本是否已成功登录。

当我这样做时,我相信提供给我的脚本的cookie /会话被破坏/变得不活跃。

因此,在退出网站后,当我尝试仅使用我的curl脚本登录时,出现错误You have been logged out due to inactivity

我收到此错误的原因是,因为自我退出以来curl脚本中提供的cookie信息已经过时/销毁。

现在,每次我注销后,我都必须手动登录我的浏览器并将“最新”的帖子/ cookie字符串粘贴到我的Curl脚本中。这是我试图以某种方式自动化或完全跳过的步骤,如果可能的话。

所以问题是,是否可以创建一个CURL脚本,每次运行脚本时使用新生成的cookie / post信息成功登录到网站?

我感谢任何建议,提前谢谢!

    $ch = curl_init();

$username = 'user';
$password = 'pass';
$url = 'https://www.site.com/Account/Login.aspx?timeout=yes&ReturnUrl=%2fAccount%2fDefault.aspx';
$login_post = 'lbErrorMsg=ctl00_ContentPlaceHolder1_lbErrorMsg&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwULLTEyMzc5OTc1NjYPZBYCZg9kFgICAw9kFgYCAw9kFgYCAQ8PFgIeCEltYWdlVXJsBSl%2BL0ltYWdlcy9lbi11cy9193YW5nSW52ZXN0LmdpZmRkAgcPDxYCHgRUZXh0ZWRkAgkPDxYCHwEFH1NhdHVyZGF5IDA0LzA1LzIwMTQgMDg6MjkgUE0gRVRkZAIFD2QWAgICDw8WAh8BZWRkAgkPZBYMZg8WBB4EaHJlZgURL0hlbHAvRkFRLmFzcHgjMDIeBWNsYXNzBQl3YW5nU0lQQzJkAgEPFgIfAgUOL0hlbHAvU0VDLmFzcHhkAgIPFgIeBXN0eWxlBQ1kaXNwbGF5Om5vbmU7ZAIDDxYCHwQFDWRpc';

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $login_post); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'c:\var\cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'c:\var\cookie.txt');
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_URL, $url);


//echo curl_error($ch);
$content = curl_exec($ch);

//DEBUG
curl_error($ch);

//done initial login screen, close connection
curl_close($ch);

0 个答案:

没有答案