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
자식에게 미움을 받은 적이 없다면 당신은 진정한 부모가 되어 본 적이 없는 것이다.