2010-03-17 10 views
4

전에 이런 식으로 한 적이 없습니다 ... swagbucks.com에 로그인하여 정보를 가져 오려고했지만 작동하지 않습니다. 누군가 내 스크립트의 문제점을 말해 줄 수 있습니까?PHP & cURL을 사용하여 사이트에 로그인 하시겠습니까?

<?php 
$pages = array('home' => 
'http://swagbucks.com/?cmd=home', 
      'login' => 
'http://swagbucks.com/?cmd=sb-login&from=/?cmd=home', 
      'schedule' => 
'http://swagbucks.com/?cmd=sb-acct-account&display=2'); 
$ch = curl_init(); 
//Set options for curl session 
$options = array(CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; `rv:1.9.2) Gecko/20100115 Firefox/3.6',` 
     CURLOPT_HEADER => TRUE, 
     //CURLOPT_RETURNTRANSFER => TRUE, 
     CURLOPT_COOKIEFILE => 'cookie.txt', 
     CURLOPT_COOKIEJAR => 'cookies.txt'); 


//Hit home page for session cookie 
$options[CURLOPT_URL] = $pages['home']; 
curl_setopt_array($ch, $options); 
curl_exec($ch); 

//Login 
$options[CURLOPT_URL] = $pages['login']; 
$options[CURLOPT_POST] = TRUE; 
$options[CURLOPT_POSTFIELDS] = '[email protected]&pswd=jblake&persist=on'; 
$options[CURLOPT_FOLLOWLOCATION] = FALSE; 
curl_setopt_array($ch, $options); 
curl_exec($ch); 

//Hit schedule page 
$options[CURLOPT_URL] = $pages['schedule']; 
curl_setopt_array($ch, $options); 
$schedule = curl_exec($ch); 

//Output schedule 
echo $schedule; 

//Close curl session 
curl_close($ch); 
?> 

하지만 여전히 로그인하지 않습니다. 무엇이 잘못 되었나요?

+0

개인 정보를 검열하고자 할 수 있습니다. – gpmcadam

+3

+1하면 진짜 신임 정보를 제공하지 않습니다. – Axarydax

+0

로그인 양식에서 오는 경우 http 리퍼러 헤더를 확인하고 있습니까? 따라서 헤더를 추가하십시오. –

답변

1

무언가 잘못되었는지 확인하기 위해 각 요청을 반복합니다. (CURLOPT_RETURNTRANSFER 가능) 그것은 나를 위해 작동

+0

고마워, 나는 그것을 시도하고 내가 잘못된 파일을 요청하고 있다는 것을 발견했다. – mattsven

0

는 "1 = 지속"가 아닌 "=에 계속"

$options[CURLOPT_POSTFIELDS] = '[email protected]&pswd=jblake&persist=on'; // doesn't work 
$options[CURLOPT_POSTFIELDS] = '[email protected]&pswd=jblake&persist=1'; // works 
$options[CURLOPT_POSTFIELDS] = '[email protected]&pswd=jblake'; // also works 
1

난 당신이

curl_setopt($ch, CURLOPT_COOKIEFILE, '/dev/null'); 

쿠키는이 방법을 사용하는 것이 좋습니다 분리 된 파일이 없어도 내부적으로 메모리에 저장됩니다.

관련 문제