问题描述:我在localhost是可以模拟登陆成功的,但是放到服务器上就会一直造成cookie不同步,导致验证码不正确,因为login提交的地址就包括了cookie的值,每次请求就会返回新的一个请求的数据,所以求解答疑问,谢谢!

解决方案 »

  1.   

    你的 curl 操作中保存(发送)了对方设置的 cookie 吗?
    方正教务 有 cookie、url 两种传递 sessionid 的方案(随机变化),你的程序能跟上他吗?
      

  2.   

    那个是url的模式。我怎么发送cookie给它?我抓包的时候并没有这个参数
      

  3.   

    session_start();
    include 'curl_request.php';
    //教务系统用的是gb2312$_SESSION['txtUserName'] = $_POST['number'];
    $_SESSION['TextBox2'] = $_POST['password'];
    $_SESSION['yzm'] = $_POST['yzm'];function getState(){
    $curlArg = array(
        'url'=>$_SESSION['ip'].$_SESSION['sessionId']."default2.aspx",
    'method'=>'get',
    'responseHeaders'=>1
    );
    $result = curl_request($curlArg);
    return $result;
    }
    $_SESSION['state']=getView(getState());
    function getLogin(){
    if($_SESSION['state']=='dDwtMTg3MTM5OTI5MTs7Pl/lDmp92i8kG/OX23wP2fRgRsq3'){
    $default = array('__VIEWSTATE'=>$_SESSION['state'],'TextBox1'=>$_SESSION['txtUserName'], 'TextBox2'=>$_SESSION['TextBox2'],'TextBox3'=>$_SESSION['yzm'],'RadioButtonList1'=>'%D1%A7%C9%FA','Button1'=>'','lbLanguage'=>'');
    }elseif($_SESSION['state']=='dDwyODE2NTM0OTg7Oz7xSR0IXWqP6QkkIrKDKwgYQZaSig=='){
    $default = array('__VIEWSTATE'=>$_SESSION['state'],'txtUserName'=>$_SESSION['txtUserName'], 'TextBox2'=>$_SESSION['TextBox2'],'txtSecretCode'=>$_SESSION['yzm'],'RadioButtonList1'=>'%D1%A7%C9%FA','Button1'=>'','lbLanguage'=>'','hidPdrs'=>'','hidsc'=>'');
    }
    $aArg = array_merge($default);
    $curlArg = array(
    'url'=>$_SESSION['ip'].$_SESSION['sessionId']."default2.aspx",
    'method'=>'post',
    'responseHeaders'=>1,
    'data'=>$aArg,
    'Referer'=>$_SESSION['ip'].$_SESSION['sessionId']."default2.aspx",
    'requestHeaders'=>array(
    'Host: 210.36.247.23',
    'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
    'Accept-Encoding: gzip, deflate',
    'Connection: keep-alive'
    )
    );
    $result = curl_request($curlArg);
    return $result;
    }
      

  4.   

    URl的怎么发送cookie?