试图从外部登录wordpress


Trying to login into wordpress externally

我正在从安装在子目录中的脚本发送curl帖子到安装在根目录中的wordpress安装:

        $fields_string = 'username='.urlencode($my_username);
        //open connection
        $ch = curl_init();
        //set the url, number of POST vars, POST data
        curl_setopt($ch,CURLOPT_URL, $my_url);
        curl_setopt($ch,CURLOPT_POST, 1);
        curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
        //execute post
        $result = curl_exec($ch);
        //close connection
        curl_close($ch);

WP安装中的接收文件有:

require( dirname( __FILE__ ) . '/../wp-load.php' );
// GET THE USERNAME FROM THE POST
$username = $_POST['username'];
// GET USER INFO. WE NEED THE ID!   
$user = get_user_by( 'login', $username );
// SET THE COOKIE!
wp_set_auth_cookie( $user->ID, false, '' ); 

但它不起作用。我可以在我的日志中看到这篇文章击中了第二个脚本,但是当我在浏览器中打开一个新标签并访问博客时,它被注销了。任何想法吗?

谢谢

Try this code to login into wordpress...    
 $username='admin';
 $password='dummyPassword';
 $postdata = 'log='. $username .'&pwd='. $password .'&wp-submit=Log%20In&redirect_to='. $adminUrl;
 $ch = curl_init();
 curl_setopt ($ch, CURLOPT_URL,$adminUrl2);
 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, $adminUrl1);
 curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
 curl_setopt ($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_COOKIESESSION, true);
 $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_COOKIE, implode(';',$cookies));
 curl_setopt ($ch, CURLOPT_HEADER, 0);
 $resultadmin = curl_exec ($ch);
 curl_close ($ch);
 $domadmin = new DOMDocument;
 $domadmin->loadHTML($resultadmin);