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

我想做一个模拟登陆,但是有一个动态参数$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;  


你可以看看key的名字,xsrfToken
它就是用来服务器返回给客户端的token,每次都会变化。你需要用webdriver端方式来模拟浏览器提交请求。

xsrfToken一般和session关联的,session又和cookie关联,不懂php,自己找curl如何保持cookie,第二次请求要附带上第一次请求返回的cookie值才行

直接加一个if($content){
$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;

}
就好了,你这是在PHP脚本里面,又不是HTML需要ajax的,写在前面的 就是先运行

补充真实的URL吧,https://www.qmei.me/admin