>백엔드 개발 >PHP 튜토리얼 >PHP에서 컬 시뮬레이션을 통해 discuz 포럼에 로그인하기 위한 discuz 포럼 템플릿 구현 코드

PHP에서 컬 시뮬레이션을 통해 discuz 포럼에 로그인하기 위한 discuz 포럼 템플릿 구현 코드

WBOY
WBOY원래의
2016-07-29 08:48:00933검색

libcurl은 또한 HTTPS 인증, HTTP POST, HTTP PUT, FTP 업로드(PHP의 FTP 확장을 통해서도 완료 가능), HTTP 양식 기반 업로드, 프록시, 쿠키, 사용자 이름 및 비밀번호 인증을 지원합니다.
PHP의 컬은 정말 사용하기 쉽습니다. 인터넷에서 관련 기사를 검색하면 모든 관련 기사가 컬 시뮬레이션 로그인에 관한 것입니다. 시뮬레이션 디스크즈 게시에 대한 소스 코드를 제공하는 사람은 거의 없습니다.

코드 복사 코드는 다음과 같습니다.


$discuz_url = 'http:// 127.0.0.1 /discuz/';//포럼 주소
$login_url = $discuz_url .'logging.php?action=login';//로그인 페이지 주소
$post_fields = array()>/ /다음 두 항목은 수정할 필요가 없습니다.
$post_fields['loginfield'] = 'username';
$post_fields['loginsubmit'] = 'true'//사용자 이름과 비밀번호는 필수입니다. 입력하세요
$post_fields ['username'] = 'tianxin';
$post_fields['password'] = '111111'
//보안 질문
$post_fields['questionid'] = 0;
$post_fields ['answer'] = '';
//@todo 인증 코드
$post_fields['seccoverify'] = ''
//FORMHASH 양식 가져오기
> >curl_close($ch);
preg_match('//i', $contents, $matches);
if(!empty($matches)) {
$formhash = $matches[1]
} else {
die('포럼 해시를 찾을 수 없습니다.' );
}
//POST 데이터, COOKIE를 가져오고 웹사이트의 임시 디렉터리에 쿠키 파일을 넣습니다.
$cookie_file = tempnam('./temp','cookie'); >$ch = curl_init($login_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1)
curl_setopt($ch, CURLOPT_POST, 1); 🎜>curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields ; 게시를 시뮬레이션하기 위한 파일, fid는 포럼의 열 ID입니다.
$send_url = $discuz_url."post.php?action=newthread&fid=2";
$ ch = curl_init($send_url);
curl_setopt($ ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1)
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); >$contents = curl_exec($ch);
curl_close ($ch)
//여기에 있는 해시 코드는 로그인 창에 있는 해시 코드와 다릅니다
preg_match('//i', $contents, $matches);
if(!empty($ match)) {
$formhash = $matches[1]
} else {
die('포럼 해시를 찾을 수 없습니다.'); 🎜>}
$post_data = array()
//글 제목
$post_data['subject'] = 'test2'
//글 내용
$post_data['message '] = 'test2';
$post_data[ 'topicsubmit'] = "예";
$post_data['extra'] = ''
//게시물 태그
$post_data[' Tags'] = 'test';
// 게시물의 해시 코드는 매우 중요합니다! 이 해시 코드가 없으면 discuz는 소스 페이지가 잘못되었음을 경고합니다.
$post_data['formhash']=$formhash
$ch = curl_init($send_url)
curl_setopt($ch , curlopt_referer, $ send_url); ;
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data)
$contents =curl_exec($ch); 🎜 >//쿠키 파일 정리
unlink($cookie_file)
?>
위 내용은 discuz 포럼 템플릿의 내용을 포함하여 컬을 통해 discuz 포럼에 로그인하는 것을 시뮬레이션하기 위한 PHP에서의 discuz 포럼 템플릿 구현 코드를 소개한 것입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.