簡體   English   中英

使用cURL登錄到特定的WordPress頁面

[英]Login To Specific WordPress Page With cURL

我有一個WordPress博客,設置為要求登錄以查看其中的任何內容。 這是一個內部工具,但我們希望它可以在外部訪問。 這個工作,沒問題。

但是通過這種設置,可以很好地訪問RSS源。

我認為用curl登錄不應該是火箭科學,然后請求所需的頁面並輸出它。 此腳本將存在於內部Web服務器上,因此您可以在內部獲取RSS源(因此使用Outlook的用戶(如所有者)可以在連接到網絡時查看它。

我已經看了一大堆輔導,並就如何做到這一點的問題,沒有運氣( 這里 一個 他們 )。 他們似乎都沒有完整的腳本。 他們都做點點滴滴,我只是不能一起工作。

這是我到目前為止所擁有的:

$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;

我得到的最終結果只是顯示的登錄屏幕,所以我猜測奇怪的是有些奇怪的cookie(我試着按照這個例子 )。 任何能夠看到我所缺少的人都將不勝感激。

試試以下:

curl_setopt($ch, CURLOPT_COOKIESESSION, true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM