php 正方,用php的CURL模拟登录正方教务系统

作者:matrix

被围观: 10,895 次

发布时间:2014-05-12

分类:零零星星 |

20 条评论 »

💡NOTICE:这是一个创建于 2493 天前的主题,其中的信息可能已经有所发展或是发生改变。

学校用的是正方教务系统,这玩意做的太恶心了。

用php模拟登录前进行fiddler软件抓包。

每个学校的正方教务系统略有不同,这里仅仅是个样本。

30c188245aa7aff06fbc3d84990cf0f5.png

根据抓包结果找到提交所需的post数据

__VIEWSTATE=内容&tbYHM=内容&tbPSW=内容&ddlSF=%D1%A7%C9%FA&imgDL.x=39&imgDL.y=13

说明:第一个内容是登录页面里找到的,第二、三个内容是用户名和密码

判断是否登录成功

成功登录后页面会302跳转到/xsmainfs.aspx?xh=XXX的URL

php代码参考:

$url = '';//正方教务系统登录地址

$ID = '';

$PA = '';

$cookieid = Get_SessionId($url);//获取登录页面的会话ID

/*

is_login()函数判断是否登录成功

*/

function is_login()

{

global $url,$ID,$PA,$cookieid;

preg_match('#value="([^"]+)"#', curl_get($url), $vi);

$p = '__VIEWSTATE=' . urlencode($vi[1]) . '&tbYHM=' . $ID . '&tbPSW=' . $PA . '&ddlSF=%D1%A7%C9%FA&imgDL.x=39&imgDL.y=13'; //默认学生

$co = curl_get($url, $p, 0, 0, 0, array('Cookie: ASP.NET_SessionId=' . $cookieid));

//curl_get('地址/xsleft.aspx?flag=grxx', array('Cookie: ASP.NET_SessionId=' . $cookieid)); //获取基本信息以前必须访问这个地址

return strpos($co, "/xsmainfs.aspx?xh=" . $ID)? true : false ;

}

function curl_get($url, $add_arry_header = 0)

{

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16'));

if ($add_arry_header)

{

curl_setopt($ch, CURLOPT_HTTPHEADER, $add_arry_header);

}

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$get_url = curl_exec($ch);

curl_close($ch);

return $get_url;

}

function Get_SessionId($u) // 获取aspx的会话ID

{

$a = get_headers($u);

$a = str_replace(array(';', ':'), '&', $a[6]);

parse_str($a, $aa);

return $aa['ASP_NET_SessionId'] ;

}

?>

说明:代码不完全可用,只是参考,记录。

ps:

正方教务系统的登录地址还有default4.aspx的精简登录框,模拟这个的话应该更简单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值