curl 로그인
컨텐츠 정보
- 19,804 조회
- 0 추천
- 목록
본문
$u_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko';
-------------------------------------------------------------------------------------------------------
<?
$post_data = array(
'user_id' => 'aaaa',
'password' => 'aaaa'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.euronight.co.kr/bbs/login_check.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, 'http://www.euronight.co.kr/bbs/zboard.php?id=minbak&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=40');
$content = curl_exec($ch);
echo $content;
?>
-------------------------------------------------------------------------------------------------------
<?
CURL, Client URL Library <br>
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL,$URL); // 데이타를 보낼 URL 설정
curl_setopt($cu, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); // 해당 데이타를 보낼 http head 정의 : 삭제해도 되긴함
curl_setopt($cu, CURLOPT_POST,1); // 데이타를 get/post 로 보낼지 설정
curl_setopt($cu, CURLOPT_POSTFIELDS,$vars); // 보낼 데이타를 설정 형식은 GET 방식으로 설정
ex) $vars = "arg=$arg1&arg2=$arg2&arg3=$arg3";
curl_setopt($cu, CURLOPT_RETURNTRANSFER,1); // REQUEST 에 대한 결과값을 받을건지 체크 #Resource ID 형태로 넘어옴 :: 내장 함수 curl_errno 로 체크
curl_setopt($cu, CURLOPT_TIMEOUT,100); // REQUEST 에 대한 결과값을 받는 시간타임 설정
$output = curl_exec($cu); // 실행
$succeeded = ( curl_errno($cu) == 0 ) ? true : false;
curl_close($cu);
타 사이트와의 연동작업을 할경우 사용할만 합니다.
?>
-------------------------------------------------------------------------------------------------------
<?
참고로 제가 사용하는 소스 올려봅니다.
function fetch_page($url,$param,$cookies,$referer_url){
if(strlen(trim($referer_url)) == 0) $referer_url= $url;
$curlsession = curl_init ();
curl_setopt ($curlsession, CURLOPT_URL, \"$url\");
curl_setopt ($curlsession, CURLOPT_POST, 1);
curl_setopt ($curlsession, CURLOPT_POSTFIELDS, \"$param\");
curl_setopt ($curlsession, CURLOPT_POSTFIELDSIZE, 0);
curl_setopt ($curlsession, CURLOPT_TIMEOUT, 60);
if($cookies && $cookies!=\"\"){
curl_setopt ($curlsession, CURLOPT_COOKIE, \"$cookies\");
}
curl_setopt ($curlsession, CURLOPT_HEADER, 1); //헤더값을 가져오기위해 사용합니다. 쿠키를 가져오려고요.
curl_setopt ($curlsession, CURLOPT_USERAGENT, \"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\");
curl_setopt ($curlsession, CURLOPT_REFERER, \"$referer_url\");
ob_start();
$res = curl_exec ($curlsession);
$buffer = ob_get_contents();
ob_end_clean();
if (!$buffer) {
$returnVal = \"Curl Fetch Error : \".curl_error($curlsession);
}else{
$returnVal = $buffer;
}
curl_close($curlsession);
return $returnVal;
}
?>
-------------------------------------------------------------------------------------------------------
<?
curl 을 이용하여 웹사이트 로그인처리
$ch = curl_init();
// 웹사이트 접속
curl_setopt($ch, CURLOPT_URL,"http://www.test.com");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt($ch, CURLOPT_COOKIEFILE,$ckfile);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 결과값을 받을것인지
$result = curl_exec ($ch);
// 로그인 처리
curl_setopt($ch, CURLOPT_URL,$login_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$login_post);
$result = curl_exec ($ch);
curl_close($ch);
?>
-------------------------------------------------------------------------------------------------------
쿠키를 이용, curl로 서버에서 로그인 구현방법
구글링하다가 찾은건데 아래처럼 ID,PW를 넣고 submit되는 경로URL을 적어주면 서버에서 로그인이!!
$tmp_fname = tempnam("/tmp", "COOKIE");
$curl_handle = curl_init ("http://{로그인되는 URL}");
curl_setopt ($curl_handle, CURLOPT_COOKIEJAR, $tmp_fname);
curl_setopt ($curl_handle, CURLOPT_RETURNTRANSFER, true);
$post_array = array('ID' => '{로그인ID}', 'PASS' => '{로그인PW}');
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $post_array);
$output = curl_exec ($curl_handle);
// 로그인 완료후 페이지 호출
$curl_handle = curl_init ("http://{로그인완료후 불러올페이지}");
curl_setopt ($curl_handle, CURLOPT_COOKIEFILE, $tmp_fname);
curl_setopt ($curl_handle, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec ($curl_handle);
echo $result;