Wordpress CURL登录无效

时间:2013-08-23 18:22:38

标签: wordpress curl

我有一个wordpress博客的卷曲脚本刚刚开始失败。我收到一条错误消息,指出必须启用cookie才能登录。以下是登录的代码。

$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

有什么想法吗?

1 个答案:

答案 0 :(得分: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}"

修复它所需要的是在第二个curl调用中添加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);

会这样做吗?