我用PHP模拟登陆我们学校的图书馆系统,可老是登陆不上。$data=array('loginName'=>'20102643', 'password'=> '20102643','cookieMaxAge'=>'72');
$data=http_build_query($data);
$ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, "http://lib.cqu.edu.cn/login/login.htm");
 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $tmpInfo = curl_exec($ch);
echo $tmpInfo;
结果页面总是提示我的密码错误,可是我用浏览器任然能登陆,用pHP代码模拟登陆就不行。

解决方案 »

  1.   

    确实有加密处理了的,20102643加密后的密码变成了700f75828e67759d86d3656a4aa3cda4a5e35be1,前面有个加密的符号password_encrypt,楼上的哥们,我的QQ272960704,我能向你这位牛人请教点问题吗???
      

  2.   

    我用HTTPWATCH查看了POST的数据,我直接把那个加密后的密码也POST上去了,登陆成功,那么怎么将密码转化为它的那个密码呢?
      

  3.   

    这算登录上去了吗?他大量使用 js 显示内容,估计后续工作也很难
    登录代码$data=array(
      'loginName'=>'20102643',
      'password'=> '20102643',
      'password_encrypt' => sha1('20102643'), //你少了这个 js 计算充填的值
      'cookieMaxAge'=>'72'
    );$jar = realpath(tempnam('./', 'c')); //cookie 缓存文件
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://lib.cqu.edu.cn/login/login.htm");
    curl_setopt($ch, CURLOPT_COOKIEJAR, $jar); //保存 cookie
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    curl_close($ch);
    /*** 获取 sessionid 结束 ***/$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://lib.cqu.edu.cn/login/login.htm");
    curl_setopt($ch, CURLOPT_COOKIEFILE, $jar); //发送 cookie
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $tmpInfo = curl_exec($ch);
    curl_close($ch);
    /*** 获取登录后页面结束 ***///给返回页面配上 url 来源并输出
    echo str_replace('</title>', '</title><base href=http://lib.cqu.edu.cn>', $tmpInfo);注意:几乎里面的每个 js 文件加载时都会有一个弹窗,应该是某个 js 文件没有加载成功