9
10
11
12
13 preg_match('/Set-Cookie: PHPSESSID=(.*);/iU',$content,$str); //正则匹配$strCookie = $str[1]; //获得PHPSESSID作为模拟登陆时认证标。
curl_close($ch); //关闭curl
setrawcookie('PHPSESSID', $strCookie);//将PHPSESSID存入cookies模拟登陆时取用?>
Longin.php
1 2 3 4 5 6 7 8 9
10
11
12
13
14 <?php
/*模拟登陆教务系统,成功返回success失败fail,*/
$url="/login/check.shtml";//本校登陆时数据发送的主页$post_data="user=".$username."&pass=".$password."&usertype=stu";//psot结构$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_COOKIE, $Cookie);//发送cookies
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
$con=curl_exec($ch);
$jsoninfo = json_decode($con, true);
$access = $jsoninfo["success"];
?>
Curl.php
1 2 3 4 5 6 7 8 9
10
11
12
13
14 <?php
echo'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; echo'<title> 安徽师范大学 </title>';
$ch=curl_init();
curl_setopt($ch, CURLOPT_COOKIE, $Cookie);//设置要发送的Cookies信息curl_setopt($ch,CURLOPT_URL,$url);//设置post的URL
curl_setopt ($ch, CURLOPT_REFERER, "");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,1);
$con=curl_exec($ch);
curl_close($ch);
preg_match('/<body>(.*?)<\/body>/is',$con,$str);//正则抓取BODY内容echo $str[1];
?>
微信用户标识Openid的获得:
由于个人申请账号只能是个人订阅号,故没有高级接口权限来获取Openid,我们只能通过获得接收消息中的FromUserName值,并且在url中构造openid的返回给微信用户参数即可,这样我们就可从数据库中找到正确的用户信息来模拟登陆教。