PHP & Others

curl 로그인

페이지 정보

본문

$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;


관련자료

등록된 댓글이 없습니다.
Today's proverb
해가 들면 어떻고, 바람이 불면 어떻고, 눈이 오면 어떠랴. 해가 들어주어도 고맙고, 바람이 불어주어도 고맙고, 눈이 와주어도 고마울 뿐. 그렇다, 고맙지 않은 것이 없다. 밤은 밤이어서 고맙고, 새벽은 새벽이어서 고맙고, 낮은 낮이어서 고맙다. 아, 고마운 삼라만상이여! (정채봉)