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('/
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('/
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 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.