2012-01-18 6 views
3

私はWordPressのブログを持っています。ブログには、コンテンツを見るためにログインする必要があります。これは内部ツールですが、外部からアクセスできるようにしたいと考えていました。これは問題なく動作します。特定のWordPressページにログインするには

しかし、この設定では、RSSフィードにアクセスすることができます。

私は、カールでログインして、希望のページをリクエストして出力することはロケット科学ではないはずです。このスクリプトは社内のWebサーバー上に存在するため、内部的にRSSフィードを取得できます(所有者のようにOutlookを使用するユーザーはネットワークに接続したときに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); 
関連する問題