테스트 사이트 - 개발 중인 베타 버전입니다

curl을 통한 로그인 후 필요한 페이지 수집하는 function이 있던데... 채택완료

더블피디 7년 전 조회 2,820

서핑하다가 찾았는데요 간단하게 아래와 같이 설명되어있구요

 

curl로 로그인 후에 그 정보를 파일로 저장하고 로그인 뒷단에 있는 마이페이지 같은 것을

curl로 가져올때 앞에서 생성한 파일을 같이 넘겨줘서처리하는 방식입니다.

2개의 함수로 되어 있습니다.

로그인정보 저장경로는 아무나 쓰기 가능하도록 퍼미션 주셔야 합니다.

 

 

 

로그인 주소, 로그인 후 스크랩할 주소, 아이디/패스워드 입력 후  scrap 함수를 실행하면 아래와 같이 

나오는데요 어떻게 해야하는건지??

Fatal error: Using $this when not in object context in /public_html/curl.php on line 11

 

 $cookieFile = $this->auth_site_cookie_store($loginurl,$postfields);


</p>

<p><?php</p>

<p> </p>

<p>function scrap()</p>

<p>{</p>

<p> $geturl="로그인후 스크랩할 주소";</p>

<p> </p>

<p> $loginurl = '로그인 주소';</p>

<p> </p>

<p> $postfields = 'id=아이디&password=비밀번호';</p>

<p> </p>

<p> $cookieFile = $this->auth_site_cookie_store($loginurl,$postfields);</p>

<p> </p>

<p> echo $result = $this->auth_site_get($geturl, "/저장경로/".$cookieFile, $postfields);</p>

<p>}</p>

<p> </p>

<p>function auth_site_cookie_store($loginurl, $postfields)</p>

<p>{</p>

<p> $parseURL = parse_url($loginurl);</p>

<p> $ch = curl_init();</p>

<p> curl_setopt($ch, CURLOPT_URL,"$loginurl");</p>

<p> curl_setopt($ch, CURLOPT_POST, 1);</p>

<p> curl_setopt($ch, CURLOPT_POSTFIELDS, "$postfields");</p>

<p> curl_setopt($ch, CURLOPT_COOKIEJAR, "/저장경로/".$parseURL['host'].".cookie");</p>

<p> </p>

<p> ob_start();</p>

<p> curl_exec ($ch);</p>

<p> ob_end_clean();</p>

<p> curl_close ($ch);</p>

<p> </p>

<p> return $parseURL['host'].".cookie";</p>

<p>}</p>

<p> </p>

<p>function auth_site_get($geturl, $cookiefile, $postfields)</p>

<p>{</p>

<p> $parseURL = parse_url($geturl);</p>

<p> $ch = curl_init();</p>

<p> curl_setopt($ch, CURLOPT_HEADER, 1 );</p>

<p> curl_setopt($ch, CURLOPT_POST,1);</p>

<p> curl_setopt($ch, CURLOPT_POSTFIELDS,$postfields);</p>

<p> curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);</p>

<p> curl_setopt($ch, CURLOPT_TIMEOUT,100);</p>

<p> </p>

<p> curl_setopt($ch, CURLOPT_COOKIEJAR, "/저장경로/".$parseURL['host'].".cookie");</p>

<p> curl_setopt($ch, CURLOPT_COOKIEFILE, "$cookiefile");</p>

<p> </p>

<p> curl_setopt($ch, CURLOPT_URL,"$geturl");</p>

<p> $result = curl_exec ($ch);</p>

<p> curl_close ($ch);</p>

<p> </p>

<p> return $result;</p>

<p>}</p>

<p>?></p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
7년 전

위 소스에서 $this-> 이 부분을 모두 제거하세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

더블피디
7년 전
$this -> 뭘 의미하는건가요???
평정심
7년 전
아마도 추측건데 class로 되어 있는 메서드를 가져다 쓰다 보니
그게 붙었나 봅니다.
구체적인 부분은 http://php.net/manual/kr/language.oop5.php 를 참조하시구요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인