2012-01-18 5 views
3

나는 그것에 대한 내용을보기 위해 로그인이 필요하도록 설정되어있는 WordPress 블로그를 가지고 있습니다. 이 도구는 내부 도구이지만 외부에서 액세스 할 수 있어야합니다. 이것은 문제없이 작동합니다.cURL로 특정 WordPress 페이지에 로그인

그러나이 설정을 사용하면 RSS 피드에 액세스하는 것이 좋습니다.

로 컬 과학으로 말려서 말아서는 안되며, 원하는 페이지를 요청하여 출력하십시오. 이 스크립트는 내부 웹 서버에 저장되므로 내부적으로 RSS 피드를 얻을 수 있습니다 (소유자와 마찬가지로 Outlook을 사용하는 사용자는 네트워크에 연결될 때 볼 수 있습니다).

나는 운 (hereareafewofthem)와, 자습서 및이 작업을 수행하는 방법에 대한 질문의 모두 살펴 보았다. 그들 중 누구도 완전한 대본을 갖고있는 것 같지 않습니다. 그들은 모두 조금씩하고 있습니다. 나는 함께 일할 수 없습니다. 여기

내가 지금까지이 작업은 다음과 같습니다

$username='dummyUser'; 
$password='dummyPassword'; 
$url='http://url.wordpress.org/'; 

$postdata = 'log='. $username .'&pwd='. $password .'&wp-submit=Log%20In&redirect_to='. $url .'wp-admin/&testcookie=1'; 
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url . 'wp-login.php'); 
curl_setopt ($ch, CURLOPT_HEADER, 1); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6'); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_REFERER, $url . 'wp-admin/'); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

$end = strpos($result, 'Content-Type'); 
$start = strpos($result, 'Set-Cookie'); 
$parts = split('Set-Cookie: ',substr($result, $start, $end-$start)); 
$cookies = array(); 
foreach ($parts as $co) { 
    $cd = split(';',$co); 
    if (!empty($cd[0])) 
     $cookies[] = $cd[0]; 
} 


curl_setopt ($ch, CURLOPT_URL, $url . 'feed/'); 
curl_setopt ($ch, CURLOPT_COOKIE, implode(';',$cookies)); 
curl_setopt ($ch, CURLOPT_HEADER, 0); 
$result = curl_exec ($ch); 

echo $result; 

내가지고있어 그 결과가 바로 로그인 화면이 표시됩니다, 그래서 뭔가 쿠키와 이상한거야 추측하고있어 (내가 this example을 따르려고 노력) . 내가 누락 된 것을 볼 수있는 사람이라면 누구나 크게 감사 할 것입니다.

답변

2

시도 다음

curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
관련 문제