2013-08-23 44 views
1

我爲一個剛剛開始失敗的wordpress博客創建了一個curl腳本。我收到一條錯誤消息,說明Cookie必須啓用才能登錄。下面是在登錄的代碼WordPress的CURL登錄不起作用

$post_str = 'log=USERNAME&pwd=PASSWORD&redirect_to=https://sub.wordspress.com/wp-admin/&testcookie=1&wp-submit=Log%20In'; 
$cookie = tempnam ("/tmp", "CURLCOOKIE"); 
$url = "https://domain.com/wp-login.php"; 
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
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_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, 'https://sub.wordpress.com/wp-admin/'); 
curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post_str); 
curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
curl_exec ($ch); 
curl_close($ch); 

Cookie文件:

# Netscape HTTP Cookie File 
# http://curl.haxx.se/rfc/cookie_spec.html 
# This file was generated by libcurl! Edit at your own risk. 

.wordpress.com TRUE / FALSE 0 wordpress_test_cookie WP+Cookie+check 

任何想法?

+0

希望我有一個答案,但我有同樣的問題。 8月23日之後,wordpress.com發生了一些變化。如果有人知道如何讓CURL或WGET登錄工作在wordpress.com上,我將不勝感激。 – pjv

回答

2

好的,也許我現在有一個答案。

我的(bash)腳本停止工作看起來不像你的。

這裏是我最初不靈8/23後:

# Set some default file names... 
COOKIES="$FILEPATH/cookies.txt" 

# set up login data 
POSTDATA="log=${USERNAME}&pwd=${PASSWORD}" 
POSTDATA="${POSTDATA}&rememberme=forever&submit=Log%20In" 
POSTDATA="${POSTDATA}&redirect_to=http://wordpress.com/&testcookie=1" 

#first get test cookie 
curl --silent --cookie-jar "${COOKIES}" --output /dev/null "${LOGIN_URL}" 

# now log in 
curl --silent \ 
    --cookie-jar "${COOKIES}" \ 
    --output /dev/null \ 
    --max-redirs 0 \ 
    --data "${POSTDATA}" \ 
    "${LOGIN_URL}" 

所有花了修復它是在第二捲曲呼叫加入cookie參數是這樣的:

curl --silent \ 
    --cookie "${COOKIES}" \ 
    --cookie-jar "${COOKIES}" \ 
    --output /dev/null \ 
    --max-redirs 0 \ 
    --data "${POSTDATA}" \ 
    "${LOGIN_URL}" 

不能確定100%在腳本的上下文中看起來如何,但可能會添加如下代碼:

curl_setopt ($ch, CURLOPT_COOKIE, $cookie);

會這樣做嗎?

+0

謝謝!添加'--cookie'參數適用於[我的wordpress.com導出腳本](https://github.com/l0b0/export/commit/5c39dc3faf20b3b6c6d73075edf37b6c427f179a)。 – l0b0