> 백엔드 개발 > PHP 튜토리얼 > PHP를 사용하여 Zhengfang 학술 시스템의 시뮬레이션 로그인 구현

PHP를 사용하여 Zhengfang 학술 시스템의 시뮬레이션 로그인 구현

WBOY
풀어 주다: 2016-07-29 08:56:19
원래의
2093명이 탐색했습니다.

처음으로 PHP를 이용해 모의 로그인을 구현하는데 시간이 많이 걸렸는데, 차근차근 살펴보며 천천히 결과를 얻었다는 점이 참 재미있습니다. 아직도 이해가 되지 않는 점은 인증번호 정보를 제출하지 않고도 로그인이 가능한 점입니다. 버그인 것 같습니다.

시뮬레이션 로그인을 실행하려면 먼저 브라우저를 열고 로그인을 시뮬레이션하려는 웹사이트에 로그인해야 합니다. 그런 다음 F12 키를 눌러 시뮬레이션 로그인을 위해 제출할 데이터를 찾습니다. Zhengfang과 마찬가지로 숨겨진 변수가 있습니다. __VIEWSTATE의 변수는 이 변수의 값을 찾으려면 정규식 일치를 사용해야 합니다. 로그인 후 페이지에서 개인 정보를 찾고 쿠키를 코드에 저장하면 됩니다. 쿼리하고 싶은 다른 페이지로 이동하세요. 내 코드는 점수를 쿼리하는 방법입니다. 관심이 있으시면 저와 소통하고 함께 논의할 수 있습니다!

<span style="font-size:14px;"><?php
	$url = "http://jw.jxust.edu.cn"; 
	$username = &#39;&#39;; //设置自己的账号
	$password = &#39;&#39;; // 设置自己的密码
	$ch1 = curl_init();
	curl_setopt($ch1, CURLOPT_URL, $url);
	curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
	$data = curl_exec($ch1);
	curl_close($ch1);
	$pattern = &#39;/<input type="hidden" name="__VIEWSTATE" value="(.*)"/&#39;; //正则表达式匹配__VIEWSTATE
	preg_match_all($pattern, $data, $matches);
	$result = $matches[1][0];
	//print_r($result);
	$post1 = array(                     //必要的提交信息
		&#39;__VIEWSTATE&#39; => $result,
		'txtUserName' => $username,
		'TextBox2' => $password,
		'RadioButtonList1' => iconv('utf-8', 'gb2312', '学生'),
		'Button1' => ''
	);
	$filecookie = dirname(__FILE__)."/cookie";  
	$ch2 = curl_init();
	curl_setopt($ch2, CURLOPT_URL, $url);
	curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch2, CURLOPT_POST, 1);
	curl_setopt($ch2, CURLOPT_POSTFIELDS, http_build_query($post1));
	curl_setopt($ch2, CURLOPT_COOKIEJAR, $filecookie);    //保存登陆的cookie信息到filecookie文件中
	curl_exec($ch2);
	curl_close($ch2);

	//模拟登录成绩页面获取__VIEWSTATE
	$ch3 = curl_init();
	curl_setopt($ch3, CURLOPT_URL, "http://jw.jxust.edu.cn/xscj_gc.aspx?xh=$username&gnmkdm=N121605");
	curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch3, CURLOPT_COOKIEFILE, $filecookie);
	curl_setopt($ch3, CURLOPT_REFERER, "http://jw.jxust.edu.cn");
	$data = curl_exec($ch3);
	curl_close($ch3);
	$pattern = '/<input type="hidden" name="__VIEWSTATE" value="(.*)"/&#39;;   
	/*  又要获取__VIEWSTATE,  注意每个模块的的__VIEWSTATE都不一样  */
	preg_match_all($pattern, $data, $matches);
	$cj__VIEWSTATE = $matches[1][0];


	//模拟登陆获取成绩信息
	$ch4 = curl_init();
	curl_setopt($ch4, CURLOPT_URL, "http://jw.jxust.edu.cn/xscj_gc.aspx?xh=$username&gnmkdm=N121605");
	$post2 = array(     //提交要查找的信息的数据
		&#39;__VIEWSTATE&#39; => $cj__VIEWSTATE,
		'ddlXN' => '',
		'ddlXQ' => '', 
		'Button1' => iconv('utf-8', 'gb2312', '按学期查询') 
	);
	curl_setopt($ch4, CURLOPT_RETURNTRANSFER, 0);
	curl_setopt($ch4, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch4, CURLOPT_COOKIEFILE, $filecookie);
	curl_setopt($ch4, CURLOPT_POST, 1);
	curl_setopt($ch4, CURLOPT_POSTFIELDS, $post2);
	curl_setopt($ch4, CURLOPT_REFERER, "http://jw.jxust.edu.cn");
	$data = curl_exec($ch4);
	//preg_match_all($pattern, $data, $matches);
	curl_close($ch4);
?></span>
로그인 후 복사

위 내용은 다양한 측면을 포함하여 Zhengfang 학술 시스템의 시뮬레이션 로그인을 구현하기 위한 PHP 사용을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿