이 글은 주로 PHP 컬 배경을 기반으로 Zhengfang 교육 시스템에 원격 로그인하는 방법을 소개하고, 컬과 쿠키를 사용하여 원격 로그인을 구현하는 PHP의 작동 기술을 예제 형식으로 분석합니다.
이 글은 컬 백그라운드를 이용하여 원격으로 Zhengfang 학술 시스템에 로그인하는 방법을 기반으로 한 PHP 예제를 설명합니다. 참고하실 수 있도록 자세한 내용을 공유드립니다.
이 문제를 어떻게 해결할 수 있을지 작년부터 고민하다가 올해 드디어 알아냈는데, 인증번호를 입력해야 합니다.
360처럼 티켓팅이 가능하고 인증번호 자동인식이 안된다면 괜찮을 것 같아요. 더 이상 말도 안되는 소리는 없습니다. 주제로 돌아가기
여기에서는 CURL을 사용해야 합니다.
디자인 아이디어: 먼저 페이지에 로그인하여 쿠키를 얻은 다음 쿠키를 사용하여 인증 코드에 대한 서버를 찾으세요. 마지막으로 서버에 필요한 모든 정보를 제공하십시오.
(이런 생각은 페이지에 접속하는 브라우저를 완전히 시뮬레이션하는 것이며, 근본적인 차이점은 인간 대 기계라는 것입니다.)
public function index(){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //填对于的URL就可以了 curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //主要cookie的路径,本保存页面cookie curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //返回结果自动输出 $response = curl_exec($ch); curl_close($ch); }
Zhengfang Educational Affairs System 홈페이지를 방문해보세요. 첫 번째는 페이지에서 HTML을 가져오는 것이고, 두 번째는 쿠키를 가져오는 것입니다.
또 묻고 싶은 거 있나요? HTML을 얻는 용도는 무엇입니까?
학술행정 시스템 홈페이지의 HTML을 주의 깊게 관찰해보면 그 안에 숨겨진 필드가 많이 있고 이러한 필드가 바뀌는 것을 발견할 수 있습니다.
그러면 모든 HTML을 가져와서 구문 분석한 다음 모든 필수 필드를 추출하세요
HTML 구조
숨겨진 필드는 모두 데이터 제출에 필요하며 너무 많아서는 안 된다는 점을 보셨나요?
페이지 효과
다음으로 가장 중요한 질문인 인증 코드를 받는 방법을 묻고 싶습니다.
처음에는 그냥
<img src="xxxx/CheckCode.aspx" />
하고 싶었죠? 인증번호가 나오긴 하지만 본인의 것이 아니어서 원격 로그인 저장시 인증번호가 틀렸다고 나오네요
그렇다면 본인의 인증번호는 어떻게 받나요? 이때 자연스럽게 떠오르는 것은 쿠키이다.
브라우저 요청이 동일한 사람에 대한 것인지 서버가 구별하는 방법은 쿠키의 세션 ID에 따라 다릅니다
이런 식으로요. 홈페이지에서 얻은 쿠키를 가져와 서버에 인증번호를 요청하면 오류가 발생하나요?
public function getImg() { $url = "http://xxxx/CheckCode.aspx"; $filedir = SITE_PATH."/TMP/Cookies"; $cookie_file = $filedir."/cookie.txt"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); // curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, "10"); header("Content-type:image/gif"); //这个视不同图片格式不一样,请注意 echo curl_exec($ch); curl_close($ch); }
그런 다음 다른 페이지에서 이 메소드를 호출하면 인증 코드를 받을 수 있습니다.
CURL의 PHP 요청과 브라우저에서 발행한 PHP는 서로 다른 두 스레드에 속하므로 쿠키가 다르게 공유됩니다.
이런 방법으로 로그인을 할 수는 있지만, 이 방법으로 로그인을 했다고 해서 모든 기능을 사용할 수 있다고는 생각하지 마세요. 착각입니다. 작은 세부 사항이 하나 더 있습니다. .
요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
관련 권장 사항:
PHP의 4가지 정렬 알고리즘 구현 및 효율성 분석 [버블 정렬, 삽입 정렬, 선택 정렬 및 빠른 정렬]
위 내용은 컬을 기반으로 Zhengfang 교육 업무 시스템에 대한 백그라운드 원격 로그인을 구현하는 PHP 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!