qq_37992500
qq_37992500
2017-11-07 15:52

怎么样两次curl请求参数,模拟提交?

35
  • curl
  • php
  • 模拟登陆
  • url
  • 抓取url简单实现

我想做一个模拟登陆,但是有一个动态参数$content在页面中,每次刷新都会变化。请问怎么样获取后再提交?

 <?php

$url="http://www.xxx/admin";//登陆的网址
$ch=curl_init($url);
curl_setopt($h,CURLOPT_RETURNTRANSFER,1);
$str=curl_exec($ch);
$start='<input type="hidden" name="xsrfToken" value="';  //修改这里开始的内容
$end='<fieldset class="form-group">';       //修改这里结束的内容
$wzs=strpos($str,$start);               //
$wze=strpos($str,$end);                 //
$len=$wze-$wzs;                     //内容的总长度
$content=substr($str,$wzs,$len);    //目的:只显示我们需要的那一部分
$content = substr($content,45,32);//获取到$content的值
curl_close($ch);


$url="http://www.xxx/admin/signin";  //模拟post提交登陆
$post_data=array (  
    "xsrfToken"=>$content,  
    "username"=>"xxxx@qq.com", 
    "password"=>"xxxxx" 
);  
$ch=curl_init();  
curl_setopt($ch,CURLOPT_URL,$url);  
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
curl_setopt($ch,CURLOPT_POST,1);  
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);  
$output=curl_exec($ch);  
curl_close($ch);  
echo $output;  


  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

4条回答