php curl 模拟登陆 账户密码如何上传!
PHP中文网
PHP中文网 2017-04-11 10:01:58
0
3
802

网页代码

<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="wsp">
<META NAME="Keywords" CONTENT="cmts">
<META NAME="Description" CONTENT="cmts manage">
<SCRIPT language=JavaScript type=text/javascript>
function login_click(formm)  //输入用户名称密码函数
{
 if(formm.operator_id.value == "") 
  {
   alert("请输入用户号码");
   formm.operator_id.focus();
   return false;
  }
 if(formm.operator_password.value == "") 
  {
   alert("请输入用户密码");
   formm.operator_password.focus(); 
   return false;
  }

 formm.submit();
 return false;
}
</SCRIPT>

</HEAD>

<BODY onkeydown="if (event.keyCode == 13){login_click(document.all.form1);}" style="OVERFLOW:hidden" bgColor='#eeeeee'>

 <TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border='0'>

  <TBODY>

   <TR>

    <TD>

     <FORM name="form1" action='/login_check.php' method=post>

      <TABLE  width="100%" height=180 cellSpacing=0 cellPadding=0 bgColor='#0B4199' border='0' borderColor='#000000'>

       <TBODY>

        <TR>

          <TD vAlign=top align=middle width="62.7%"><IMG src="/images/cmlogo.jpg" width=650 height=180></TD>

          <TD vAlign=top>

            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>

             <TBODY>              

              <TR><TD colSpan=3 height=60><BR></TD></TR>

              <TR>           
                <TD noWrap width="1%">工号(U)</TD>
                <TD><INPUT accessKey=U maxLength=16 type='text' style='width:100px;height:20px' name="operator_id" id="manager_id"></TD>
          </TR>

              <TR>        
                <TD noWrap width="1%">密码(P)</TD>
                <TD><INPUT accessKey=P maxLength=16 type='password' style='width:100px;height:20px' name='operator_password'></TD>
          </TR>

              <TR>
               <TD colSpan=1 height=2><BR></TD>
               <TD height=2>
        <INPUT  type='button' value=登录  onclick=login_click(this.form) name='Login'> 
                <INPUT  type='reset' value=重置 name='reset'>
          </TD>
         </TR>

           </TBODY>

       </TABLE>

      </TD>
              
     </TR>

    </TBODY>

       </TABLE>

      </FORM>

     </TD>

    </TR>

   </TBODY>

  </TABLE>
        
 </BODY>
POST http://10.30.68.11/login_check.php HTTP/1.1
Host: 10.30.68.11
Connection: keep-alive
Content-Length: 36
Cache-Control: max-age=0
Origin: http://10.30.68.11
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://10.30.68.11/login.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: PHPSESSID=2e764e6bf96979b430ad231ce2198a4a

operator_id=86&operator_password=951

自己的做法:

     $cookie_jar = dirname(__FILE__)."/pic.cookie";
     $post = "operator_id=86&operator_password=951";    
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, "http://10.30.68.11/login_check.php");
     curl_setopt($ch, CURLOPT_HEADER, 0);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
     curl_setopt($curl, CURLOPT_POST, 1);
     curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
     curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
     $result=curl_exec($ch);
     var_dump($result);
     curl_close($ch);
PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(3)
黄舟
curl_setopt($curl, CURLOPT_USERPWD, $username . ':' . $password);
黄舟

可以将你的curl的代码进行封装,将url和param作为两个参数,调用的时候直接传入你需要模拟登陆的url和需要传递的参数就可以了
注意:

你模拟的url那边需要的参数需要的格式你这边传入时需要进行一致,否则怎么能够进行解析呢
伊谢尔伦

@广训 按照您的方法 返回图片错误

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal