PHP HttpClient模拟登陆

这里面的参数,$xuehao,$mm,$zym就是验证码,学号,密码,$lt是登陆页面的隐藏信息。我们可以通过发fiddler查看

比如工大的模拟登陆:


也可以通过查看源代码 搜索<input



就会发现lt这个属性,然后我们如何获取其值呢?。。我们可以现在模拟登陆的界面获取,代码如下:

<?php
	header("content-Type: text/html; charset=utf-8");
	include_once("./httpClient.php");
	$client = new httpClient("cas.nwpu.edu.cn");
	$client->get("/cas");
	$html = $client->getContent();
	$header = $client->getHeaders();
	print_r($header);
	$nesoft = $header['set-cookie'];//neusoftnwpudcp=hTCsJbhWpmG5TVTzLcnsTNJVpjQrgwByvJyL42srRGvRZZH2Ldbr!1675837507
	$nesoft = substr($nesoft, 15, 63);
	$cookie = Array("neusoftnwpudcp"=>$nesoft);
	$client->setCookies($cookie,true);
	
	$client->get("/cas/Captcha.jpg");
	$img = $client->getContent();
	$file = fopen("Captcha.jpg", "w");
	fwrite($file, $img);
	fclose($file);
	//$preg="/name=\"lt\" value=\"LT_nwpuapp[\d]+_-[\d]+-[\w]*/";
	$preg = "/name=\"lt\" value=\"LT_nwpuapp[\d]+_-[\d]+-[\w]*/";
	preg_match($preg, $html, $hidden);
	$hidden = $hidden[0];
	print_r($hidden);
	//$preg="/LT_nwpuapp[\d]+_-[\d]+-[\w]+/";
	$preg = "/LT_nwpuapp[\d]+_-[\d]+-[\w]+/";
	preg_match($preg, $hidden, $hidden_value);
	$hidden_value = $hidden_value[0];
	
?>
<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<form method="post" action="index1.php">
		账号:<input type="text" value="2013303461" name="xuehao" /><br/>
		密码:<input type="password" value="043017" name="mm" /><br/>
		验证码:<input type="text" value="" name="yzm" /><img src="Captcha.jpg"/><br/>
		<input type="Submit" value="查询"/>
		<input type="hidden" name="neusoftnwpudcp" value="<?php echo $nesoft;?>"/>
		<input type="hidden" name="hidden_value" value="<?php echo $hidden_value;?>" />
	</form>
</body>
</html>

上式是通过正则表达式,来描述的

模拟登陆有两种方法,HTTPClient和CURL两种方法,以上是HTTPClient,,,两种方法都不太熟,以后再多多练习吧

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值