首先,我想说明的是,我已经尝试了许多不同的方法,并阅读了相当多关于这方面的文章,但都没有完全奏效。
我已经成功地通过cURL获得了cookies,但当我尝试实际使用它们时,它只是失败了,并告诉我正在被重定向。
重点是,我想要的是,我只想登录,从我的个人资料中检索数据,然后用它做一些事情……
这就是我现在所在的位置(它只保存正确的cookie,但不会返回我登录后的页面):
$url="https://myschool.managebac.com/sessions/";
$postdata = "login=myname@myschool.com&password=password&commit=Sign-in&remember_me=1";
$cr = curl_init();
curl_setopt($cr, CURLOPT_URL, $url);
curl_setopt($cr, CURLOPT_POST, TRUE);
curl_setopt($cr, CURLOPT_HEADER, TRUE);
curl_setopt($cr, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($cr, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($cr, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($cr, CURLOPT_COOKIEJAR, 'cookie.txt');
$header = curl_exec($cr);
curl_close($cr);
$cr2 = curl_init();
curl_setopt($cr2, CURLOPT_URL, 'https://myschool.managebac.com/');
curl_setopt($cr2, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($cr2, CURLOPT_HEADER, TRUE);
curl_setopt($cr2, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($cr2, CURLOPT_COOKIEFILE, 'cookie.txt');
$result = curl_exec($cr2);
curl_close($cr2);我希望实际上有一种可能的方法,因为Managebac不是一个常用的应用程序(主要用于IB学生),但如果我能让它工作,它会对我有很大的帮助。
我对每一个答案都很高兴。
发布于 2012-05-01 01:20:38
好的,我以某种方式做到了。
现在,它得到了想要的信息,并且一切正常。
如果有人想要代码,这里有:
$url="https://myschool.managebac.com/sessions";
$postdata = "login=mylogin&password=mypassword&commit=Sign-in&remember_me=1";
$cr_curlopt = array(CURLOPT_URL => $url,
CURLOPT_POST => TRUE,
CURLOPT_HEADER => TRUE,
CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $postdata,
CURLOPT_COOKIEJAR => 'cookie.txt');
$cr = curl_init();
curl_setopt_array($cr, $cr_curlopt);
$header = curl_exec($cr);
curl_close($cr);
$cr2_curlopt = array(CURLOPT_URL => "http://myschool.managebac.com",
CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_COOKIEFILE => 'cookie.txt');
$cr2 = curl_init();
curl_setopt_array($cr2, $cr2_curlopt);
$result = curl_exec($cr2);
curl_close($cr2);
print $result;顺便说一句,我不知道为什么它实际上会有帮助,但在我将curlopt从单独的字符串添加到一个数组后,它开始工作了。(感谢DanRedux)
https://stackoverflow.com/questions/10376250
复制相似问题