2009-04-07 9 views
3

クライアントはWordpressバックエンド管理セクションへのリンクと自動ログインをクリックしたいと考えています。PHPでCURLまたはfsockopenを使用しているWordpressの自動ログイン

私は以下のコードを使用して、fsockopenを試してみました。うまくいきませんでした。

$post_data['user_login'] = 'admin'; 
$post_data['user_pass'] = 'password'; 
$post_data['wp-submit'] = 'Log In'; 
$post_data['redirect_to'] = 'http://example.com/wp-admin/'; 

//traverse array and prepare data for posting (key1=value1) 
foreach ($post_data as $key => $value) { 
$post_items[] = $key . '=' . $value; 
} 

//create the final string to be posted using implode() 
$post_string = implode ('&', $post_items); 

//we also need to add a question mark at the beginning of the string 
$post_string = '?' . $post_string; 

$data_length = strlen($post_string); 

$connection = fsockopen('www.example.com', 80); 

fputs($connection, "POST /wp-login.php HTTP/1.1\r\n"); 
fputs($connection, "Host: www.example.com \r\n"); 
fputs($connection, "Content-Type: application/x-www-form-urlencoded\r\n"); 
fputs($connection, "Content-Length: $data_length\r\n"); 
fputs($connection, "Connection: close\r\n\r\n"); 
fputs($connection, $post_string); 


fclose($connection); 

も、誰もがこの作業を行う方法のアイデアを持っている

$ch = curl_init('http://example.com/wp-login.php'); 

$post_data['user_login'] = 'admin'; 
$post_data['user_pass'] = 'password'; 
$post_data['wp-submit'] = 'Log In'; 
$post_data['redirect_to'] = 'http://example.com/wp-admin/'; 
//$post_data['testcookie'] = '0'; 
//$post_data['rememberme'] = 'forever'; 

foreach ($post_data as $key => $value) { 
$post_items[] = $key . '=' . $value; 
} 

//create the final string to be posted using implode() 
$post_string = implode ('&', $post_items); 




curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); 
curl_exec ($ch); 
curl_close ($ch); 
CURL

てみましたか?

Linux OSです。 php5を実行しています。

私はこの前にjavascriptを使って、ページの読み込み時にすべての隠し入力があるフォームを送信しました。クライアントは、これは私のために働いたのJavaScript

答えて

6

を望んでいない:

$username="admin"; 
$password="admin"; 
$url="http://www.yourdomain.com/"; 
$cookie="cookie.txt"; 

$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_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_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url . "wp-admin/"); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 
curl_close($ch); 
echo $result; 
exit; 
関連する問題